{"version":3,"file":"index-c5a34a3a.js","sources":["../../node_modules/@vue/shared/dist/shared.esm-bundler.js","../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../node_modules/vue/dist/vue.runtime.esm-bundler.js","../../src/components/toaster/useToaster.ts","../../src/components/toaster/AppToaster.vue","../../src/components/AppButton.vue","../../src/components/modal/useManageModal.ts","../../src/services/useKeyEvent.ts","../../src/components/modal/AppModal.vue","../../src/components/modal/models.ts","../../node_modules/@intlify/shared/dist/shared.esm-bundler.js","../../node_modules/@intlify/core-base/node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js","../../node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","../../node_modules/@intlify/core-base/dist/core-base.esm-bundler.js","../../node_modules/vue-i18n/dist/vue-i18n.runtime.esm-bundler.js","../../src/services/infrastructure/storageService.ts","../../src/locales/en.json","../../src/locales/es.json","../../src/locales/fr.json","../../src/i18n.ts","../../node_modules/axios/lib/helpers/bind.js","../../node_modules/axios/lib/utils.js","../../node_modules/axios/lib/core/AxiosError.js","../../node_modules/axios/lib/helpers/null.js","../../node_modules/axios/lib/helpers/toFormData.js","../../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../node_modules/axios/lib/helpers/buildURL.js","../../node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/axios/lib/defaults/transitional.js","../../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../node_modules/axios/lib/platform/browser/classes/FormData.js","../../node_modules/axios/lib/platform/browser/classes/Blob.js","../../node_modules/axios/lib/platform/browser/index.js","../../node_modules/axios/lib/helpers/toURLEncodedForm.js","../../node_modules/axios/lib/helpers/formDataToJSON.js","../../node_modules/axios/lib/defaults/index.js","../../node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/axios/lib/core/AxiosHeaders.js","../../node_modules/axios/lib/core/transformData.js","../../node_modules/axios/lib/cancel/isCancel.js","../../node_modules/axios/lib/cancel/CanceledError.js","../../node_modules/axios/lib/core/settle.js","../../node_modules/axios/lib/helpers/cookies.js","../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/axios/lib/core/buildFullPath.js","../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/axios/lib/helpers/parseProtocol.js","../../node_modules/axios/lib/helpers/speedometer.js","../../node_modules/axios/lib/adapters/xhr.js","../../node_modules/axios/lib/adapters/adapters.js","../../node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/axios/lib/core/mergeConfig.js","../../node_modules/axios/lib/env/data.js","../../node_modules/axios/lib/helpers/validator.js","../../node_modules/axios/lib/core/Axios.js","../../node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/axios/lib/helpers/spread.js","../../node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/axios/lib/helpers/HttpStatusCode.js","../../node_modules/axios/lib/axios.js","../../src/assets/images/goals/no_image.svg","../../src/constants/urls.ts","../../src/services/shared/dateConverterInterceptor.ts","../../src/services/shared/dateTimeConverterInterceptor.ts","../../src/utils/urlHelper.ts","../../src/utils/redirectUtil.ts","../../src/utils/apiErrorsUtil.ts","../../src/services/shared/networkStateStore.ts","../../src/constants/debounce.ts","../../src/services/shared/useLoading.ts","../../src/services/shared/useHttpClient.ts","../../src/services/useSpaConfigurationService.ts","../../src/App.vue","../../src/directives/AppFocus.ts","../../src/directives/AppScrollTop.ts","../../src/directives/AppScrollTo.ts","../../src/directives/ClickOutside.ts","../../src/directives/DirectivesLoader.ts","../../node_modules/vue-router/dist/vue-router.mjs","../../src/models/userRole.ts","../../src/services/useAuthenticationService.ts","../../src/router/guards/authenticationGuard.ts","../../src/services/useFeatureFlags.ts","../../src/router/guards/featureGuard.ts","../../src/assets/images/loading.gif","../../src/components/AppLoading.vue","../../src/assets/images/logo.svg","../../node_modules/vee-validate/dist/vee-validate.esm.js","../../node_modules/property-expr/index.js","../../node_modules/tiny-case/index.js","../../node_modules/toposort/index.js","../../node_modules/yup/index.esm.js","../../src/components/AppPanel.vue","../../src/components/AppLinkButton.vue","../../src/components/AppIconOnlyButton.vue","../../src/components/AppInputError.vue","../../src/utils/fileUtils.ts","../../src/components/modal/useModal.ts","../../src/components/uploadDocument/useUploadDocument.ts","../../src/components/uploadDocument/AppUploadDocument.vue","../../src/constants/restrictions.ts","../../node_modules/sanitize-html/node_modules/entities/lib/generated/decode-data-html.js","../../node_modules/sanitize-html/node_modules/entities/lib/generated/decode-data-xml.js","../../node_modules/sanitize-html/node_modules/entities/lib/decode_codepoint.js","../../node_modules/sanitize-html/node_modules/entities/lib/decode.js","../../node_modules/sanitize-html/node_modules/htmlparser2/lib/Tokenizer.js","../../node_modules/sanitize-html/node_modules/htmlparser2/lib/Parser.js","../../node_modules/domelementtype/lib/index.js","../../node_modules/sanitize-html/node_modules/domhandler/lib/node.js","../../node_modules/sanitize-html/node_modules/domhandler/lib/index.js","../../node_modules/sanitize-html/node_modules/entities/lib/generated/encode-html.js","../../node_modules/sanitize-html/node_modules/entities/lib/escape.js","../../node_modules/sanitize-html/node_modules/entities/lib/encode.js","../../node_modules/sanitize-html/node_modules/entities/lib/index.js","../../node_modules/sanitize-html/node_modules/dom-serializer/lib/foreignNames.js","../../node_modules/sanitize-html/node_modules/dom-serializer/lib/index.js","../../node_modules/sanitize-html/node_modules/domutils/lib/stringify.js","../../node_modules/sanitize-html/node_modules/domutils/lib/traversal.js","../../node_modules/sanitize-html/node_modules/domutils/lib/manipulation.js","../../node_modules/sanitize-html/node_modules/domutils/lib/querying.js","../../node_modules/sanitize-html/node_modules/domutils/lib/legacy.js","../../node_modules/sanitize-html/node_modules/domutils/lib/helpers.js","../../node_modules/sanitize-html/node_modules/domutils/lib/feeds.js","../../node_modules/sanitize-html/node_modules/domutils/lib/index.js","../../node_modules/sanitize-html/node_modules/htmlparser2/lib/index.js","../../node_modules/escape-string-regexp/index.js","../../node_modules/is-plain-object/dist/is-plain-object.js","../../node_modules/deepmerge/dist/cjs.js","../../node_modules/parse-srcset/src/parse-srcset.js","../../node_modules/picocolors/picocolors.browser.js","../../__vite-browser-external","../../node_modules/postcss/lib/css-syntax-error.js","../../node_modules/postcss/lib/symbols.js","../../node_modules/postcss/lib/stringifier.js","../../node_modules/postcss/lib/stringify.js","../../node_modules/postcss/lib/node.js","../../node_modules/postcss/lib/declaration.js","../../node_modules/nanoid/non-secure/index.cjs","../../node_modules/postcss/lib/previous-map.js","../../node_modules/postcss/lib/input.js","../../node_modules/postcss/lib/map-generator.js","../../node_modules/postcss/lib/comment.js","../../node_modules/postcss/lib/container.js","../../node_modules/postcss/lib/document.js","../../node_modules/postcss/lib/warning.js","../../node_modules/postcss/lib/result.js","../../node_modules/postcss/lib/tokenize.js","../../node_modules/postcss/lib/at-rule.js","../../node_modules/postcss/lib/root.js","../../node_modules/postcss/lib/list.js","../../node_modules/postcss/lib/rule.js","../../node_modules/postcss/lib/parser.js","../../node_modules/postcss/lib/parse.js","../../node_modules/postcss/lib/lazy-result.js","../../node_modules/postcss/lib/no-work-result.js","../../node_modules/postcss/lib/processor.js","../../node_modules/postcss/lib/fromJSON.js","../../node_modules/postcss/lib/postcss.js","../../node_modules/sanitize-html/index.js","../../src/utils/stringUtils.ts","../../src/utils/numberUtils.ts","../../src/utils/dateUtils.ts","../../src/services/useFormSchema.ts","../../src/services/useMePictureService.ts","../../src/services/useEmployeeService.ts","../../src/components/AppProfileAvatarEditor.vue","../../src/components/AppInputGeneric.vue","../../src/components/AppSelect.vue","../../src/components/AppLanguageSelector.vue","../../src/components/AppInputDate.vue","../../src/services/useMeService.ts","../../src/components/AppBirthDateSelector.vue","../../src/components/AppProfileEditor.vue","../../src/components/AppFeedbackSender.vue","../../src/assets/images/avatar.svg","../../src/components/AppProfileAvatar.vue","../../src/layout/shared/AvatarContainer.vue","../../src/layout/shared/LayoutHeader.vue","../../src/layout/shared/LayoutMenuItem.vue","../../src/layout/shared/LayoutMenu.vue","../../src/layout/shared/LayoutBase.vue","../../src/layout/shared/useLayout.ts","../../src/layout/app/AppLayout.vue","../../src/components/AppTab.vue","../../src/views/app/my-profile/components/shared/MyProfileNavigation.vue","../../src/views/app/my-profile/components/overview/ProfilePerformanceChart.vue","../../src/views/app/my-profile/components/overview/ProfilePerformanceExampleChart.vue","../../src/views/app/my-profile/components/shared/ProfileSummaryInformation.vue","../../src/views/app/my-profile/components/overview/ProfilePerformanceExample.vue","../../src/components/AppBox.vue","../../src/views/app/my-profile/components/overview/ProfileLinks.vue","../../src/components/AppTip.vue","../../src/views/app/my-profile/components/overview/ProfileSteps.vue","../../src/assets/images/skills.svg","../../src/components/AppCheckbox.vue","../../src/components/AppBasicText.vue","../../src/components/AppAutocomplete.vue","../../src/utils/randomUtils.ts","../../src/components/modal/AppAutomaticModalOpener.vue","../../src/components/AppWizardPath.vue","../../src/views/app/my-profile/components/overview/performance-chart-configurer/ProfilePerformanceChartConfigurerWizardPath.vue","../../src/services/useMePerformanceGraphService.ts","../../src/views/app/my-profile/components/overview/performance-chart-configurer/ProfilePerformanceChartConfigurerWizard.vue","../../src/views/app/my-profile/AppMyProfileOverviewView.vue","../../src/assets/images/empty-performance-graph.svg","../../src/components/AppSeparator.vue","../../src/components/AppTag.vue","../../src/components/AppNoContentYet.vue","../../src/components/AppCard.vue","../../src/models/educationMode.ts","../../src/services/useMeEducationService.ts","../../src/views/app/my-profile/components/dashboard/CertificatedAndCourses.vue","../../src/components/table/AppTablePagination.vue","../../src/components/AppRadioButton.vue","../../src/components/AppRadioButtonList.vue","../../src/components/table/AppTableFilter.vue","../../src/components/table/AppTableFilters.vue","../../src/components/table/AppTableHeader.vue","../../src/components/table/ColumnValueExtractor.ts","../../src/components/table/AppTableColumnText.vue","../../src/components/table/AppTableColumnAction.vue","../../src/components/table/AppTableColumnSelect.vue","../../src/components/table/AppTableCell.vue","../../src/components/table/AppTableRow.vue","../../src/components/table/TableFilter.ts","../../src/components/table/useTableHelper.ts","../../src/components/table/AppTable.vue","../../src/models/companyEmployeeGroup.ts","../../src/views/shared/employee/components/GroupsOfEmployee.vue","../../src/views/app/my-profile/components/dashboard/ProfileSummary.vue","../../src/utils/mathUtils.ts","../../src/models/skillProgression.ts","../../src/components/AppPercentageChart.vue","../../src/models/skillType.ts","../../src/services/useMeSkillsService.ts","../../src/views/app/my-profile/components/dashboard/SuccessFullSkills.vue","../../src/views/app/my-profile/AppMyProfileDashboardView.vue","../../src/views/app/my-profile/AppMyProfileDefaultView.vue","../../src/models/questionType.ts","../../src/views/app/ai-assistant/components/AIAssistantAnswerOpenAction.vue","../../src/views/app/ai-assistant/components/AIAssistantAnswerActions.vue","../../src/components/AppInputRange.vue","../../src/components/AppInputTextArea.vue","../../src/services/useQuestionService.ts","../../src/components/AppForm.vue","../../src/services/useFormValidator.ts","../../src/views/app/ai-assistant/components/AIAssistantEditorBase.vue","../../src/views/app/ai-assistant/components/AIAssistantAnswerLevelEditor.vue","../../src/views/app/ai-assistant/components/AIAssistantAnswerLevel.vue","../../src/views/app/ai-assistant/components/AIAssistantAnswerLongTextEditor.vue","../../src/views/app/ai-assistant/components/AIAssistantAnswerLongText.vue","../../src/views/app/ai-assistant/components/AIAssistantAnswerMultipleSelectionEditor.vue","../../src/views/app/ai-assistant/components/AIAssistantAnswerMultipleSelection.vue","../../src/components/AppInputText.vue","../../src/views/app/ai-assistant/components/AIAssistantAnswerShortTextEditor.vue","../../src/views/app/ai-assistant/components/AIAssistantAnswerShortText.vue","../../src/views/app/ai-assistant/components/AIAssistantAnswerSingleSelectionEditor.vue","../../src/views/app/ai-assistant/components/AIAssistantAnswerSingleSelection.vue","../../src/components/AppInputTags.vue","../../src/views/app/ai-assistant/components/AIAssistantAnswerTagsEditor.vue","../../src/views/app/ai-assistant/components/AIAssistantAnswerTags.vue","../../src/models/questionKpi.ts","../../node_modules/apexcharts/dist/apexcharts.common.js","../../node_modules/vue3-apexcharts/dist/vue3-apexcharts.common.js","../../src/views/admin/ai-assistant/components/kpis/SingleChoiceKPI.vue","../../src/views/admin/ai-assistant/components/kpis/MultipleChoiceKPI.vue","../../src/views/admin/ai-assistant/components/kpis/LevelKPI.vue","../../src/views/admin/ai-assistant/components/kpis/TagsKPI.vue","../../src/views/admin/ai-assistant/components/wizard/previews/QuestionTagsPreview.vue","../../src/views/admin/ai-assistant/components/wizard/previews/QuestionLevelPreview.vue","../../src/views/admin/ai-assistant/components/wizard/previews/QuestionMultipleSelectionPreview.vue","../../src/views/admin/ai-assistant/components/wizard/previews/QuestionSingleSelectionPreview.vue","../../src/views/app/ai-assistant/utils/questionHelper.ts","../../src/views/app/ai-assistant/components/AIAssistantAnswer.vue","../../src/views/app/ai-assistant/components/AIAssistantQuestion.vue","../../src/services/useMeQuestionsService.ts","../../src/views/app/ai-assistant/AppAIAssistantView.vue","../../src/utils/models.ts","../../src/models/jobExperience.ts","../../src/views/shared/current-experience/AboutMeEditor.vue","../../src/views/app/current-experience/components/AppCurrentExperienceProfileImporter.vue","../../src/services/modelServices/companyGoalService.ts","../../src/components/AppProgressBar.vue","../../src/views/shared/challenges-goals/AppGoalsChallengeCurrentCard.vue","../../src/utils/booleanUtils.ts","../../src/services/useMeGoalsService.ts","../../src/views/app/goals-challenges/components/ParticipateButton.vue","../../src/views/app/goals-challenges/AppGoalDetails.vue","../../src/components/carousel/AppCarouselNavigation.vue","../../src/components/carousel/AppCarouselActions.vue","../../src/services/useDebounce.ts","../../src/utils/responsiveUtils.ts","../../src/components/carousel/useCarousel.ts","../../src/components/carousel/AppCarousel.vue","../../src/views/shared/current-experience/AppEmployeeCurrentExperienceGoals.vue","../../src/components/uploadDocument/AppUploadDocumentInline.vue","../../src/views/app/current-experience/components/EmployeeCurriculumUploader.vue","../../src/components/AppToggle.vue","../../src/components/AppEducationMode.vue","../../src/views/shared/current-experience/UserInfoItem.vue","../../src/views/shared/current-experience/EducationEditor.vue","../../src/services/useMeJobExperienceService.ts","../../src/views/shared/current-experience/JobExperienceEditor.vue","../../src/services/useSkillService.ts","../../src/components/AppSkillCreator.vue","../../src/components/AppSkillRange.vue","../../src/components/AppSkillEditor.vue","../../src/services/useMeIdealJobService.ts","../../src/views/shared/current-experience/FloatingPanelSkillEditor.vue","../../src/services/useMeAgreementsService.ts","../../src/services/modelServices/skillService.ts","../../src/views/app/current-experience/AppCurrentExperienceView.vue","../../src/views/app/goals-challenges/components/GoalImage.vue","../../src/views/app/goals-challenges/components/AppGoalsChallengeCard.vue","../../src/views/app/goals-challenges/components/AppGoalsFeaturedCard.vue","../../src/components/AppGenericFilter.vue","../../src/views/app/goals-challenges/AppGoalsChallengesView.vue","../../src/views/app/my-learning/components/shared/MyLearningNavigation.vue","../../src/components/AppLabel.vue","../../src/models/course.ts","../../src/views/shared/learning/CourseLevelLabel.vue","../../src/views/shared/learning/CourseTypeIndicator.vue","../../src/views/shared/learning/CourseModeIndicator.vue","../../src/services/useCompanyCoursesService.ts","../../src/views/shared/learning/CourseImage.vue","../../src/utils/languageUtils.ts","../../src/utils/timeUtils.ts","../../src/views/shared/learning/CourseGoToTrainingButton.vue","../../src/views/shared/learning/CertificateReminder.vue","../../src/components/rateInput/AppRatingStar.vue","../../src/components/rateInput/AppInputRating.vue","../../src/services/useMeCoursesService.ts","../../src/views/shared/learning/CourseDetails.vue","../../src/views/shared/learning/CourseCardHeader.vue","../../src/views/shared/learning/CourseCard.vue","../../src/views/shared/learning/CourseCarousel.vue","../../src/views/shared/learning/useCourseRateRefresher.ts","../../src/views/shared/learning/CoursesFeatured.vue","../../src/views/shared/learning/CourseListItem.vue","../../src/components/paginator/PaginationPageNumbers.vue","../../src/components/paginator/PaginationFooter.vue","../../src/views/shared/learning/CourseList.vue","../../src/views/shared/learning/CourseGrid.vue","../../src/views/app/my-learning/components/CoursesListSearcherResultsIndicator.vue","../../src/views/app/my-learning/components/CoursesListSearcher.vue","../../src/services/useEventEmitterService.ts","../../src/views/app/my-learning/AppMyLearningLearningView.vue","../../src/views/app/my-learning/components/learning-path/MyLearningPathContentHeader.vue","../../src/views/app/my-learning/components/learning-path/MyLearningPathContentLevel.vue","../../src/views/app/my-learning/components/MyLearningPathCourse.vue","../../src/views/app/my-learning/components/MyLearningPathCourseList.vue","../../src/views/app/my-learning/components/MyLearningPathCourseCarouselList.vue","../../src/views/app/my-learning/components/learning-path/MyLearningPathCourseListContainer.vue","../../src/views/app/my-learning/components/learning-path/MyLearningPathRecalculateToggle.vue","../../src/views/app/my-learning/components/shared/MyLearningPathContent.vue","../../src/views/app/my-learning/components/shared/MyLearningTrainingContent.vue","../../src/services/modelServices/employeeIdealJobService.ts","../../src/views/app/my-ideal-job/components/shared/MyIdealJobContentView.vue","../../src/views/app/my-ideal-job/components/shared/MyIdealJobNavigation.vue","../../src/services/useMeIdealLearningService.ts","../../src/views/shared/my-interests/AppMyInterestsIdealLearningEditor.vue","../../src/services/useMeInterestsService.ts","../../src/views/shared/my-interests/AppMyInterestsInterestEditor.vue","../../src/models/hobbyCategory.ts","../../src/components/AppHobbyCategorySelector.vue","../../src/services/useHobbiesService.ts","../../src/components/AppHobbiesCreator.vue","../../src/components/AppHobbiesEditor.vue","../../src/components/AppHobbyCategoryFrame.vue","../../src/services/useMeHobbiesService.ts","../../src/components/AppHobbiesPanel.vue","../../src/views/app/my-interests/AppMyInterestsView.vue","../../src/views/shared/employee/components/EmployeeSearch.vue","../../src/views/app/my-groups/components/MyGroupsTable.vue","../../src/views/app/my-groups/AppMyGroupsOverviewView.vue","../../src/components/AppIconButton.vue","../../src/views/shared/employee/components/EmployeeCurrentExperience.vue","../../src/views/shared/employee/components/EmployeeMyIdealJob.vue","../../src/views/shared/employee/components/EmployeeInterests.vue","../../src/views/shared/employee/components/EmployeeAIAssistant.vue","../../src/views/shared/employee/components/EmployeeProfileNavigation.vue","../../src/views/shared/employee/EmployeeProfileView.vue","../../src/views/admin/ai-assistant/components/wizard/configurer/QuestionCreationWizardConfigurerLevel.vue","../../src/views/admin/ai-assistant/components/wizard/configurer/QuestionCreationWizardConfigurerOption.vue","../../src/views/admin/ai-assistant/components/wizard/configurer/QuestionCreationWizardConfigurerOptions.vue","../../src/views/admin/ai-assistant/services/useQuestionFormSchema.ts","../../src/views/admin/ai-assistant/components/wizard/QuestionWizardConfigurer.vue","../../src/views/admin/ai-assistant/components/wizard/QuestionWizardPath.vue","../../src/views/admin/ai-assistant/components/wizard/previews/QuestionPreview.vue","../../src/views/admin/ai-assistant/components/wizard/QuestionWizardTypeItemOption.vue","../../src/views/admin/ai-assistant/components/wizard/QuestionWizard.vue","../../src/views/admin/ai-assistant/components/grid/QuestionOrder.vue","../../src/views/admin/ai-assistant/components/grid/QuestionGroupsColumn.vue","../../src/models/questionStatus.ts","../../src/components/accordion/AppAccordionPanel.vue","../../src/views/shared/questions/QuestionAnswers.vue","../../src/views/admin/ai-assistant/components/kpis/QuestionKpiData.vue","../../src/views/shared/questions/QuestionKpis.vue","../../src/views/admin/ai-assistant/components/grid/QuestionsTable.vue","../../src/views/shared/company-groups-questions/components/AvailableQuestionsPanel.vue","../../src/views/shared/company-groups-questions/components/GroupQuestionsTable.vue","../../src/services/useCompanyEmployeeGroupsService.ts","../../src/views/admin/ai-assistant/components/kpis/QuestionKpi.vue","../../src/views/admin/ai-assistant/components/kpis/GroupQuestionsKpis.vue","../../src/views/shared/company-groups-questions/components/GroupQuestionsPanel.vue","../../src/views/shared/company-groups-questions/components/GroupSelector.vue","../../src/views/shared/company-groups-questions/utils/questionsHelper.ts","../../src/views/app/my-groups/AppMyGroupsQuestionsView.vue","../../src/router/routes/app.routes.ts","../../src/views/admin/ai-assistant/components/kpis/QuestionsKpis.vue","../../src/assets/images/questions.png","../../src/views/admin/ai-assistant/components/QuestionsOnBoarding.vue","../../src/views/admin/ai-assistant/components/NoQuestionsContent.vue","../../src/views/admin/ai-assistant/AdminAIAssistantOverviewView.vue","../../src/views/admin/ai-assistant/AdminAIAssistantQuestionsView.vue","../../src/components/AppEmployeeGoalProfile.vue","../../src/services/useCompanyGoalsService.ts","../../src/views/admin/company-goals/components/AdminCompanyGoalsApplicants.vue","../../src/components/AppInputNumber.vue","../../src/views/admin/company-goals/components/wizard/GoalWizardPath.vue","../../src/views/admin/company-goals/components/AdminCompanyGoalsFullEditor.vue","../../src/views/admin/company-goals/components/AdminCompanyGoalsSimpleEditor.vue","../../src/views/admin/company-goals/components/AdminCompanyGoalsAssigned.vue","../../src/utils/styleUtils.ts","../../src/views/admin/company-goals/components/AdminCompanyGoalsSkills.vue","../../src/views/admin/company-goals/components/AdminCompanyGoalsActions.vue","../../src/views/admin/company-goals/components/AdminCompanyGoalsDatesDate.vue","../../src/views/admin/company-goals/components/AdminCompanyGoalsDates.vue","../../src/views/admin/company-goals/components/AdminCompanyGoalsProgress.vue","../../src/views/admin/company-goals/components/AdminCompanyGoalsResult.vue","../../src/views/admin/company-goals/components/AdminCompanyGoalDetailInformation.vue","../../src/views/admin/company-goals/AdminCompanyGoalsDetailsView.vue","../../src/assets/images/goals/public_goal_characters.png","../../src/assets/images/goals/private_goal_characters.png","../../src/views/admin/company-goals/components/GoalCompanyGoalsView.vue","../../src/views/admin/company-goals/AdminCompanyGoalsOverviewView.vue","../../src/views/admin/dashboard/components/AdminDashboardShortcut.vue","../../src/assets/images/customer.svg","../../src/assets/images/world.svg","../../src/views/admin/dashboard/AdminDashboardOverviewView.vue","../../src/layout/admin/AdminLayout.vue","../../src/assets/images/training.png","../../src/components/AppInputTime.vue","../../src/views/admin/learning/components/CourseEditorOnSiteData.vue","../../src/views/admin/learning/components/CourseLevelSelector.vue","../../src/views/admin/learning/components/CourseEditorMainData.vue","../../src/views/admin/learning/components/CourseEditor.vue","../../src/views/admin/learning/components/CompanyCourses.vue","../../src/views/admin/learning/AdminLearningView.vue","../../src/assets/images/empty-talent-chart.svg","../../src/views/admin/talent-detection/utils.ts","../../src/services/useCompanyTalentDetectionService.ts","../../src/views/admin/talent-detection/components/charts/AdminTalentDetectionCategoryByAgeChart.vue","../../src/views/admin/talent-detection/components/charts/AdminTalentDetectionCategoryByGroupChart.vue","../../src/components/AppProfileInformation.vue","../../src/views/admin/talent-detection/components/employee-lists/AdminTalentDetectionEmployeeList.vue","../../src/views/admin/talent-detection/components/employee-lists/AdminTalentDetectionEmployeeByAgeList.vue","../../src/views/admin/talent-detection/components/employee-lists/AdminTalentDetectionEmployeeByGroupList.vue","../../src/views/admin/talent-detection/components/charts/AdminTalentDetectionHobbyByAgeChart.vue","../../src/views/admin/talent-detection/components/charts/AdminTalentDetectionHobbyByGroupChart.vue","../../src/views/admin/talent-detection/AdminTalentDetectionView.vue","../../src/views/admin/company-settings/company-employee-groups/components/CompanyEmployeeGroupEditorEmployeesTable.vue","../../src/views/admin/company-settings/company-employee-groups/components/CompanyEmployeeGroupEditorCurrentEmployees.vue","../../src/views/admin/company-settings/company-employee-groups/utils/companyEmployeeGroupsUtils.ts","../../node_modules/xlsx/xlsx.mjs","../../src/components/AppExcelParser.vue","../../src/views/admin/company-settings/company-employee-groups/components/ImportCompanyEmployeeGroupFromExcel.vue","../../src/views/admin/company-settings/company-employee-groups/AdminCompanyEmployeeGroupEditorView.vue","../../src/views/admin/company-settings/company-employee-groups/components/CompanyEmployeeGroupRolesTable.vue","../../src/views/admin/company-settings/company-employee-groups/components/CompanyEmployeeGroupLearning.vue","../../src/views/admin/company-settings/company-employee-groups/components/CompanyEmployeeGroupQuestions.vue","../../src/views/admin/company-settings/company-employee-groups/AdminCompanyEmployeeGroupManageView.vue","../../src/models/companyType.ts","../../src/views/admin/company-settings/components/AdminCompanySettingsNavigation.vue","../../src/services/useCompanySettingsService.ts","../../src/components/AppCompanyLanguageSelector.vue","../../src/views/admin/company-settings/components/AdminCompanySettingsGeneralInfo.vue","../../src/views/admin/company-settings/company-employee-groups/components/CompanyEmployeeGroupsTable.vue","../../src/views/admin/company-settings/company-employee-groups/AdminCompanyEmployeeGroups.vue","../../src/views/admin/company-settings/company-employee-groups/components/CompanyEmployeesWithGroupsDetail.vue","../../src/views/admin/company-settings/company-employee-groups/components/CompanyEmployeesWithGroupsTable.vue","../../src/views/admin/company-settings/company-employee-groups/AdminCompanyEmployeesWithGroups.vue","../../src/views/admin/company-settings/components/AdminCompanySettingsAzureInfo.vue","../../src/views/admin/company-settings/components/AdminRoleUsers.vue","../../src/views/admin/company-settings/components/chatbot/ChatBotInstructionsSteps.vue","../../src/views/admin/company-settings/components/chatbot/ChatBotGenericChannelInstructions.vue","../../src/assets/images/chatbot/teams.svg","../../src/views/admin/company-settings/components/chatbot/ChatBotTeamsInstructions.vue","../../src/assets/images/chatbot/slack.svg","../../src/views/admin/company-settings/components/chatbot/ChatBotSlackInstructions.vue","../../src/models/skillStatus.ts","../../src/views/admin/skills/SkillEditor.vue","../../src/views/admin/skills/SkillTable.vue","../../src/views/admin/skills/SkillsManagement.vue","../../src/views/admin/company-settings/AdminCompanySettingsOverview.vue","../../src/router/routes/admin.routes.ts","../../src/views/guest/create-company-from-azuread/components/GuestCreateCompanyFromAzureAdErrorModal.vue","../../src/layout/guest/GuestPage.vue","../../src/services/useCompanyService.ts","../../src/views/guest/create-company-from-azuread/GuestCreateCompanyFromAzureAdView.vue","../../src/router/routes/guest.routes.ts","../../src/views/it-manager/company-settings/components/ItManagerCompanySettingsNavigation.vue","../../src/views/it-manager/company-settings/ItManagerCompanySettingsOverview.vue","../../src/layout/it-manager/ItManagerLayout.vue","../../src/router/routes/it-manager.routes.ts","../../src/views/accounts/admin-required/AccountsAdminRequiredView.vue","../../src/views/accounts/tenant-unauthorized/AccountsTenantUnauthorizedView.vue","../../src/views/accounts/user-unauthorized/AccountsUserUnauthorizedView.vue","../../src/router/routes/accounts.routes.ts","../../src/router/router.ts","../../node_modules/@nevware21/ts-utils/dist-es5/internal/constants.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/safe_get.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/base.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/get_own_prop_desc.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/has_own_prop.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/has_own.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/for_each_key.js","../../node_modules/@nevware21/ts-utils/dist-es5/internal/map.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/throw.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/object.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/enum.js","../../node_modules/@nevware21/ts-utils/dist-es5/symbol/well_known.js","../../node_modules/@nevware21/ts-utils/dist-es5/string/as_string.js","../../node_modules/@nevware21/ts-utils/dist-es5/internal/global.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/diagnostics.js","../../node_modules/@nevware21/ts-utils/dist-es5/internal/unwrapFunction.js","../../node_modules/@nevware21/ts-utils/dist-es5/math/min_max.js","../../node_modules/@nevware21/ts-utils/dist-es5/string/slice.js","../../node_modules/@nevware21/ts-utils/dist-es5/string/substring.js","../../node_modules/@nevware21/ts-utils/dist-es5/polyfills/symbol.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/define.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/lazy.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/safe_lazy.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/environment.js","../../node_modules/@nevware21/ts-utils/dist-es5/symbol/symbol.js","../../node_modules/@nevware21/ts-utils/dist-es5/iterator/iterator.js","../../node_modules/@nevware21/ts-utils/dist-es5/iterator/forOf.js","../../node_modules/@nevware21/ts-utils/dist-es5/array/append.js","../../node_modules/@nevware21/ts-utils/dist-es5/array/forEach.js","../../node_modules/@nevware21/ts-utils/dist-es5/array/indexOf.js","../../node_modules/@nevware21/ts-utils/dist-es5/array/map.js","../../node_modules/@nevware21/ts-utils/dist-es5/array/reduce.js","../../node_modules/@nevware21/ts-utils/dist-es5/array/slice.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/set_proto.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/customError.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/date.js","../../node_modules/@nevware21/ts-utils/dist-es5/polyfills/trim.js","../../node_modules/@nevware21/ts-utils/dist-es5/string/trim.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/is_plain_object.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/copy.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/extend.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/length.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/perf.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/create.js","../../node_modules/@nevware21/ts-utils/dist-es5/string/ends_with.js","../../node_modules/@nevware21/ts-utils/dist-es5/string/index_of.js","../../node_modules/@nevware21/ts-utils/dist-es5/timer/handler.js","../../node_modules/@nevware21/ts-utils/dist-es5/timer/timeout.js","../../node_modules/@microsoft/dynamicproto-js/dist-es5/DynamicProto.js","../../node_modules/@microsoft/applicationinsights-shims/dist-es5/Constants.js","../../node_modules/@microsoft/applicationinsights-shims/dist-es5/TsLibShims.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/EnumHelperFuncs.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AggregationError.js","../../node_modules/@nevware21/ts-async/dist-es5/promise/await.js","../../node_modules/@nevware21/ts-async/dist-es5/internal/state.js","../../node_modules/@nevware21/ts-async/dist-es5/promise/event.js","../../node_modules/@nevware21/ts-async/dist-es5/internal/constants.js","../../node_modules/@nevware21/ts-async/dist-es5/promise/base.js","../../node_modules/@nevware21/ts-async/dist-es5/promise/itemProcessor.js","../../node_modules/@nevware21/ts-async/dist-es5/promise/asyncPromise.js","../../node_modules/@nevware21/ts-async/dist-es5/promise/nativePromise.js","../../node_modules/@nevware21/ts-async/dist-es5/promise/promise.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InternalConstants.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/HelperFuncs.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EnvUtils.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/RandomHelper.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DataCacheHelper.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaults.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicSupport.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicProperty.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicState.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicConfig.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AsyncUtils.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/Constants.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaultHelpers.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DbgExtensionUtils.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DiagnosticLogger.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CookieMgr.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/NotificationManager.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/PerfManager.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CoreUtils.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/W3cTraceParent.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryHelpers.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHandlerContainer.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHookContainer.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryInitializerPlugin.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AppInsightsCore.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EventHelpers.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InstrumentHooks.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Constants.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/RequestResponseHeaders.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataSanitizer.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/UrlHelperFuncs.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Util.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Enums.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/StorageHelperFuncs.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/ConnectionStringParser.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Envelope.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Event.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Exception.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataPoint.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Metric.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/HelperFuncs.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageView.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/RemoteDependencyData.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Trace.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageViewPerformance.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Data.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/Contracts/ContextTagKeys.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/TelemetryItemCreator.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/PartAExtensions.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/DomHelperFuncs.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/applicationinsights-common.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewManager.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Timing.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/AnalyticsPlugin.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/InternalConstants.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/EnvelopeCreator.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Offline.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/SendBuffer.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Serializer.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/Sample.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Sender.js","../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/InternalConstants.js","../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajaxRecord.js","../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajax.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Application.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Device.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Internal.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Location.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Session.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/TelemetryTrace.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/User.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/TelemetryContext.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/PropertiesPlugin.js","../../node_modules/@microsoft/applicationinsights-web/dist-es5/InternalConstants.js","../../node_modules/@microsoft/applicationinsights-web/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-web/dist-es5/AISku.js","../../src/services/shared/useAppInsights.ts","../../src/main.ts"],"sourcesContent":["function makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction(\n (str) => str.charAt(0).toUpperCase() + str.slice(1)\n);\nconst toHandlerKey = cacheStringFunction(\n (str) => str ? `on${capitalize(str)}` : ``\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `HYDRATE_EVENTS`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_WHITE_LISTED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console\";\nconst isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value)) {\n return value;\n } else if (isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => {\n entries[`${key} =>`] = val2;\n return entries;\n }, {})\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()]\n };\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { extend, isArray, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit;\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n } else {\n deps[ptr++] = dep;\n }\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = void 0;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n } else {\n cleanupEffect(this);\n }\n return this.fn();\n } finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = void 0;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n if (activeEffect === this) {\n this.deferStop = true;\n } else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect2) {\n const { deps } = effect2;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect2);\n }\n deps.length = 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn);\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep());\n }\n const eventInfo = !!(process.env.NODE_ENV !== \"production\") ? { effect: activeEffect, target, type, key } : void 0;\n trackEffects(dep, eventInfo);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack2 = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit;\n shouldTrack2 = !wasTracked(dep);\n }\n } else {\n shouldTrack2 = !dep.has(activeEffect);\n }\n if (shouldTrack2) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if (!!(process.env.NODE_ENV !== \"production\") && activeEffect.onTrack) {\n activeEffect.onTrack(\n extend(\n {\n effect: activeEffect\n },\n debuggerEventExtraInfo\n )\n );\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const eventInfo = !!(process.env.NODE_ENV !== \"production\") ? { target, type, key, newValue, oldValue, oldTarget } : void 0;\n if (deps.length === 1) {\n if (deps[0]) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(deps[0], eventInfo);\n } else {\n triggerEffects(deps[0]);\n }\n }\n } else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(createDep(effects), eventInfo);\n } else {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n const effects = isArray(dep) ? dep : [...dep];\n for (const effect2 of effects) {\n if (effect2.computed) {\n triggerEffect(effect2, debuggerEventExtraInfo);\n }\n }\n for (const effect2 of effects) {\n if (!effect2.computed) {\n triggerEffect(effect2, debuggerEventExtraInfo);\n }\n }\n}\nfunction triggerEffect(effect2, debuggerEventExtraInfo) {\n if (effect2 !== activeEffect || effect2.allowRecurse) {\n if (!!(process.env.NODE_ENV !== \"production\") && effect2.onTrigger) {\n effect2.onTrigger(extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n if (effect2.scheduler) {\n effect2.scheduler();\n } else {\n effect2.run();\n }\n }\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst get$1 = /* @__PURE__ */ createGetter();\nconst shallowGet = /* @__PURE__ */ createGetter(false, true);\nconst readonlyGet = /* @__PURE__ */ createGetter(true);\nconst shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nfunction createGetter(isReadonly2 = false, shallow = false) {\n return function get2(target, key, receiver) {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return shallow;\n } else if (key === \"__v_raw\" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n };\n}\nconst set$1 = /* @__PURE__ */ createSetter();\nconst shallowSet = /* @__PURE__ */ createSetter(true);\nfunction createSetter(shallow = false) {\n return function set2(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!shallow) {\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction has$1(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\", isArray(target) ? \"length\" : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nconst mutableHandlers = {\n get: get$1,\n set: set$1,\n deleteProperty,\n has: has$1,\n ownKeys\n};\nconst readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n },\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n};\nconst shallowReactiveHandlers = /* @__PURE__ */ extend(\n {},\n mutableHandlers,\n {\n get: shallowGet,\n set: shallowSet\n }\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ extend(\n {},\n readonlyHandlers,\n {\n get: shallowReadonlyGet\n }\n);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\", true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref2) {\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n trackEffects(ref2.dep || (ref2.dep = createDep()), {\n target: ref2,\n type: \"get\",\n key: \"value\"\n });\n } else {\n trackEffects(ref2.dep || (ref2.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref2, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(dep, {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n });\n } else {\n triggerEffects(dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(\n source,\n key,\n defaultValue\n );\n}\n\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n trackRefValue(self);\n if (self._dirty || !self._cacheable) {\n self._dirty = false;\n self._value = self.effect.run();\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n console.warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst tick = /* @__PURE__ */ Promise.resolve();\nconst queue = [];\nlet queued = false;\nconst scheduler = (fn) => {\n queue.push(fn);\n if (!queued) {\n queued = true;\n tick.then(flush);\n }\n};\nconst flush = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n }\n queue.length = 0;\n queued = false;\n};\nclass DeferredComputedRefImpl {\n constructor(getter) {\n this.dep = void 0;\n this._dirty = true;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = true;\n let compareTarget;\n let hasCompareTarget = false;\n let scheduled = false;\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\n if (this.dep) {\n if (computedTrigger) {\n compareTarget = this._value;\n hasCompareTarget = true;\n } else if (!scheduled) {\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\n scheduled = true;\n hasCompareTarget = false;\n scheduler(() => {\n if (this.effect.active && this._get() !== valueToCompare) {\n triggerRefValue(this);\n }\n scheduled = false;\n });\n }\n for (const e of this.dep) {\n if (e.computed instanceof DeferredComputedRefImpl) {\n e.scheduler(\n true\n /* computedTrigger */\n );\n }\n }\n }\n this._dirty = true;\n });\n this.effect.computed = this;\n }\n _get() {\n if (this._dirty) {\n this._dirty = false;\n return this._value = this.effect.run();\n }\n return this._value;\n }\n get value() {\n trackRefValue(this);\n return toRaw(this)._get();\n }\n}\nfunction deferredComputed(getter) {\n return new DeferredComputedRefImpl(getter);\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, getCurrentScope, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, capitalize, isGloballyWhitelisted, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn(msg, ...args) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings[type] : type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJobId = getId(queue[middle]);\n middleJobId < id ? start = middle + 1 : end = middle;\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n warn(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools && typeof devtools.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n result = normalizeVNode(\n render.call(\n proxyToUse,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn(\n `Component inside renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren);\n if (!childRoot) {\n return [vnode, void 0];\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else {\n suspense.pendingId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n suspense.pendingId++;\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n ` is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n isSVG,\n container,\n hiddenContainer,\n anchor,\n deps: 0,\n pendingId: 0,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: true,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n const delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(pendingBranch, container2, anchor2, 0);\n }\n };\n }\n let { anchor: anchor2 } = suspense;\n if (activeBranch) {\n anchor2 = next(activeBranch);\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor2, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n isSVG2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n isSVG,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n document.createElement(\"div\"),\n null,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n /* hydrating */\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild) {\n warn(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = vnode.el = branch.el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\n var _a;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = getCurrentScope() === ((_a = currentInstance) == null ? void 0 : _a.scope) ? currentInstance : null;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n } else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow$1(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return traverse(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (instance && instance.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some(\n (v, i) => hasChanged(v, oldValue[i])\n ) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n const unwatch = () => {\n effect.stop();\n if (instance && instance.scope) {\n remove(instance.scope.effects, effect);\n }\n };\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n } else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(internalInstance) || internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === void 0) {\n prevTransitionKey = key;\n } else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el._leaveCb = () => {\n earlyRemove();\n el._leaveCb = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el._leaveCb) {\n el._leaveCb(\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) {\n leavingVNode.el._leaveCb();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el._enterCb = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el._enterCb = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el._enterCb) {\n el._enterCb(\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el._leaveCb = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el._leaveCb = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n /* do not throw in dev if user provided error component */\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n isSVG,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, \"\"));\n warn(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n /* do not include inferred name to avoid breaking existing code */\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn(`Cannot mutate \n\n","\n\n\n\n\n","import { ref, type Ref } from \"vue\";\nimport type { ModalBase } from \"@/components/modal/models\";\n\ninterface UseManageModalReturn {\n isOpen: (name: string) => boolean;\n getConfig: (name: string) => ModalBase | undefined;\n close: (name: string) => void;\n openModal: (name: string, config: ModalBase) => void;\n isCurrentModalActive: (name: string) => boolean;\n}\ntype ModalItem = {\n name: string;\n config: ModalBase;\n};\n\nconst state: Ref = ref([]);\n\nexport default (): UseManageModalReturn => {\n const isOpen = (name: string): boolean => !!getConfig(name);\n const getConfig = (name: string): ModalBase | undefined => state.value.find((item) => item.name === name)?.config;\n const close = (name: string): void => {\n state.value = state.value.filter((item) => item.name !== name);\n };\n const isCurrentModalActive = (name: string) => state.value.length > 0 && state.value[state.value.length - 1].name === name;\n\n const openModal = (name: string, config: ModalBase): void => {\n if (isOpen(name)) {\n return;\n }\n state.value.push({ name, config });\n };\n\n return { isOpen, close, getConfig, openModal, isCurrentModalActive };\n};\n","import { onMounted, onUnmounted, watch, type ComputedRef } from \"vue\";\n\ninterface KeyBind {\n keyCode:\n | \"Escape\"\n | \"Enter\"\n | \" \"\n | \"ArrowUp\"\n | \"ArrowDown\"\n | \"ArrowLeft\"\n | \"ArrowRight\"\n | \"Tab\"\n | \"Backspace\"\n | \"Delete\"\n | \"Home\"\n | \"End\";\n preventDefault?: boolean;\n success: (() => unknown) | undefined;\n}\n\ninterface KeypressOptions {\n keyEvent: \"keydown\" | \"keypress\" | \"keyup\";\n keyBinds: KeyBind[];\n isActive?: ComputedRef;\n}\nconst eventHandler = (keyBinds: KeyBind[]): ((event: KeyboardEvent) => boolean | null) => {\n return (event: KeyboardEvent) => {\n const keyBind = keyBinds.find((keyBind) => keyBind.keyCode === event.key);\n if (!keyBind) {\n return null;\n }\n if (keyBind.preventDefault) {\n event.preventDefault();\n }\n // SUCCESS -> the correct key was pressed if we got to this point\n if (keyBind.success) {\n keyBind.success();\n }\n return !keyBind.preventDefault;\n };\n};\n\nexport const useKeyEvent = ({ keyEvent, keyBinds, isActive: isListenerActiveRef }: KeypressOptions): void => {\n let eventListener: (event: KeyboardEvent) => boolean | null;\n\n const addListener = () => {\n if (!eventListener) {\n eventListener = eventHandler(keyBinds);\n }\n window.addEventListener(keyEvent, eventListener);\n };\n\n const removeListener = () => {\n if (!eventListener) {\n return;\n }\n window.removeEventListener(keyEvent, eventListener);\n };\n\n if (isListenerActiveRef) {\n if (isListenerActiveRef.value) {\n addListener();\n }\n watch(isListenerActiveRef, (active) => (active ? addListener() : removeListener()));\n } else {\n onMounted(addListener);\n }\n\n onUnmounted(removeListener);\n};\n","\n\n\n","import type { Ref } from \"vue\";\n\nexport const DefaultModalName = \"default\";\nexport type ModalVariant = \"small\" | \"large\" | \"floating\" | \"adaptive\";\nexport type ModalCallback = () => Promise | void | boolean;\n\nexport interface ModalBase {\n title: string | Ref;\n icon?: { content: string; style: string };\n cancelText?: string;\n confirmText?: string;\n showCancelToClose?: boolean;\n variant?: ModalVariant;\n closeCallback?: ModalCallback;\n cancelCallback?: ModalCallback;\n confirmCallback?: ModalCallback;\n onClosed?: () => void;\n}\n\nexport type ComponentModal = ModalBase;\nexport type TextModal = ModalBase & { contentText: string };\n","/*!\n * shared v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nconst inBrowser = typeof window !== 'undefined';\r\nlet mark;\r\nlet measure;\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const perf = inBrowser && window.performance;\r\n if (perf &&\r\n perf.mark &&\r\n perf.measure &&\r\n perf.clearMarks &&\r\n perf.clearMeasures) {\r\n mark = (tag) => perf.mark(tag);\r\n measure = (name, startTag, endTag) => {\r\n perf.measure(name, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n };\r\n }\r\n}\r\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\r\n/* eslint-disable */\r\nfunction format(message, ...args) {\r\n if (args.length === 1 && isObject(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args || !args.hasOwnProperty) {\r\n args = {};\r\n }\r\n return message.replace(RE_ARGS, (match, identifier) => {\r\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\r\n });\r\n}\r\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst makeSymbol = (name) => hasSymbol ? Symbol(name) : name;\r\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\r\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\r\n .replace(/\\u2028/g, '\\\\u2028')\r\n .replace(/\\u2029/g, '\\\\u2029')\r\n .replace(/\\u0027/g, '\\\\u0027');\r\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\r\nconst isDate = (val) => toTypeString(val) === '[object Date]';\r\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\r\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\r\nfunction warn(msg, err) {\r\n if (typeof console !== 'undefined') {\r\n console.warn(`[intlify] ` + msg);\r\n /* istanbul ignore if */\r\n if (err) {\r\n console.warn(err.stack);\r\n }\r\n }\r\n}\r\nconst assign = Object.assign;\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n // prettier-ignore\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\r\nfunction escapeHtml(rawText) {\r\n return rawText\r\n .replace(//g, '>')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''');\r\n}\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/* eslint-enable */\r\n/**\r\n * Useful Utilities By Evan you\r\n * Modified by kazuya kawaguchi\r\n * MIT License\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\r\n */\r\nconst isArray = Array.isArray;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isBoolean = (val) => typeof val === 'boolean';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\n// for converting list and named values to displayed strings.\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n};\r\nconst RANGE = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n const lines = source.split(/\\r?\\n/);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count += lines[i].length + 1;\r\n if (count >= start) {\r\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - lineLength) + 1;\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + 1;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * Event emitter, forked from the below:\r\n * - original repository url: https://github.com/developit/mitt\r\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\r\n * - author: Jason Miller (https://github.com/developit)\r\n * - license: MIT\r\n */\r\n/**\r\n * Create a event emitter\r\n *\r\n * @returns An event emitter\r\n */\r\nfunction createEmitter() {\r\n const events = new Map();\r\n const emitter = {\r\n events,\r\n on(event, handler) {\r\n const handlers = events.get(event);\r\n const added = handlers && handlers.push(handler);\r\n if (!added) {\r\n events.set(event, [handler]);\r\n }\r\n },\r\n off(event, handler) {\r\n const handlers = events.get(event);\r\n if (handlers) {\r\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\r\n }\r\n },\r\n emit(event, payload) {\r\n (events.get(event) || [])\r\n .slice()\r\n .map(handler => handler(payload));\r\n (events.get('*') || [])\r\n .slice()\r\n .map(handler => handler(event, payload));\r\n }\r\n };\r\n return emitter;\r\n}\n\nexport { assign, createEmitter, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn };\n","/*!\n * message-compiler v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, isString } from '@intlify/shared';\n\nconst CompileErrorCodes = {\r\n // tokenizer error codes\r\n EXPECTED_TOKEN: 1,\r\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\r\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\r\n UNKNOWN_ESCAPE_SEQUENCE: 4,\r\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\r\n UNBALANCED_CLOSING_BRACE: 6,\r\n UNTERMINATED_CLOSING_BRACE: 7,\r\n EMPTY_PLACEHOLDER: 8,\r\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\r\n INVALID_LINKED_FORMAT: 10,\r\n // parser error codes\r\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\r\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\r\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\r\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\r\n // Special value for higher-order compilers to pick up the last code\r\n // to avoid collision of error codes. This should always be kept as the last\r\n // item.\r\n __EXTEND_POINT__: 15\r\n};\r\n/** @internal */\r\nconst errorMessages = {\r\n // tokenizer error messages\r\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\r\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\r\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\r\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\r\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\r\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\r\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\r\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\r\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\r\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\r\n // parser error messages\r\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\r\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`\r\n};\r\nfunction createCompileError(code, loc, options = {}) {\r\n const { domain, messages, args } = options;\r\n const msg = (process.env.NODE_ENV !== 'production')\r\n ? format((messages || errorMessages)[code] || '', ...(args || []))\r\n : code;\r\n const error = new SyntaxError(String(msg));\r\n error.code = code;\r\n if (loc) {\r\n error.location = loc;\r\n }\r\n error.domain = domain;\r\n return error;\r\n}\r\n/** @internal */\r\nfunction defaultOnError(error) {\r\n throw error;\r\n}\n\nconst LocationStub = {\r\n start: { line: 1, column: 1, offset: 0 },\r\n end: { line: 1, column: 1, offset: 0 }\r\n};\r\nfunction createPosition(line, column, offset) {\r\n return { line, column, offset };\r\n}\r\nfunction createLocation(start, end, source) {\r\n const loc = { start, end };\r\n if (source != null) {\r\n loc.source = source;\r\n }\r\n return loc;\r\n}\n\nconst CHAR_SP = ' ';\r\nconst CHAR_CR = '\\r';\r\nconst CHAR_LF = '\\n';\r\nconst CHAR_LS = String.fromCharCode(0x2028);\r\nconst CHAR_PS = String.fromCharCode(0x2029);\r\nfunction createScanner(str) {\r\n const _buf = str;\r\n let _index = 0;\r\n let _line = 1;\r\n let _column = 1;\r\n let _peekOffset = 0;\r\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\r\n const isLF = (index) => _buf[index] === CHAR_LF;\r\n const isPS = (index) => _buf[index] === CHAR_PS;\r\n const isLS = (index) => _buf[index] === CHAR_LS;\r\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\r\n const index = () => _index;\r\n const line = () => _line;\r\n const column = () => _column;\r\n const peekOffset = () => _peekOffset;\r\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\r\n const currentChar = () => charAt(_index);\r\n const currentPeek = () => charAt(_index + _peekOffset);\r\n function next() {\r\n _peekOffset = 0;\r\n if (isLineEnd(_index)) {\r\n _line++;\r\n _column = 0;\r\n }\r\n if (isCRLF(_index)) {\r\n _index++;\r\n }\r\n _index++;\r\n _column++;\r\n return _buf[_index];\r\n }\r\n function peek() {\r\n if (isCRLF(_index + _peekOffset)) {\r\n _peekOffset++;\r\n }\r\n _peekOffset++;\r\n return _buf[_index + _peekOffset];\r\n }\r\n function reset() {\r\n _index = 0;\r\n _line = 1;\r\n _column = 1;\r\n _peekOffset = 0;\r\n }\r\n function resetPeek(offset = 0) {\r\n _peekOffset = offset;\r\n }\r\n function skipToPeek() {\r\n const target = _index + _peekOffset;\r\n // eslint-disable-next-line no-unmodified-loop-condition\r\n while (target !== _index) {\r\n next();\r\n }\r\n _peekOffset = 0;\r\n }\r\n return {\r\n index,\r\n line,\r\n column,\r\n peekOffset,\r\n charAt,\r\n currentChar,\r\n currentPeek,\r\n next,\r\n peek,\r\n reset,\r\n resetPeek,\r\n skipToPeek\r\n };\r\n}\n\nconst EOF = undefined;\r\nconst LITERAL_DELIMITER = \"'\";\r\nconst ERROR_DOMAIN$1 = 'tokenizer';\r\nfunction createTokenizer(source, options = {}) {\r\n const location = options.location !== false;\r\n const _scnr = createScanner(source);\r\n const currentOffset = () => _scnr.index();\r\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\r\n const _initLoc = currentPosition();\r\n const _initOffset = currentOffset();\r\n const _context = {\r\n currentType: 14 /* EOF */,\r\n offset: _initOffset,\r\n startLoc: _initLoc,\r\n endLoc: _initLoc,\r\n lastType: 14 /* EOF */,\r\n lastOffset: _initOffset,\r\n lastStartLoc: _initLoc,\r\n lastEndLoc: _initLoc,\r\n braceNest: 0,\r\n inLinked: false,\r\n text: ''\r\n };\r\n const context = () => _context;\r\n const { onError } = options;\r\n function emitError(code, pos, offset, ...args) {\r\n const ctx = context();\r\n pos.column += offset;\r\n pos.offset += offset;\r\n if (onError) {\r\n const loc = createLocation(ctx.startLoc, pos);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN$1,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function getToken(context, type, value) {\r\n context.endLoc = currentPosition();\r\n context.currentType = type;\r\n const token = { type };\r\n if (location) {\r\n token.loc = createLocation(context.startLoc, context.endLoc);\r\n }\r\n if (value != null) {\r\n token.value = value;\r\n }\r\n return token;\r\n }\r\n const getEndToken = (context) => getToken(context, 14 /* EOF */);\r\n function eat(scnr, ch) {\r\n if (scnr.currentChar() === ch) {\r\n scnr.next();\r\n return ch;\r\n }\r\n else {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function peekSpaces(scnr) {\r\n let buf = '';\r\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\r\n buf += scnr.currentPeek();\r\n scnr.peek();\r\n }\r\n return buf;\r\n }\r\n function skipSpaces(scnr) {\r\n const buf = peekSpaces(scnr);\r\n scnr.skipToPeek();\r\n return buf;\r\n }\r\n function isIdentifierStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n cc === 95 // _\r\n );\r\n }\r\n function isNumberStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n }\r\n function isNamedIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isListIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\r\n const ret = isNumberStart(ch);\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLiteralStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDotStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 8 /* LinkedAlias */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \".\" /* LinkedDot */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedModifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 9 /* LinkedDot */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDelimiterStart(scnr, context) {\r\n const { currentType } = context;\r\n if (!(currentType === 8 /* LinkedAlias */ ||\r\n currentType === 12 /* LinkedModifier */)) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \":\" /* LinkedDelimiter */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedReferStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 10 /* LinkedDelimiter */) {\r\n return false;\r\n }\r\n const fn = () => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return isIdentifierStart(scnr.peek());\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n ch === \":\" /* LinkedDelimiter */ ||\r\n ch === \".\" /* LinkedDot */ ||\r\n ch === CHAR_SP ||\r\n !ch) {\r\n return false;\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn();\r\n }\r\n else {\r\n // other characters\r\n return isIdentifierStart(ch);\r\n }\r\n };\r\n const ret = fn();\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isPluralStart(scnr) {\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"|\" /* Pipe */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function detectModuloStart(scnr) {\r\n const spaces = peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"%\" /* Modulo */ &&\r\n scnr.peek() === \"{\" /* BraceLeft */;\r\n scnr.resetPeek();\r\n return {\r\n isModulo: ret,\r\n hasSpace: spaces.length > 0\r\n };\r\n }\r\n function isTextStart(scnr, reset = true) {\r\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return prev === \"%\" /* Modulo */ ? false : hasSpace;\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ || !ch) {\r\n return prev === \"%\" /* Modulo */ ? true : hasSpace;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n scnr.peek();\r\n return fn(hasSpace, \"%\" /* Modulo */, true);\r\n }\r\n else if (ch === \"|\" /* Pipe */) {\r\n return prev === \"%\" /* Modulo */ || detectModulo\r\n ? true\r\n : !(prev === CHAR_SP || prev === CHAR_LF);\r\n }\r\n else if (ch === CHAR_SP) {\r\n scnr.peek();\r\n return fn(true, CHAR_SP, detectModulo);\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn(true, CHAR_LF, detectModulo);\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n const ret = fn();\r\n reset && scnr.resetPeek();\r\n return ret;\r\n }\r\n function takeChar(scnr, fn) {\r\n const ch = scnr.currentChar();\r\n if (ch === EOF) {\r\n return EOF;\r\n }\r\n if (fn(ch)) {\r\n scnr.next();\r\n return ch;\r\n }\r\n return null;\r\n }\r\n function takeIdentifierChar(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n (cc >= 48 && cc <= 57) || // 0-9\r\n cc === 95 || // _\r\n cc === 36 // $\r\n );\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeHexDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 48 && cc <= 57) || // 0-9\r\n (cc >= 65 && cc <= 70) || // A-F\r\n (cc >= 97 && cc <= 102)); // a-f\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function getDigits(scnr) {\r\n let ch = '';\r\n let num = '';\r\n while ((ch = takeDigit(scnr))) {\r\n num += ch;\r\n }\r\n return num;\r\n }\r\n function readModulo(scnr) {\r\n skipSpaces(scnr);\r\n const ch = scnr.currentChar();\r\n if (ch !== \"%\" /* Modulo */) {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n }\r\n scnr.next();\r\n return \"%\" /* Modulo */;\r\n }\r\n function readText(scnr) {\r\n let buf = '';\r\n while (true) {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"}\" /* BraceRight */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n break;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n else if (ch === CHAR_SP || ch === CHAR_LF) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else if (isPluralStart(scnr)) {\r\n break;\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n return buf;\r\n }\r\n function readNamedIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return name;\r\n }\r\n function readListIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let value = '';\r\n if (scnr.currentChar() === '-') {\r\n scnr.next();\r\n value += `-${getDigits(scnr)}`;\r\n }\r\n else {\r\n value += getDigits(scnr);\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return value;\r\n }\r\n function readLiteral(scnr) {\r\n skipSpaces(scnr);\r\n eat(scnr, `\\'`);\r\n let ch = '';\r\n let literal = '';\r\n const fn = (x) => x !== LITERAL_DELIMITER && x !== CHAR_LF;\r\n while ((ch = takeChar(scnr, fn))) {\r\n if (ch === '\\\\') {\r\n literal += readEscapeSequence(scnr);\r\n }\r\n else {\r\n literal += ch;\r\n }\r\n }\r\n const current = scnr.currentChar();\r\n if (current === CHAR_LF || current === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\r\n // TODO: Is it correct really?\r\n if (current === CHAR_LF) {\r\n scnr.next();\r\n eat(scnr, `\\'`);\r\n }\r\n return literal;\r\n }\r\n eat(scnr, `\\'`);\r\n return literal;\r\n }\r\n function readEscapeSequence(scnr) {\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case '\\\\':\r\n case `\\'`:\r\n scnr.next();\r\n return `\\\\${ch}`;\r\n case 'u':\r\n return readUnicodeEscapeSequence(scnr, ch, 4);\r\n case 'U':\r\n return readUnicodeEscapeSequence(scnr, ch, 6);\r\n default:\r\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\r\n eat(scnr, unicode);\r\n let sequence = '';\r\n for (let i = 0; i < digits; i++) {\r\n const ch = takeHexDigit(scnr);\r\n if (!ch) {\r\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\r\n break;\r\n }\r\n sequence += ch;\r\n }\r\n return `\\\\${unicode}${sequence}`;\r\n }\r\n function readInvalidIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let identifiers = '';\r\n const closure = (ch) => ch !== \"{\" /* BraceLeft */ &&\r\n ch !== \"}\" /* BraceRight */ &&\r\n ch !== CHAR_SP &&\r\n ch !== CHAR_LF;\r\n while ((ch = takeChar(scnr, closure))) {\r\n identifiers += ch;\r\n }\r\n return identifiers;\r\n }\r\n function readLinkedModifier(scnr) {\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n return name;\r\n }\r\n function readLinkedRefer(scnr) {\r\n const fn = (detect = false, buf) => {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_SP) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_LF) {\r\n buf += ch;\r\n scnr.next();\r\n return fn(detect, buf);\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n return fn(true, buf);\r\n }\r\n };\r\n return fn(false, '');\r\n }\r\n function readPlural(scnr) {\r\n skipSpaces(scnr);\r\n const plural = eat(scnr, \"|\" /* Pipe */);\r\n skipSpaces(scnr);\r\n return plural;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInPlaceholder(scnr, context) {\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n if (context.braceNest >= 1) {\r\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 2 /* BraceLeft */, \"{\" /* BraceLeft */);\r\n skipSpaces(scnr);\r\n context.braceNest++;\r\n return token;\r\n case \"}\" /* BraceRight */:\r\n if (context.braceNest > 0 &&\r\n context.currentType === 2 /* BraceLeft */) {\r\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n context.braceNest--;\r\n context.braceNest > 0 && skipSpaces(scnr);\r\n if (context.inLinked && context.braceNest === 0) {\r\n context.inLinked = false;\r\n }\r\n return token;\r\n case \"@\" /* LinkedAlias */:\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = readTokenInLinked(scnr, context) || getEndToken(context);\r\n context.braceNest = 0;\r\n return token;\r\n default:\r\n let validNamedIdentifier = true;\r\n let validListIdentifier = true;\r\n let validLiteral = true;\r\n if (isPluralStart(scnr)) {\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (context.braceNest > 0 &&\r\n (context.currentType === 5 /* Named */ ||\r\n context.currentType === 6 /* List */ ||\r\n context.currentType === 7 /* Literal */)) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n context.braceNest = 0;\r\n return readToken(scnr, context);\r\n }\r\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\r\n token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\r\n token = getToken(context, 6 /* List */, readListIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validLiteral = isLiteralStart(scnr, context))) {\r\n token = getToken(context, 7 /* Literal */, readLiteral(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\r\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\r\n token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));\r\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInLinked(scnr, context) {\r\n const { currentType } = context;\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n if ((currentType === 8 /* LinkedAlias */ ||\r\n currentType === 9 /* LinkedDot */ ||\r\n currentType === 12 /* LinkedModifier */ ||\r\n currentType === 10 /* LinkedDelimiter */) &&\r\n (ch === CHAR_LF || ch === CHAR_SP)) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n switch (ch) {\r\n case \"@\" /* LinkedAlias */:\r\n scnr.next();\r\n token = getToken(context, 8 /* LinkedAlias */, \"@\" /* LinkedAlias */);\r\n context.inLinked = true;\r\n return token;\r\n case \".\" /* LinkedDot */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 9 /* LinkedDot */, \".\" /* LinkedDot */);\r\n case \":\" /* LinkedDelimiter */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 10 /* LinkedDelimiter */, \":\" /* LinkedDelimiter */);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isLinkedDotStart(scnr, context) ||\r\n isLinkedDelimiterStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return readTokenInLinked(scnr, context);\r\n }\r\n if (isLinkedModifierStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));\r\n }\r\n if (isLinkedReferStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n if (ch === \"{\" /* BraceLeft */) {\r\n // scan the placeholder\r\n return readTokenInPlaceholder(scnr, context) || token;\r\n }\r\n else {\r\n return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));\r\n }\r\n }\r\n if (currentType === 8 /* LinkedAlias */) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return readToken(scnr, context);\r\n }\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readToken(scnr, context) {\r\n let token = { type: 14 /* EOF */ };\r\n if (context.braceNest > 0) {\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n }\r\n if (context.inLinked) {\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n }\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n case \"}\" /* BraceRight */:\r\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\r\n scnr.next();\r\n return getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n case \"@\" /* LinkedAlias */:\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n const { isModulo, hasSpace } = detectModuloStart(scnr);\r\n if (isModulo) {\r\n return hasSpace\r\n ? getToken(context, 0 /* Text */, readText(scnr))\r\n : getToken(context, 4 /* Modulo */, readModulo(scnr));\r\n }\r\n if (isTextStart(scnr)) {\r\n return getToken(context, 0 /* Text */, readText(scnr));\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n function nextToken() {\r\n const { currentType, offset, startLoc, endLoc } = _context;\r\n _context.lastType = currentType;\r\n _context.lastOffset = offset;\r\n _context.lastStartLoc = startLoc;\r\n _context.lastEndLoc = endLoc;\r\n _context.offset = currentOffset();\r\n _context.startLoc = currentPosition();\r\n if (_scnr.currentChar() === EOF) {\r\n return getToken(_context, 14 /* EOF */);\r\n }\r\n return readToken(_scnr, _context);\r\n }\r\n return {\r\n nextToken,\r\n currentOffset,\r\n currentPosition,\r\n context\r\n };\r\n}\n\nconst ERROR_DOMAIN = 'parser';\r\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\r\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\r\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\r\n switch (match) {\r\n case `\\\\\\\\`:\r\n return `\\\\`;\r\n case `\\\\\\'`:\r\n return `\\'`;\r\n default: {\r\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\r\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\r\n return String.fromCodePoint(codePoint);\r\n }\r\n // invalid ...\r\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\r\n return '�';\r\n }\r\n }\r\n}\r\nfunction createParser(options = {}) {\r\n const location = options.location !== false;\r\n const { onError } = options;\r\n function emitError(tokenzer, code, start, offset, ...args) {\r\n const end = tokenzer.currentPosition();\r\n end.offset += offset;\r\n end.column += offset;\r\n if (onError) {\r\n const loc = createLocation(start, end);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function startNode(type, offset, loc) {\r\n const node = {\r\n type,\r\n start: offset,\r\n end: offset\r\n };\r\n if (location) {\r\n node.loc = { start: loc, end: loc };\r\n }\r\n return node;\r\n }\r\n function endNode(node, offset, pos, type) {\r\n node.end = offset;\r\n if (type) {\r\n node.type = type;\r\n }\r\n if (location && node.loc) {\r\n node.loc.end = pos;\r\n }\r\n }\r\n function parseText(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(3 /* Text */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseList(tokenizer, index) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(5 /* List */, offset, loc);\r\n node.index = parseInt(index, 10);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseNamed(tokenizer, key) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(4 /* Named */, offset, loc);\r\n node.key = key;\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLiteral(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(9 /* Literal */, offset, loc);\r\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinkedModifier(tokenizer) {\r\n const token = tokenizer.nextToken();\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\r\n const node = startNode(8 /* LinkedModifier */, offset, loc);\r\n if (token.type !== 12 /* LinkedModifier */) {\r\n // empty modifier\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\r\n node.value = '';\r\n endNode(node, offset, loc);\r\n return {\r\n nextConsumeToken: token,\r\n node\r\n };\r\n }\r\n // check token\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.value = token.value || '';\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node\r\n };\r\n }\r\n function parseLinkedKey(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinked(tokenizer) {\r\n const context = tokenizer.context();\r\n const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);\r\n let token = tokenizer.nextToken();\r\n if (token.type === 9 /* LinkedDot */) {\r\n const parsed = parseLinkedModifier(tokenizer);\r\n linkedNode.modifier = parsed.node;\r\n token = parsed.nextConsumeToken || tokenizer.nextToken();\r\n }\r\n // asset check token\r\n if (token.type !== 10 /* LinkedDelimiter */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n token = tokenizer.nextToken();\r\n // skip brace left\r\n if (token.type === 2 /* BraceLeft */) {\r\n token = tokenizer.nextToken();\r\n }\r\n switch (token.type) {\r\n case 11 /* LinkedKey */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseNamed(tokenizer, token.value || '');\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseList(tokenizer, token.value || '');\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\r\n break;\r\n default:\r\n // empty key\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\r\n const nextContext = tokenizer.context();\r\n const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);\r\n emptyLinkedKeyNode.value = '';\r\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\r\n linkedNode.key = emptyLinkedKeyNode;\r\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\r\n return {\r\n nextConsumeToken: token,\r\n node: linkedNode\r\n };\r\n }\r\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node: linkedNode\r\n };\r\n }\r\n function parseMessage(tokenizer) {\r\n const context = tokenizer.context();\r\n const startOffset = context.currentType === 1 /* Pipe */\r\n ? tokenizer.currentOffset()\r\n : context.offset;\r\n const startLoc = context.currentType === 1 /* Pipe */\r\n ? context.endLoc\r\n : context.startLoc;\r\n const node = startNode(2 /* Message */, startOffset, startLoc);\r\n node.items = [];\r\n let nextToken = null;\r\n do {\r\n const token = nextToken || tokenizer.nextToken();\r\n nextToken = null;\r\n switch (token.type) {\r\n case 0 /* Text */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseText(tokenizer, token.value || ''));\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseList(tokenizer, token.value || ''));\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseNamed(tokenizer, token.value || ''));\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseLiteral(tokenizer, token.value || ''));\r\n break;\r\n case 8 /* LinkedAlias */:\r\n const parsed = parseLinked(tokenizer);\r\n node.items.push(parsed.node);\r\n nextToken = parsed.nextConsumeToken || null;\r\n break;\r\n }\r\n } while (context.currentType !== 14 /* EOF */ &&\r\n context.currentType !== 1 /* Pipe */);\r\n // adjust message node loc\r\n const endOffset = context.currentType === 1 /* Pipe */\r\n ? context.lastOffset\r\n : tokenizer.currentOffset();\r\n const endLoc = context.currentType === 1 /* Pipe */\r\n ? context.lastEndLoc\r\n : tokenizer.currentPosition();\r\n endNode(node, endOffset, endLoc);\r\n return node;\r\n }\r\n function parsePlural(tokenizer, offset, loc, msgNode) {\r\n const context = tokenizer.context();\r\n let hasEmptyMessage = msgNode.items.length === 0;\r\n const node = startNode(1 /* Plural */, offset, loc);\r\n node.cases = [];\r\n node.cases.push(msgNode);\r\n do {\r\n const msg = parseMessage(tokenizer);\r\n if (!hasEmptyMessage) {\r\n hasEmptyMessage = msg.items.length === 0;\r\n }\r\n node.cases.push(msg);\r\n } while (context.currentType !== 14 /* EOF */);\r\n if (hasEmptyMessage) {\r\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseResource(tokenizer) {\r\n const context = tokenizer.context();\r\n const { offset, startLoc } = context;\r\n const msgNode = parseMessage(tokenizer);\r\n if (context.currentType === 14 /* EOF */) {\r\n return msgNode;\r\n }\r\n else {\r\n return parsePlural(tokenizer, offset, startLoc, msgNode);\r\n }\r\n }\r\n function parse(source) {\r\n const tokenizer = createTokenizer(source, assign({}, options));\r\n const context = tokenizer.context();\r\n const node = startNode(0 /* Resource */, context.offset, context.startLoc);\r\n if (location && node.loc) {\r\n node.loc.source = source;\r\n }\r\n node.body = parseResource(tokenizer);\r\n // assert whether achieved to EOF\r\n if (context.currentType !== 14 /* EOF */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n return { parse };\r\n}\r\nfunction getTokenCaption(token) {\r\n if (token.type === 14 /* EOF */) {\r\n return 'EOF';\r\n }\r\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\r\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\r\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\r\n) {\r\n const _context = {\r\n ast,\r\n helpers: new Set()\r\n };\r\n const context = () => _context;\r\n const helper = (name) => {\r\n _context.helpers.add(name);\r\n return name;\r\n };\r\n return { context, helper };\r\n}\r\nfunction traverseNodes(nodes, transformer) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n traverseNode(nodes[i], transformer);\r\n }\r\n}\r\nfunction traverseNode(node, transformer) {\r\n // TODO: if we need pre-hook of transform, should be implemented to here\r\n switch (node.type) {\r\n case 1 /* Plural */:\r\n traverseNodes(node.cases, transformer);\r\n transformer.helper(\"plural\" /* PLURAL */);\r\n break;\r\n case 2 /* Message */:\r\n traverseNodes(node.items, transformer);\r\n break;\r\n case 6 /* Linked */:\r\n const linked = node;\r\n traverseNode(linked.key, transformer);\r\n transformer.helper(\"linked\" /* LINKED */);\r\n transformer.helper(\"type\" /* TYPE */);\r\n break;\r\n case 5 /* List */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"list\" /* LIST */);\r\n break;\r\n case 4 /* Named */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"named\" /* NAMED */);\r\n break;\r\n }\r\n // TODO: if we need post-hook of transform, should be implemented to here\r\n}\r\n// transform AST\r\nfunction transform(ast, options = {} // eslint-disable-line\r\n) {\r\n const transformer = createTransformer(ast);\r\n transformer.helper(\"normalize\" /* NORMALIZE */);\r\n // traverse\r\n ast.body && traverseNode(ast.body, transformer);\r\n // set meta information\r\n const context = transformer.context();\r\n ast.helpers = Array.from(context.helpers);\r\n}\n\nfunction createCodeGenerator(ast, options) {\r\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\r\n const _context = {\r\n source: ast.loc.source,\r\n filename,\r\n code: '',\r\n column: 1,\r\n line: 1,\r\n offset: 0,\r\n map: undefined,\r\n breakLineCode,\r\n needIndent: _needIndent,\r\n indentLevel: 0\r\n };\r\n const context = () => _context;\r\n function push(code, node) {\r\n _context.code += code;\r\n }\r\n function _newline(n, withBreakLine = true) {\r\n const _breakLineCode = withBreakLine ? breakLineCode : '';\r\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\r\n }\r\n function indent(withNewLine = true) {\r\n const level = ++_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function deindent(withNewLine = true) {\r\n const level = --_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function newline() {\r\n _newline(_context.indentLevel);\r\n }\r\n const helper = (key) => `_${key}`;\r\n const needIndent = () => _context.needIndent;\r\n return {\r\n context,\r\n push,\r\n indent,\r\n deindent,\r\n newline,\r\n helper,\r\n needIndent\r\n };\r\n}\r\nfunction generateLinkedNode(generator, node) {\r\n const { helper } = generator;\r\n generator.push(`${helper(\"linked\" /* LINKED */)}(`);\r\n generateNode(generator, node.key);\r\n if (node.modifier) {\r\n generator.push(`, `);\r\n generateNode(generator, node.modifier);\r\n generator.push(`, _type`);\r\n }\r\n else {\r\n generator.push(`, undefined, _type`);\r\n }\r\n generator.push(`)`);\r\n}\r\nfunction generateMessageNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n generator.push(`${helper(\"normalize\" /* NORMALIZE */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.items.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.items[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push('])');\r\n}\r\nfunction generatePluralNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n if (node.cases.length > 1) {\r\n generator.push(`${helper(\"plural\" /* PLURAL */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.cases.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.cases[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push(`])`);\r\n }\r\n}\r\nfunction generateResource(generator, node) {\r\n if (node.body) {\r\n generateNode(generator, node.body);\r\n }\r\n else {\r\n generator.push('null');\r\n }\r\n}\r\nfunction generateNode(generator, node) {\r\n const { helper } = generator;\r\n switch (node.type) {\r\n case 0 /* Resource */:\r\n generateResource(generator, node);\r\n break;\r\n case 1 /* Plural */:\r\n generatePluralNode(generator, node);\r\n break;\r\n case 2 /* Message */:\r\n generateMessageNode(generator, node);\r\n break;\r\n case 6 /* Linked */:\r\n generateLinkedNode(generator, node);\r\n break;\r\n case 8 /* LinkedModifier */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 7 /* LinkedKey */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 5 /* List */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"list\" /* LIST */)}(${node.index}))`, node);\r\n break;\r\n case 4 /* Named */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"named\" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);\r\n break;\r\n case 9 /* Literal */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 3 /* Text */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n default:\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n throw new Error(`unhandled codegen node type: ${node.type}`);\r\n }\r\n }\r\n}\r\n// generate code from AST\r\nconst generate = (ast, options = {} // eslint-disable-line\r\n) => {\r\n const mode = isString(options.mode) ? options.mode : 'normal';\r\n const filename = isString(options.filename)\r\n ? options.filename\r\n : 'message.intl';\r\n const sourceMap = !!options.sourceMap;\r\n // prettier-ignore\r\n const breakLineCode = options.breakLineCode != null\r\n ? options.breakLineCode\r\n : mode === 'arrow'\r\n ? ';'\r\n : '\\n';\r\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\r\n const helpers = ast.helpers || [];\r\n const generator = createCodeGenerator(ast, {\r\n mode,\r\n filename,\r\n sourceMap,\r\n breakLineCode,\r\n needIndent\r\n });\r\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\r\n generator.indent(needIndent);\r\n if (helpers.length > 0) {\r\n generator.push(`const { ${helpers.map(s => `${s}: _${s}`).join(', ')} } = ctx`);\r\n generator.newline();\r\n }\r\n generator.push(`return `);\r\n generateNode(generator, ast);\r\n generator.deindent(needIndent);\r\n generator.push(`}`);\r\n const { code, map } = generator.context();\r\n return {\r\n ast,\r\n code,\r\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\r\n };\r\n};\n\nfunction baseCompile(source, options = {}) {\r\n const assignedOptions = assign({}, options);\r\n // parse source codes\r\n const parser = createParser(assignedOptions);\r\n const ast = parser.parse(source);\r\n // transform ASTs\r\n transform(ast, assignedOptions);\r\n // generate javascript codes\r\n return generate(ast, assignedOptions);\r\n}\n\nexport { CompileErrorCodes, ERROR_DOMAIN, LocationStub, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, errorMessages };\n","/*!\n * devtools-if v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst IntlifyDevToolsHooks = {\r\n I18nInit: 'i18n:init',\r\n FunctionTranslate: 'function:translate'\r\n};\n\nexport { IntlifyDevToolsHooks };\n","/*!\n * core-base v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { isObject, isString, isFunction, isNumber, isPlainObject, toDisplayString, isArray, format, isBoolean, assign, isRegExp, warn, escapeHtml, inBrowser, mark, measure, isEmptyObject, generateCodeFrame, generateFormatCacheKey, isDate, getGlobalThis } from '@intlify/shared';\nimport { defaultOnError, baseCompile, CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nimport { IntlifyDevToolsHooks } from '@intlify/devtools-if';\n\nconst pathStateMachine = [];\r\npathStateMachine[0 /* BEFORE_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [0 /* BEFORE_PATH */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[1 /* IN_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[2 /* BEFORE_IDENT */] = {\r\n [\"w\" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]\r\n};\r\npathStateMachine[3 /* IN_IDENT */] = {\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]\r\n};\r\npathStateMachine[4 /* IN_SUB_PATH */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [\r\n 4 /* IN_SUB_PATH */,\r\n 2 /* INC_SUB_PATH_DEPTH */\r\n ],\r\n [\"]\" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]\r\n};\r\npathStateMachine[5 /* IN_SINGLE_QUOTE */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]\r\n};\r\npathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]\r\n};\r\n/**\r\n * Check if an expression is a literal value.\r\n */\r\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\r\nfunction isLiteral(exp) {\r\n return literalValueRE.test(exp);\r\n}\r\n/**\r\n * Strip quotes from a string\r\n */\r\nfunction stripQuotes(str) {\r\n const a = str.charCodeAt(0);\r\n const b = str.charCodeAt(str.length - 1);\r\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\r\n}\r\n/**\r\n * Determine the type of a character in a keypath.\r\n */\r\nfunction getPathCharType(ch) {\r\n if (ch === undefined || ch === null) {\r\n return \"o\" /* END_OF_FAIL */;\r\n }\r\n const code = ch.charCodeAt(0);\r\n switch (code) {\r\n case 0x5b: // [\r\n case 0x5d: // ]\r\n case 0x2e: // .\r\n case 0x22: // \"\r\n case 0x27: // '\r\n return ch;\r\n case 0x5f: // _\r\n case 0x24: // $\r\n case 0x2d: // -\r\n return \"i\" /* IDENT */;\r\n case 0x09: // Tab (HT)\r\n case 0x0a: // Newline (LF)\r\n case 0x0d: // Return (CR)\r\n case 0xa0: // No-break space (NBSP)\r\n case 0xfeff: // Byte Order Mark (BOM)\r\n case 0x2028: // Line Separator (LS)\r\n case 0x2029: // Paragraph Separator (PS)\r\n return \"w\" /* WORKSPACE */;\r\n }\r\n return \"i\" /* IDENT */;\r\n}\r\n/**\r\n * Format a subPath, return its plain form if it is\r\n * a literal string or number. Otherwise prepend the\r\n * dynamic indicator (*).\r\n */\r\nfunction formatSubPath(path) {\r\n const trimmed = path.trim();\r\n // invalid leading 0\r\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\r\n return false;\r\n }\r\n return isLiteral(trimmed)\r\n ? stripQuotes(trimmed)\r\n : \"*\" /* ASTARISK */ + trimmed;\r\n}\r\n/**\r\n * Parse a string path into an array of segments\r\n */\r\nfunction parse(path) {\r\n const keys = [];\r\n let index = -1;\r\n let mode = 0 /* BEFORE_PATH */;\r\n let subPathDepth = 0;\r\n let c;\r\n let key; // eslint-disable-line\r\n let newChar;\r\n let type;\r\n let transition;\r\n let action;\r\n let typeMap;\r\n const actions = [];\r\n actions[0 /* APPEND */] = () => {\r\n if (key === undefined) {\r\n key = newChar;\r\n }\r\n else {\r\n key += newChar;\r\n }\r\n };\r\n actions[1 /* PUSH */] = () => {\r\n if (key !== undefined) {\r\n keys.push(key);\r\n key = undefined;\r\n }\r\n };\r\n actions[2 /* INC_SUB_PATH_DEPTH */] = () => {\r\n actions[0 /* APPEND */]();\r\n subPathDepth++;\r\n };\r\n actions[3 /* PUSH_SUB_PATH */] = () => {\r\n if (subPathDepth > 0) {\r\n subPathDepth--;\r\n mode = 4 /* IN_SUB_PATH */;\r\n actions[0 /* APPEND */]();\r\n }\r\n else {\r\n subPathDepth = 0;\r\n if (key === undefined) {\r\n return false;\r\n }\r\n key = formatSubPath(key);\r\n if (key === false) {\r\n return false;\r\n }\r\n else {\r\n actions[1 /* PUSH */]();\r\n }\r\n }\r\n };\r\n function maybeUnescapeQuote() {\r\n const nextChar = path[index + 1];\r\n if ((mode === 5 /* IN_SINGLE_QUOTE */ &&\r\n nextChar === \"'\" /* SINGLE_QUOTE */) ||\r\n (mode === 6 /* IN_DOUBLE_QUOTE */ &&\r\n nextChar === \"\\\"\" /* DOUBLE_QUOTE */)) {\r\n index++;\r\n newChar = '\\\\' + nextChar;\r\n actions[0 /* APPEND */]();\r\n return true;\r\n }\r\n }\r\n while (mode !== null) {\r\n index++;\r\n c = path[index];\r\n if (c === '\\\\' && maybeUnescapeQuote()) {\r\n continue;\r\n }\r\n type = getPathCharType(c);\r\n typeMap = pathStateMachine[mode];\r\n transition = typeMap[type] || typeMap[\"l\" /* ELSE */] || 8 /* ERROR */;\r\n // check parse error\r\n if (transition === 8 /* ERROR */) {\r\n return;\r\n }\r\n mode = transition[0];\r\n if (transition[1] !== undefined) {\r\n action = actions[transition[1]];\r\n if (action) {\r\n newChar = c;\r\n if (action() === false) {\r\n return;\r\n }\r\n }\r\n }\r\n // check parse finish\r\n if (mode === 7 /* AFTER_PATH */) {\r\n return keys;\r\n }\r\n }\r\n}\r\n// path token cache\r\nconst cache = new Map();\r\n/**\r\n * key-value message resolver\r\n *\r\n * @remarks\r\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveWithKeyValue(obj, path) {\r\n return isObject(obj) ? obj[path] : null;\r\n}\r\n/**\r\n * message resolver\r\n *\r\n * @remarks\r\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveValue(obj, path) {\r\n // check object\r\n if (!isObject(obj)) {\r\n return null;\r\n }\r\n // parse path\r\n let hit = cache.get(path);\r\n if (!hit) {\r\n hit = parse(path);\r\n if (hit) {\r\n cache.set(path, hit);\r\n }\r\n }\r\n // check hit\r\n if (!hit) {\r\n return null;\r\n }\r\n // resolve path value\r\n const len = hit.length;\r\n let last = obj;\r\n let i = 0;\r\n while (i < len) {\r\n const val = last[hit[i]];\r\n if (val === undefined) {\r\n return null;\r\n }\r\n last = val;\r\n i++;\r\n }\r\n return last;\r\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\r\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\r\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\r\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');\r\nconst DEFAULT_INTERPOLATE = toDisplayString;\r\nfunction pluralDefault(choice, choicesLength) {\r\n choice = Math.abs(choice);\r\n if (choicesLength === 2) {\r\n // prettier-ignore\r\n return choice\r\n ? choice > 1\r\n ? 1\r\n : 0\r\n : 1;\r\n }\r\n return choice ? Math.min(choice, 2) : 0;\r\n}\r\nfunction getPluralIndex(options) {\r\n // prettier-ignore\r\n const index = isNumber(options.pluralIndex)\r\n ? options.pluralIndex\r\n : -1;\r\n // prettier-ignore\r\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\r\n ? isNumber(options.named.count)\r\n ? options.named.count\r\n : isNumber(options.named.n)\r\n ? options.named.n\r\n : index\r\n : index;\r\n}\r\nfunction normalizeNamed(pluralIndex, props) {\r\n if (!props.count) {\r\n props.count = pluralIndex;\r\n }\r\n if (!props.n) {\r\n props.n = pluralIndex;\r\n }\r\n}\r\nfunction createMessageContext(options = {}) {\r\n const locale = options.locale;\r\n const pluralIndex = getPluralIndex(options);\r\n const pluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? options.pluralRules[locale]\r\n : pluralDefault;\r\n const orgPluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? pluralDefault\r\n : undefined;\r\n const plural = (messages) => {\r\n return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\r\n };\r\n const _list = options.list || [];\r\n const list = (index) => _list[index];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _named = options.named || {};\r\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\r\n const named = (key) => _named[key];\r\n function message(key) {\r\n // prettier-ignore\r\n const msg = isFunction(options.messages)\r\n ? options.messages(key)\r\n : isObject(options.messages)\r\n ? options.messages[key]\r\n : false;\r\n return !msg\r\n ? options.parent\r\n ? options.parent.message(key) // resolve from parent messages\r\n : DEFAULT_MESSAGE\r\n : msg;\r\n }\r\n const _modifier = (name) => options.modifiers\r\n ? options.modifiers[name]\r\n : DEFAULT_MODIFIER;\r\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\r\n ? options.processor.normalize\r\n : DEFAULT_NORMALIZE;\r\n const interpolate = isPlainObject(options.processor) &&\r\n isFunction(options.processor.interpolate)\r\n ? options.processor.interpolate\r\n : DEFAULT_INTERPOLATE;\r\n const type = isPlainObject(options.processor) && isString(options.processor.type)\r\n ? options.processor.type\r\n : DEFAULT_MESSAGE_DATA_TYPE;\r\n const linked = (key, ...args) => {\r\n const [arg1, arg2] = args;\r\n let type = 'text';\r\n let modifier = '';\r\n if (args.length === 1) {\r\n if (isObject(arg1)) {\r\n modifier = arg1.modifier || modifier;\r\n type = arg1.type || type;\r\n }\r\n else if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n }\r\n else if (args.length === 2) {\r\n if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n if (isString(arg2)) {\r\n type = arg2 || type;\r\n }\r\n }\r\n let msg = message(key)(ctx);\r\n // The message in vnode resolved with linked are returned as an array by processor.nomalize\r\n if (type === 'vnode' && isArray(msg) && modifier) {\r\n msg = msg[0];\r\n }\r\n return modifier ? _modifier(modifier)(msg, type) : msg;\r\n };\r\n const ctx = {\r\n [\"list\" /* LIST */]: list,\r\n [\"named\" /* NAMED */]: named,\r\n [\"plural\" /* PLURAL */]: plural,\r\n [\"linked\" /* LINKED */]: linked,\r\n [\"message\" /* MESSAGE */]: message,\r\n [\"type\" /* TYPE */]: type,\r\n [\"interpolate\" /* INTERPOLATE */]: interpolate,\r\n [\"normalize\" /* NORMALIZE */]: normalize\r\n };\r\n return ctx;\r\n}\n\nlet devtools = null;\r\nfunction setDevToolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction getDevToolsHook() {\r\n return devtools;\r\n}\r\nfunction initI18nDevTools(i18n, version, meta) {\r\n // TODO: queue if devtools is undefined\r\n devtools &&\r\n devtools.emit(IntlifyDevToolsHooks.I18nInit, {\r\n timestamp: Date.now(),\r\n i18n,\r\n version,\r\n meta\r\n });\r\n}\r\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);\r\nfunction createDevToolsHook(hook) {\r\n return (payloads) => devtools && devtools.emit(hook, payloads);\r\n}\n\nconst CoreWarnCodes = {\r\n NOT_FOUND_KEY: 1,\r\n FALLBACK_TO_TRANSLATE: 2,\r\n CANNOT_FORMAT_NUMBER: 3,\r\n FALLBACK_TO_NUMBER_FORMAT: 4,\r\n CANNOT_FORMAT_DATE: 5,\r\n FALLBACK_TO_DATE_FORMAT: 6,\r\n __EXTEND_POINT__: 7\r\n};\r\n/** @internal */\r\nconst warnMessages = {\r\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\r\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\n/**\r\n * Fallback with simple implemenation\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a simple fallback algorithm.\r\n *\r\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\r\n) {\r\n // prettier-ignore\r\n return [...new Set([\r\n start,\r\n ...(isArray(fallback)\r\n ? fallback\r\n : isObject(fallback)\r\n ? Object.keys(fallback)\r\n : isString(fallback)\r\n ? [fallback]\r\n : [start])\r\n ])];\r\n}\r\n/**\r\n * Fallback with locale chain\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\r\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\r\n const context = ctx;\r\n if (!context.__localeChainCache) {\r\n context.__localeChainCache = new Map();\r\n }\r\n let chain = context.__localeChainCache.get(startLocale);\r\n if (!chain) {\r\n chain = [];\r\n // first block defined by start\r\n let block = [start];\r\n // while any intervening block found\r\n while (isArray(block)) {\r\n block = appendBlockToChain(chain, block, fallback);\r\n }\r\n // prettier-ignore\r\n // last block defined by default\r\n const defaults = isArray(fallback) || !isPlainObject(fallback)\r\n ? fallback\r\n : fallback['default']\r\n ? fallback['default']\r\n : null;\r\n // convert defaults to array\r\n block = isString(defaults) ? [defaults] : defaults;\r\n if (isArray(block)) {\r\n appendBlockToChain(chain, block, false);\r\n }\r\n context.__localeChainCache.set(startLocale, chain);\r\n }\r\n return chain;\r\n}\r\nfunction appendBlockToChain(chain, block, blocks) {\r\n let follow = true;\r\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\r\n const locale = block[i];\r\n if (isString(locale)) {\r\n follow = appendLocaleToChain(chain, block[i], blocks);\r\n }\r\n }\r\n return follow;\r\n}\r\nfunction appendLocaleToChain(chain, locale, blocks) {\r\n let follow;\r\n const tokens = locale.split('-');\r\n do {\r\n const target = tokens.join('-');\r\n follow = appendItemToChain(chain, target, blocks);\r\n tokens.splice(-1, 1);\r\n } while (tokens.length && follow === true);\r\n return follow;\r\n}\r\nfunction appendItemToChain(chain, target, blocks) {\r\n let follow = false;\r\n if (!chain.includes(target)) {\r\n follow = true;\r\n if (target) {\r\n follow = target[target.length - 1] !== '!';\r\n const locale = target.replace(/!/g, '');\r\n chain.push(locale);\r\n if ((isArray(blocks) || isPlainObject(blocks)) &&\r\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n follow = blocks[locale];\r\n }\r\n }\r\n }\r\n return follow;\r\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Intlify core-base version\r\n * @internal\r\n */\r\nconst VERSION = '9.2.2';\r\nconst NOT_REOSLVED = -1;\r\nconst DEFAULT_LOCALE = 'en-US';\r\nconst MISSING_RESOLVE_VALUE = '';\r\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\r\nfunction getDefaultLinkedModifiers() {\r\n return {\r\n upper: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toUpperCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toUpperCase()\r\n : val;\r\n },\r\n lower: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toLowerCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toLowerCase()\r\n : val;\r\n },\r\n capitalize: (val, type) => {\r\n // prettier-ignore\r\n return (type === 'text' && isString(val)\r\n ? capitalize(val)\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? capitalize(val.children)\r\n : val);\r\n }\r\n };\r\n}\r\nlet _compiler;\r\nfunction registerMessageCompiler(compiler) {\r\n _compiler = compiler;\r\n}\r\nlet _resolver;\r\n/**\r\n * Register the message resolver\r\n *\r\n * @param resolver - A {@link MessageResolver} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerMessageResolver(resolver) {\r\n _resolver = resolver;\r\n}\r\nlet _fallbacker;\r\n/**\r\n * Register the locale fallbacker\r\n *\r\n * @param fallbacker - A {@link LocaleFallbacker} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerLocaleFallbacker(fallbacker) {\r\n _fallbacker = fallbacker;\r\n}\r\n// Additional Meta for Intlify DevTools\r\nlet _additionalMeta = null;\r\nconst setAdditionalMeta = (meta) => {\r\n _additionalMeta = meta;\r\n};\r\nconst getAdditionalMeta = () => _additionalMeta;\r\nlet _fallbackContext = null;\r\nconst setFallbackContext = (context) => {\r\n _fallbackContext = context;\r\n};\r\nconst getFallbackContext = () => _fallbackContext;\r\n// ID for CoreContext\r\nlet _cid = 0;\r\nfunction createCoreContext(options = {}) {\r\n // setup options\r\n const version = isString(options.version) ? options.version : VERSION;\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n isString(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const messages = isPlainObject(options.messages)\r\n ? options.messages\r\n : { [locale]: {} };\r\n const datetimeFormats = isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [locale]: {} }\r\n ;\r\n const numberFormats = isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [locale]: {} }\r\n ;\r\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\r\n const pluralRules = options.pluralRules || {};\r\n const missing = isFunction(options.missing) ? options.missing : null;\r\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n const fallbackFormat = !!options.fallbackFormat;\r\n const unresolving = !!options.unresolving;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n const processor = isPlainObject(options.processor) ? options.processor : null;\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const escapeParameter = !!options.escapeParameter;\r\n const messageCompiler = isFunction(options.messageCompiler)\r\n ? options.messageCompiler\r\n : _compiler;\r\n const messageResolver = isFunction(options.messageResolver)\r\n ? options.messageResolver\r\n : _resolver || resolveWithKeyValue;\r\n const localeFallbacker = isFunction(options.localeFallbacker)\r\n ? options.localeFallbacker\r\n : _fallbacker || fallbackWithSimple;\r\n const fallbackContext = isObject(options.fallbackContext)\r\n ? options.fallbackContext\r\n : undefined;\r\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\r\n // setup internal options\r\n const internalOptions = options;\r\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\r\n ? internalOptions.__datetimeFormatters\r\n : new Map()\r\n ;\r\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\r\n ? internalOptions.__numberFormatters\r\n : new Map()\r\n ;\r\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\r\n _cid++;\r\n const context = {\r\n version,\r\n cid: _cid,\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n modifiers,\r\n pluralRules,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackFormat,\r\n unresolving,\r\n postTranslation,\r\n processor,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageCompiler,\r\n messageResolver,\r\n localeFallbacker,\r\n fallbackContext,\r\n onWarn,\r\n __meta\r\n };\r\n {\r\n context.datetimeFormats = datetimeFormats;\r\n context.numberFormats = numberFormats;\r\n context.__datetimeFormatters = __datetimeFormatters;\r\n context.__numberFormatters = __numberFormatters;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.__v_emitter =\r\n internalOptions.__v_emitter != null\r\n ? internalOptions.__v_emitter\r\n : undefined;\r\n }\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n initI18nDevTools(context, version, __meta);\r\n }\r\n return context;\r\n}\r\n/** @internal */\r\nfunction isTranslateFallbackWarn(fallback, key) {\r\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\r\n}\r\n/** @internal */\r\nfunction isTranslateMissingWarn(missing, key) {\r\n return missing instanceof RegExp ? missing.test(key) : missing;\r\n}\r\n/** @internal */\r\nfunction handleMissing(context, key, locale, missingWarn, type) {\r\n const { missing, onWarn } = context;\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"missing\" /* MISSING */, {\r\n locale,\r\n key,\r\n type,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n if (missing !== null) {\r\n const ret = missing(context, locale, key, type);\r\n return isString(ret) ? ret : key;\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\r\n }\r\n return key;\r\n }\r\n}\r\n/** @internal */\r\nfunction updateFallbackLocale(ctx, locale, fallback) {\r\n const context = ctx;\r\n context.__localeChainCache = new Map();\r\n ctx.localeFallbacker(ctx, fallback, locale);\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\r\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\r\nfunction checkHtmlMessage(source, options) {\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n if (warnHtmlMessage && RE_HTML_TAG.test(source)) {\r\n warn(format(WARN_MESSAGE, { source }));\r\n }\r\n}\r\nconst defaultOnCacheKey = (source) => source;\r\nlet compileCache = Object.create(null);\r\nfunction clearCompileCache() {\r\n compileCache = Object.create(null);\r\n}\r\nfunction compileToFunction(source, options = {}) {\r\n {\r\n // check HTML message\r\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(source, options);\r\n // check caches\r\n const onCacheKey = options.onCacheKey || defaultOnCacheKey;\r\n const key = onCacheKey(source);\r\n const cached = compileCache[key];\r\n if (cached) {\r\n return cached;\r\n }\r\n // compile error detecting\r\n let occurred = false;\r\n const onError = options.onError || defaultOnError;\r\n options.onError = (err) => {\r\n occurred = true;\r\n onError(err);\r\n };\r\n // compile\r\n const { code } = baseCompile(source, options);\r\n // evaluate function\r\n const msg = new Function(`return ${code}`)();\r\n // if occurred compile error, don't cache\r\n return !occurred ? (compileCache[key] = msg) : msg;\r\n }\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst CoreErrorCodes = {\r\n INVALID_ARGUMENT: code,\r\n INVALID_DATE_ARGUMENT: inc(),\r\n INVALID_ISO_DATE_ARGUMENT: inc(),\r\n __EXTEND_POINT__: inc() // 18\r\n};\r\nfunction createCoreError(code) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\r\n}\r\n/** @internal */\r\nconst errorMessages = {\r\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\r\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\r\n 'Make sure your Date represents a valid date.',\r\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string'\r\n};\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\r\nconst isMessageFunction = (val) => isFunction(val);\r\n// implementation of `translate` function\r\nfunction translate(context, ...args) {\r\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\r\n const [key, options] = parseTranslateArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const escapeParameter = isBoolean(options.escapeParameter)\r\n ? options.escapeParameter\r\n : context.escapeParameter;\r\n const resolvedMessage = !!options.resolvedMessage;\r\n // prettier-ignore\r\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\r\n ? !isBoolean(options.default)\r\n ? options.default\r\n : (!messageCompiler ? () => key : key)\r\n : fallbackFormat // default by `fallbackFormat` option\r\n ? (!messageCompiler ? () => key : key)\r\n : '';\r\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n // escape params\r\n escapeParameter && escapeParams(options);\r\n // resolve message format\r\n // eslint-disable-next-line prefer-const\r\n let [formatScope, targetLocale, message] = !resolvedMessage\r\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\r\n : [\r\n key,\r\n locale,\r\n messages[locale] || {}\r\n ];\r\n // NOTE:\r\n // Fix to work around `ssrTransfrom` bug in Vite.\r\n // https://github.com/vitejs/vite/issues/4306\r\n // To get around this, use temporary variables.\r\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\r\n let format = formatScope;\r\n // if you use default message, set it as message format!\r\n let cacheBaseKey = key;\r\n if (!resolvedMessage &&\r\n !(isString(format) || isMessageFunction(format))) {\r\n if (enableDefaultMsg) {\r\n format = defaultMsgOrKey;\r\n cacheBaseKey = format;\r\n }\r\n }\r\n // checking message format and target locale\r\n if (!resolvedMessage &&\r\n (!(isString(format) || isMessageFunction(format)) ||\r\n !isString(targetLocale))) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\r\n warn(`The message format compilation is not supported in this build. ` +\r\n `Because message compiler isn't included. ` +\r\n `You need to pre-compilation all message format. ` +\r\n `So translate function return '${key}'.`);\r\n return key;\r\n }\r\n // setup compile error detecting\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n // compile message format\r\n const msg = !isMessageFunction(format)\r\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector)\r\n : format;\r\n // if occurred compile error, return the message format\r\n if (occurred) {\r\n return format;\r\n }\r\n // evaluate message with context\r\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\r\n const msgContext = createMessageContext(ctxOptions);\r\n const messaged = evaluateMessage(context, msg, msgContext);\r\n // if use post translation option, proceed it with handler\r\n const ret = postTranslation\r\n ? postTranslation(messaged, key)\r\n : messaged;\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n // prettier-ignore\r\n const payloads = {\r\n timestamp: Date.now(),\r\n key: isString(key)\r\n ? key\r\n : isMessageFunction(format)\r\n ? format.key\r\n : '',\r\n locale: targetLocale || (isMessageFunction(format)\r\n ? format.locale\r\n : ''),\r\n format: isString(format)\r\n ? format\r\n : isMessageFunction(format)\r\n ? format.source\r\n : '',\r\n message: ret\r\n };\r\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\r\n translateDevTools(payloads);\r\n }\r\n return ret;\r\n}\r\nfunction escapeParams(options) {\r\n if (isArray(options.list)) {\r\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\r\n }\r\n else if (isObject(options.named)) {\r\n Object.keys(options.named).forEach(key => {\r\n if (isString(options.named[key])) {\r\n options.named[key] = escapeHtml(options.named[key]);\r\n }\r\n });\r\n }\r\n}\r\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\r\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\r\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n let message = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'translate';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n message =\r\n messages[targetLocale] || {};\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-resolve-start';\r\n endTag = 'intlify-message-resolve-end';\r\n mark && mark(startTag);\r\n }\r\n if ((format = resolveValue(message, key)) === null) {\r\n // if null, resolve with object key path\r\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start && format) {\r\n emitter.emit(\"message-resolve\" /* MESSAGE_RESOLVE */, {\r\n type: \"message-resolve\" /* MESSAGE_RESOLVE */,\r\n key,\r\n message: format,\r\n time: end - start,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message resolve', startTag, endTag);\r\n }\r\n }\r\n if (isString(format) || isFunction(format))\r\n break;\r\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n key, targetLocale, missingWarn, type);\r\n if (missingRet !== key) {\r\n format = missingRet;\r\n }\r\n from = to;\r\n }\r\n return [format, targetLocale, message];\r\n}\r\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) {\r\n const { messageCompiler, warnHtmlMessage } = context;\r\n if (isMessageFunction(format)) {\r\n const msg = format;\r\n msg.locale = msg.locale || targetLocale;\r\n msg.key = msg.key || key;\r\n return msg;\r\n }\r\n if (messageCompiler == null) {\r\n const msg = (() => format);\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n return msg;\r\n }\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-compilation-start';\r\n endTag = 'intlify-message-compilation-end';\r\n mark && mark(startTag);\r\n }\r\n const msg = messageCompiler(format, getCompileOptions(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, errorDetector));\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-compilation\" /* MESSAGE_COMPILATION */, {\r\n type: \"message-compilation\" /* MESSAGE_COMPILATION */,\r\n message: format,\r\n time: end - start,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message compilation', startTag, endTag);\r\n }\r\n }\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n msg.source = format;\r\n return msg;\r\n}\r\nfunction evaluateMessage(context, msg, msgCtx) {\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-evaluation-start';\r\n endTag = 'intlify-message-evaluation-end';\r\n mark && mark(startTag);\r\n }\r\n const messaged = msg(msgCtx);\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-evaluation\" /* MESSAGE_EVALUATION */, {\r\n type: \"message-evaluation\" /* MESSAGE_EVALUATION */,\r\n value: messaged,\r\n time: end - start,\r\n groupId: `${'translate'}:${msg.key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message evaluation', startTag, endTag);\r\n }\r\n }\r\n return messaged;\r\n}\r\n/** @internal */\r\nfunction parseTranslateArgs(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n // prettier-ignore\r\n const key = isNumber(arg1)\r\n ? String(arg1)\r\n : isMessageFunction(arg1)\r\n ? arg1\r\n : arg1;\r\n if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isString(arg2)) {\r\n options.default = arg2;\r\n }\r\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\r\n options.named = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n options.list = arg2;\r\n }\r\n if (isNumber(arg3)) {\r\n options.plural = arg3;\r\n }\r\n else if (isString(arg3)) {\r\n options.default = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n assign(options, arg3);\r\n }\r\n return [key, options];\r\n}\r\nfunction getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\r\n return {\r\n warnHtmlMessage,\r\n onError: (err) => {\r\n errorDetector && errorDetector(err);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const message = `Message compilation error: ${err.message}`;\r\n const codeFrame = err.location &&\r\n generateCodeFrame(source, err.location.start.offset, err.location.end.offset);\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"compile-error\" /* COMPILE_ERROR */, {\r\n message: source,\r\n error: err.message,\r\n start: err.location && err.location.start.offset,\r\n end: err.location && err.location.end.offset,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\r\n }\r\n else {\r\n throw err;\r\n }\r\n },\r\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\r\n };\r\n}\r\nfunction getMessageContextOptions(context, locale, message, options) {\r\n const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\r\n const resolveMessage = (key) => {\r\n let val = resolveValue(message, key);\r\n // fallback to root context\r\n if (val == null && fallbackContext) {\r\n const [, , message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);\r\n val = resolveValue(message, key);\r\n }\r\n if (isString(val)) {\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n const msg = compileMessageFormat(context, key, locale, val, key, errorDetector);\r\n return !occurred\r\n ? msg\r\n : NOOP_MESSAGE_FUNCTION;\r\n }\r\n else if (isMessageFunction(val)) {\r\n return val;\r\n }\r\n else {\r\n // TODO: should be implemented warning message\r\n return NOOP_MESSAGE_FUNCTION;\r\n }\r\n };\r\n const ctxOptions = {\r\n locale,\r\n modifiers,\r\n pluralRules,\r\n messages: resolveMessage\r\n };\r\n if (context.processor) {\r\n ctxOptions.processor = context.processor;\r\n }\r\n if (options.list) {\r\n ctxOptions.list = options.list;\r\n }\r\n if (options.named) {\r\n ctxOptions.named = options.named;\r\n }\r\n if (isNumber(options.plural)) {\r\n ctxOptions.pluralIndex = options.plural;\r\n }\r\n return ctxOptions;\r\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\r\nconst Availabilities = {\r\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\r\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\r\n};\n\n// implementation of `datetime` function\r\nfunction datetime(context, ...args) {\r\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __datetimeFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.DateTimeFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let datetimeFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'datetime format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n datetimeFormat =\r\n datetimeFormats[targetLocale] || {};\r\n format = datetimeFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __datetimeFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\r\n __datetimeFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst DATETIME_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'weekday',\r\n 'era',\r\n 'year',\r\n 'month',\r\n 'day',\r\n 'hour',\r\n 'minute',\r\n 'second',\r\n 'timeZoneName',\r\n 'formatMatcher',\r\n 'hour12',\r\n 'timeZone',\r\n 'dateStyle',\r\n 'timeStyle',\r\n 'calendar',\r\n 'dayPeriod',\r\n 'numberingSystem',\r\n 'hourCycle',\r\n 'fractionalSecondDigits'\r\n];\r\n/** @internal */\r\nfunction parseDateTimeArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n let value;\r\n if (isString(arg1)) {\r\n // Only allow ISO strings - other date formats are often supported,\r\n // but may cause different results in different browsers.\r\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\r\n if (!matches) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n // Some browsers can not parse the iso datetime separated by space,\r\n // this is a compromise solution by replace the 'T'/' ' with 'T'\r\n const dateTime = matches[3]\r\n ? matches[3].trim().startsWith('T')\r\n ? `${matches[1].trim()}${matches[3].trim()}`\r\n : `${matches[1].trim()}T${matches[3].trim()}`\r\n : matches[1].trim();\r\n value = new Date(dateTime);\r\n try {\r\n // This will fail if the date is not valid\r\n value.toISOString();\r\n }\r\n catch (e) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n }\r\n else if (isDate(arg1)) {\r\n if (isNaN(arg1.getTime())) {\r\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\r\n }\r\n value = arg1;\r\n }\r\n else if (isNumber(arg1)) {\r\n value = arg1;\r\n }\r\n else {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearDateTimeFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__datetimeFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__datetimeFormatters.delete(id);\r\n }\r\n}\n\n// implementation of `number` function\r\nfunction number(context, ...args) {\r\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __numberFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseNumberArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.NumberFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let numberFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'number format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n numberFormat =\r\n numberFormats[targetLocale] || {};\r\n format = numberFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __numberFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\r\n __numberFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst NUMBER_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'style',\r\n 'currency',\r\n 'currencyDisplay',\r\n 'currencySign',\r\n 'useGrouping',\r\n 'minimumIntegerDigits',\r\n 'minimumFractionDigits',\r\n 'maximumFractionDigits',\r\n 'minimumSignificantDigits',\r\n 'maximumSignificantDigits',\r\n 'compactDisplay',\r\n 'notation',\r\n 'signDisplay',\r\n 'unit',\r\n 'unitDisplay',\r\n 'roundingMode',\r\n 'roundingPriority',\r\n 'roundingIncrement',\r\n 'trailingZeroDisplay'\r\n];\r\n/** @internal */\r\nfunction parseNumberArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n if (!isNumber(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const value = arg1;\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearNumberFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__numberFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__numberFormatters.delete(id);\r\n }\r\n}\n\n// TODO: we could not exports for Node native ES Moudles yet...\r\n{\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n}\n\nexport { CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compileToFunction, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getWarnMessage, handleMissing, initI18nDevTools, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","/*!\n * vue-i18n v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, format, makeSymbol, isPlainObject, isArray, isString, hasOwn, isObject, isBoolean, isRegExp, isFunction, inBrowser, assign, isNumber, warn, createEmitter, isEmptyObject } from '@intlify/shared';\nimport { CoreWarnCodes, CompileErrorCodes, createCompileError, DEFAULT_LOCALE, updateFallbackLocale, setFallbackContext, createCoreContext, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, getFallbackContext, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, fallbackWithLocaleChain, NUMBER_FORMAT_OPTIONS_KEYS, DATETIME_FORMAT_OPTIONS_KEYS, registerMessageResolver, resolveValue, registerLocaleFallbacker, setDevToolsHook } from '@intlify/core-base';\nimport { createVNode, Text, ref, computed, watch, getCurrentInstance, Fragment, h, effectScope, inject, onMounted, onUnmounted, shallowRef, onBeforeMount, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\nimport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors } from '@intlify/vue-devtools';\n\n/**\r\n * Vue I18n Version\r\n *\r\n * @remarks\r\n * Semver format. Same format as the package.json `version` field.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst VERSION = '9.2.2';\r\n/**\r\n * This is only called in esm-bundler builds.\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\r\n }\r\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\r\n }\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of vue-i18n. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle.`);\r\n }\r\n}\n\nlet code$1 = CoreWarnCodes.__EXTEND_POINT__;\r\nconst inc$1 = () => ++code$1;\r\nconst I18nWarnCodes = {\r\n FALLBACK_TO_ROOT: code$1,\r\n NOT_SUPPORTED_PRESERVE: inc$1(),\r\n NOT_SUPPORTED_FORMATTER: inc$1(),\r\n NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(),\r\n NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(),\r\n COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(),\r\n NOT_FOUND_PARENT_SCOPE: inc$1() // 13\r\n};\r\nconst warnMessages = {\r\n [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`,\r\n [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`,\r\n [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst I18nErrorCodes = {\r\n // composer module errors\r\n UNEXPECTED_RETURN_TYPE: code,\r\n // legacy module errors\r\n INVALID_ARGUMENT: inc(),\r\n // i18n module errors\r\n MUST_BE_CALL_SETUP_TOP: inc(),\r\n NOT_INSLALLED: inc(),\r\n NOT_AVAILABLE_IN_LEGACY_MODE: inc(),\r\n // directive module errors\r\n REQUIRED_VALUE: inc(),\r\n INVALID_VALUE: inc(),\r\n // vue-devtools errors\r\n CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(),\r\n NOT_INSLALLED_WITH_PROVIDE: inc(),\r\n // unexpected error\r\n UNEXPECTED_ERROR: inc(),\r\n // not compatible legacy vue-i18n constructor\r\n NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(),\r\n // bridge support vue 2.x only\r\n BRIDGE_SUPPORT_VUE_2_ONLY: inc(),\r\n // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n``\r\n MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(),\r\n // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly\r\n NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(),\r\n // for enhancement\r\n __EXTEND_POINT__: inc() // 29\r\n};\r\nfunction createI18nError(code, ...args) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\r\n}\r\nconst errorMessages = {\r\n [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer',\r\n [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\r\n [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\r\n [I18nErrorCodes.NOT_INSLALLED]: 'Need to install with `app.use` function',\r\n [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\r\n [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: 'Not available in legacy mode',\r\n [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,\r\n [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,\r\n [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,\r\n [I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE]: 'Need to install with `provide` function',\r\n [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.',\r\n [I18nErrorCodes.BRIDGE_SUPPORT_VUE_2_ONLY]: 'vue-i18n-bridge support Vue 2.x only',\r\n [I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION]: 'Must define ‘i18n’ option or custom block in Composition API with using local scope in Legacy API mode',\r\n [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: 'Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly'\r\n};\n\nconst TransrateVNodeSymbol = \r\n/* #__PURE__*/ makeSymbol('__transrateVNode');\r\nconst DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts');\r\nconst NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts');\r\nconst EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter');\r\nconst DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter');\r\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\r\nmakeSymbol('__intlifyMeta');\r\nconst InejctWithOption = /* #__PURE__*/ makeSymbol('__injectWithOption');\r\nconst __VUE_I18N_BRIDGE__ = '__VUE_I18N_BRIDGE__';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Transform flat json in obj to normal json in obj\r\n */\r\nfunction handleFlatJson(obj) {\r\n // check obj\r\n if (!isObject(obj)) {\r\n return obj;\r\n }\r\n for (const key in obj) {\r\n // check key\r\n if (!hasOwn(obj, key)) {\r\n continue;\r\n }\r\n // handle for normal json\r\n if (!key.includes('.')) {\r\n // recursive process value if value is also a object\r\n if (isObject(obj[key])) {\r\n handleFlatJson(obj[key]);\r\n }\r\n }\r\n // handle for flat json, transform to normal json\r\n else {\r\n // go to the last object\r\n const subKeys = key.split('.');\r\n const lastIndex = subKeys.length - 1;\r\n let currentObj = obj;\r\n for (let i = 0; i < lastIndex; i++) {\r\n if (!(subKeys[i] in currentObj)) {\r\n currentObj[subKeys[i]] = {};\r\n }\r\n currentObj = currentObj[subKeys[i]];\r\n }\r\n // update last object value, delete old property\r\n currentObj[subKeys[lastIndex]] = obj[key];\r\n delete obj[key];\r\n // recursive process value if value is also a object\r\n if (isObject(currentObj[subKeys[lastIndex]])) {\r\n handleFlatJson(currentObj[subKeys[lastIndex]]);\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\nfunction getLocaleMessages(locale, options) {\r\n const { messages, __i18n, messageResolver, flatJson } = options;\r\n // prettier-ignore\r\n const ret = isPlainObject(messages)\r\n ? messages\r\n : isArray(__i18n)\r\n ? {}\r\n : { [locale]: {} };\r\n // merge locale messages of i18n custom block\r\n if (isArray(__i18n)) {\r\n __i18n.forEach(custom => {\r\n if ('locale' in custom && 'resource' in custom) {\r\n const { locale, resource } = custom;\r\n if (locale) {\r\n ret[locale] = ret[locale] || {};\r\n deepCopy(resource, ret[locale]);\r\n }\r\n else {\r\n deepCopy(resource, ret);\r\n }\r\n }\r\n else {\r\n isString(custom) && deepCopy(JSON.parse(custom), ret);\r\n }\r\n });\r\n }\r\n // handle messages for flat json\r\n if (messageResolver == null && flatJson) {\r\n for (const key in ret) {\r\n if (hasOwn(ret, key)) {\r\n handleFlatJson(ret[key]);\r\n }\r\n }\r\n }\r\n return ret;\r\n}\r\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\nfunction deepCopy(src, des) {\r\n // src and des should both be objects, and non of then can be a array\r\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n }\r\n for (const key in src) {\r\n if (hasOwn(src, key)) {\r\n if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\r\n // replace with src[key] when:\r\n // src[key] or des[key] is not a object, or\r\n // src[key] or des[key] is a array\r\n des[key] = src[key];\r\n }\r\n else {\r\n // src[key] and des[key] are both object, merge them\r\n deepCopy(src[key], des[key]);\r\n }\r\n }\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getComponentOptions(instance) {\r\n return instance.type ;\r\n}\r\nfunction adjustI18nResources(global, options, componentOptions // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n let messages = isObject(options.messages) ? options.messages : {};\r\n if ('__i18nGlobal' in componentOptions) {\r\n messages = getLocaleMessages(global.locale.value, {\r\n messages,\r\n __i18n: componentOptions.__i18nGlobal\r\n });\r\n }\r\n // merge locale messages\r\n const locales = Object.keys(messages);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeLocaleMessage(locale, messages[locale]);\r\n });\r\n }\r\n {\r\n // merge datetime formats\r\n if (isObject(options.datetimeFormats)) {\r\n const locales = Object.keys(options.datetimeFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\r\n });\r\n }\r\n }\r\n // merge number formats\r\n if (isObject(options.numberFormats)) {\r\n const locales = Object.keys(options.numberFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeNumberFormat(locale, options.numberFormats[locale]);\r\n });\r\n }\r\n }\r\n }\r\n}\r\nfunction createTextNode(key) {\r\n return createVNode(Text, null, key, 0)\r\n ;\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// extend VNode interface\r\nconst DEVTOOLS_META = '__INTLIFY_META__';\r\nlet composerID = 0;\r\nfunction defineCoreMissingHandler(missing) {\r\n return ((ctx, locale, key, type) => {\r\n return missing(locale, key, getCurrentInstance() || undefined, type);\r\n });\r\n}\r\n// for Intlify DevTools\r\nconst getMetaInfo = () => {\r\n const instance = getCurrentInstance();\r\n let meta = null; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\r\n ? { [DEVTOOLS_META]: meta } // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : null;\r\n};\r\n/**\r\n * Create composer interface factory\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction createComposer(options = {}, VueI18nLegacy) {\r\n const { __root } = options;\r\n const _isGlobal = __root === undefined;\r\n let _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : DEFAULT_LOCALE);\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n // prettier-ignore\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} })\r\n ;\r\n // prettier-ignore\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} })\r\n ;\r\n // warning suppress options\r\n // prettier-ignore\r\n let _missingWarn = __root\r\n ? __root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackWarn = __root\r\n ? __root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackRoot = __root\r\n ? __root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n let _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n let _missing = isFunction(options.missing) ? options.missing : null;\r\n let _runtimeMissing = isFunction(options.missing)\r\n ? defineCoreMissingHandler(options.missing)\r\n : null;\r\n // postTranslation handler\r\n let _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n // prettier-ignore\r\n let _warnHtmlMessage = __root\r\n ? __root.warnHtmlMessage\r\n : isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n let _escapeParameter = !!options.escapeParameter;\r\n // custom linked modifiers\r\n // prettier-ignore\r\n const _modifiers = __root\r\n ? __root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\r\n // runtime context\r\n // eslint-disable-next-line prefer-const\r\n let _context;\r\n const getCoreContext = () => {\r\n _isGlobal && setFallbackContext(null);\r\n const ctxOptions = {\r\n version: VERSION,\r\n locale: _locale.value,\r\n fallbackLocale: _fallbackLocale.value,\r\n messages: _messages.value,\r\n modifiers: _modifiers,\r\n pluralRules: _pluralRules,\r\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\r\n missingWarn: _missingWarn,\r\n fallbackWarn: _fallbackWarn,\r\n fallbackFormat: _fallbackFormat,\r\n unresolving: true,\r\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\r\n warnHtmlMessage: _warnHtmlMessage,\r\n escapeParameter: _escapeParameter,\r\n messageResolver: options.messageResolver,\r\n __meta: { framework: 'vue' }\r\n };\r\n {\r\n ctxOptions.datetimeFormats = _datetimeFormats.value;\r\n ctxOptions.numberFormats = _numberFormats.value;\r\n ctxOptions.__datetimeFormatters = isPlainObject(_context)\r\n ? _context.__datetimeFormatters\r\n : undefined;\r\n ctxOptions.__numberFormatters = isPlainObject(_context)\r\n ? _context.__numberFormatters\r\n : undefined;\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n ctxOptions.__v_emitter = isPlainObject(_context)\r\n ? _context.__v_emitter\r\n : undefined;\r\n }\r\n const ctx = createCoreContext(ctxOptions);\r\n _isGlobal && setFallbackContext(ctx);\r\n return ctx;\r\n };\r\n _context = getCoreContext();\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ]\r\n ;\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => _locale.value,\r\n set: val => {\r\n _locale.value = val;\r\n _context.locale = _locale.value;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => _fallbackLocale.value,\r\n set: val => {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = _fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, val);\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => _messages.value);\r\n // datetimeFormats\r\n const datetimeFormats = /* #__PURE__*/ computed(() => _datetimeFormats.value);\r\n // numberFormats\r\n const numberFormats = /* #__PURE__*/ computed(() => _numberFormats.value);\r\n // getPostTranslationHandler\r\n function getPostTranslationHandler() {\r\n return isFunction(_postTranslation) ? _postTranslation : null;\r\n }\r\n // setPostTranslationHandler\r\n function setPostTranslationHandler(handler) {\r\n _postTranslation = handler;\r\n _context.postTranslation = handler;\r\n }\r\n // getMissingHandler\r\n function getMissingHandler() {\r\n return _missing;\r\n }\r\n // setMissingHandler\r\n function setMissingHandler(handler) {\r\n if (handler !== null) {\r\n _runtimeMissing = defineCoreMissingHandler(handler);\r\n }\r\n _missing = handler;\r\n _context.missing = _runtimeMissing;\r\n }\r\n function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n return type !== 'translate' || !arg.resolvedMessage;\r\n }\r\n const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {\r\n trackReactivityValues(); // track reactive dependency\r\n // NOTE: experimental !!\r\n let ret;\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n try {\r\n setAdditionalMeta(getMetaInfo());\r\n if (!_isGlobal) {\r\n _context.fallbackContext = __root\r\n ? getFallbackContext()\r\n : undefined;\r\n }\r\n ret = fn(_context);\r\n }\r\n finally {\r\n setAdditionalMeta(null);\r\n if (!_isGlobal) {\r\n _context.fallbackContext = undefined;\r\n }\r\n }\r\n }\r\n else {\r\n ret = fn(_context);\r\n }\r\n if (isNumber(ret) && ret === NOT_REOSLVED) {\r\n const [key, arg2] = argumentParser();\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n __root &&\r\n isString(key) &&\r\n isResolvedTranslateMessage(warnType, arg2)) {\r\n if (_fallbackRoot &&\r\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\r\n isTranslateMissingWarn(_missingWarn, key))) {\r\n warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {\r\n key,\r\n type: warnType\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { __v_emitter: emitter } = _context;\r\n if (emitter && _fallbackRoot) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type: warnType,\r\n key,\r\n to: 'global',\r\n groupId: `${warnType}:${key}`\r\n });\r\n }\r\n }\r\n }\r\n return __root && _fallbackRoot\r\n ? fallbackSuccess(__root)\r\n : fallbackFail(key);\r\n }\r\n else if (successCondition(ret)) {\r\n return ret;\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);\r\n }\r\n };\r\n // t\r\n function t(...args) {\r\n return wrapWithDeps(context => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), 'translate', root => Reflect.apply(root.t, root, [...args]), key => key, val => isString(val));\r\n }\r\n // rt\r\n function rt(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n if (arg3 && !isObject(arg3)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\r\n }\r\n // d\r\n function d(...args) {\r\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // n\r\n function n(...args) {\r\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // for custom processor\r\n function normalize(values) {\r\n return values.map(val => isString(val) || isNumber(val) || isBoolean(val)\r\n ? createTextNode(String(val))\r\n : val);\r\n }\r\n const interpolate = (val) => val;\r\n const processor = {\r\n normalize,\r\n interpolate,\r\n type: 'vnode'\r\n };\r\n // transrateVNode, using for `i18n-t` component\r\n function transrateVNode(...args) {\r\n return wrapWithDeps(context => {\r\n let ret;\r\n const _context = context;\r\n try {\r\n _context.processor = processor;\r\n ret = Reflect.apply(translate, null, [_context, ...args]);\r\n }\r\n finally {\r\n _context.processor = null;\r\n }\r\n return ret;\r\n }, () => parseTranslateArgs(...args), 'translate', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[TransrateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val));\r\n }\r\n // numberParts, using for `i18n-n` component\r\n function numberParts(...args) {\r\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[NumberPartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n // datetimeParts, using for `i18n-d` component\r\n function datetimeParts(...args) {\r\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[DatetimePartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n function setPluralRules(rules) {\r\n _pluralRules = rules;\r\n _context.pluralRules = _pluralRules;\r\n }\r\n // te\r\n function te(key, locale) {\r\n const targetLocale = isString(locale) ? locale : _locale.value;\r\n const message = getLocaleMessage(targetLocale);\r\n return _context.messageResolver(message, key) !== null;\r\n }\r\n function resolveMessages(key) {\r\n let messages = null;\r\n const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);\r\n for (let i = 0; i < locales.length; i++) {\r\n const targetLocaleMessages = _messages.value[locales[i]] || {};\r\n const messageValue = _context.messageResolver(targetLocaleMessages, key);\r\n if (messageValue != null) {\r\n messages = messageValue;\r\n break;\r\n }\r\n }\r\n return messages;\r\n }\r\n // tm\r\n function tm(key) {\r\n const messages = resolveMessages(key);\r\n // prettier-ignore\r\n return messages != null\r\n ? messages\r\n : __root\r\n ? __root.tm(key) || {}\r\n : {};\r\n }\r\n // getLocaleMessage\r\n function getLocaleMessage(locale) {\r\n return (_messages.value[locale] || {});\r\n }\r\n // setLocaleMessage\r\n function setLocaleMessage(locale, message) {\r\n _messages.value[locale] = message;\r\n _context.messages = _messages.value;\r\n }\r\n // mergeLocaleMessage\r\n function mergeLocaleMessage(locale, message) {\r\n _messages.value[locale] = _messages.value[locale] || {};\r\n deepCopy(message, _messages.value[locale]);\r\n _context.messages = _messages.value;\r\n }\r\n // getDateTimeFormat\r\n function getDateTimeFormat(locale) {\r\n return _datetimeFormats.value[locale] || {};\r\n }\r\n // setDateTimeFormat\r\n function setDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = format;\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // mergeDateTimeFormat\r\n function mergeDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // getNumberFormat\r\n function getNumberFormat(locale) {\r\n return _numberFormats.value[locale] || {};\r\n }\r\n // setNumberFormat\r\n function setNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = format;\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // mergeNumberFormat\r\n function mergeNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // for debug\r\n composerID++;\r\n // watch root locale & fallbackLocale\r\n if (__root && inBrowser) {\r\n watch(__root.locale, (val) => {\r\n if (_inheritLocale) {\r\n _locale.value = val;\r\n _context.locale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n watch(__root.fallbackLocale, (val) => {\r\n if (_inheritLocale) {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n }\r\n // define basic composition API!\r\n const composer = {\r\n id: composerID,\r\n locale,\r\n fallbackLocale,\r\n get inheritLocale() {\r\n return _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n _inheritLocale = val;\r\n if (val && __root) {\r\n _locale.value = __root.locale.value;\r\n _fallbackLocale.value = __root.fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n },\r\n get availableLocales() {\r\n return Object.keys(_messages.value).sort();\r\n },\r\n messages,\r\n get modifiers() {\r\n return _modifiers;\r\n },\r\n get pluralRules() {\r\n return _pluralRules || {};\r\n },\r\n get isGlobal() {\r\n return _isGlobal;\r\n },\r\n get missingWarn() {\r\n return _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n _missingWarn = val;\r\n _context.missingWarn = _missingWarn;\r\n },\r\n get fallbackWarn() {\r\n return _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n _fallbackWarn = val;\r\n _context.fallbackWarn = _fallbackWarn;\r\n },\r\n get fallbackRoot() {\r\n return _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n _fallbackRoot = val;\r\n },\r\n get fallbackFormat() {\r\n return _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n _fallbackFormat = val;\r\n _context.fallbackFormat = _fallbackFormat;\r\n },\r\n get warnHtmlMessage() {\r\n return _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n _warnHtmlMessage = val;\r\n _context.warnHtmlMessage = val;\r\n },\r\n get escapeParameter() {\r\n return _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n _escapeParameter = val;\r\n _context.escapeParameter = val;\r\n },\r\n t,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n [SetPluralRulesSymbol]: setPluralRules\r\n };\r\n {\r\n composer.datetimeFormats = datetimeFormats;\r\n composer.numberFormats = numberFormats;\r\n composer.rt = rt;\r\n composer.te = te;\r\n composer.tm = tm;\r\n composer.d = d;\r\n composer.n = n;\r\n composer.getDateTimeFormat = getDateTimeFormat;\r\n composer.setDateTimeFormat = setDateTimeFormat;\r\n composer.mergeDateTimeFormat = mergeDateTimeFormat;\r\n composer.getNumberFormat = getNumberFormat;\r\n composer.setNumberFormat = setNumberFormat;\r\n composer.mergeNumberFormat = mergeNumberFormat;\r\n composer[InejctWithOption] = options.__injectWithOption;\r\n composer[TransrateVNodeSymbol] = transrateVNode;\r\n composer[DatetimePartsSymbol] = datetimeParts;\r\n composer[NumberPartsSymbol] = numberParts;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n composer[EnableEmitter] = (emitter) => {\r\n _context.__v_emitter = emitter;\r\n };\r\n composer[DisableEmitter] = () => {\r\n _context.__v_emitter = undefined;\r\n };\r\n }\r\n return composer;\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Convert to I18n Composer Options from VueI18n Options\r\n *\r\n * @internal\r\n */\r\nfunction convertComposerOptions(options) {\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const missing = isFunction(options.missing) ? options.missing : undefined;\r\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\r\n isRegExp(options.silentTranslationWarn)\r\n ? !options.silentTranslationWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\r\n isRegExp(options.silentFallbackWarn)\r\n ? !options.silentFallbackWarn\r\n : true;\r\n const fallbackRoot = isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n const fallbackFormat = !!options.formatFallbackMessages;\r\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\r\n const pluralizationRules = options.pluralizationRules;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : undefined;\r\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\r\n ? options.warnHtmlInMessage !== 'off'\r\n : true;\r\n const escapeParameter = !!options.escapeParameterHtml;\r\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\r\n if ((process.env.NODE_ENV !== 'production') && options.formatter) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && options.preserveDirectiveContent) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n }\r\n let messages = options.messages;\r\n if (isPlainObject(options.sharedMessages)) {\r\n const sharedMessages = options.sharedMessages;\r\n const locales = Object.keys(sharedMessages);\r\n messages = locales.reduce((messages, locale) => {\r\n const message = messages[locale] || (messages[locale] = {});\r\n assign(message, sharedMessages[locale]);\r\n return messages;\r\n }, (messages || {}));\r\n }\r\n const { __i18n, __root, __injectWithOption } = options;\r\n const datetimeFormats = options.datetimeFormats;\r\n const numberFormats = options.numberFormats;\r\n const flatJson = options.flatJson;\r\n return {\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n flatJson,\r\n datetimeFormats,\r\n numberFormats,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackRoot,\r\n fallbackFormat,\r\n modifiers,\r\n pluralRules: pluralizationRules,\r\n postTranslation,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageResolver: options.messageResolver,\r\n inheritLocale,\r\n __i18n,\r\n __root,\r\n __injectWithOption\r\n };\r\n}\r\n/**\r\n * create VueI18n interface factory\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction createVueI18n(options = {}, VueI18nLegacy) {\r\n {\r\n const composer = createComposer(convertComposerOptions(options));\r\n // defines VueI18n\r\n const vueI18n = {\r\n // id\r\n id: composer.id,\r\n // locale\r\n get locale() {\r\n return composer.locale.value;\r\n },\r\n set locale(val) {\r\n composer.locale.value = val;\r\n },\r\n // fallbackLocale\r\n get fallbackLocale() {\r\n return composer.fallbackLocale.value;\r\n },\r\n set fallbackLocale(val) {\r\n composer.fallbackLocale.value = val;\r\n },\r\n // messages\r\n get messages() {\r\n return composer.messages.value;\r\n },\r\n // datetimeFormats\r\n get datetimeFormats() {\r\n return composer.datetimeFormats.value;\r\n },\r\n // numberFormats\r\n get numberFormats() {\r\n return composer.numberFormats.value;\r\n },\r\n // availableLocales\r\n get availableLocales() {\r\n return composer.availableLocales;\r\n },\r\n // formatter\r\n get formatter() {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n // dummy\r\n return {\r\n interpolate() {\r\n return [];\r\n }\r\n };\r\n },\r\n set formatter(val) {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n },\r\n // missing\r\n get missing() {\r\n return composer.getMissingHandler();\r\n },\r\n set missing(handler) {\r\n composer.setMissingHandler(handler);\r\n },\r\n // silentTranslationWarn\r\n get silentTranslationWarn() {\r\n return isBoolean(composer.missingWarn)\r\n ? !composer.missingWarn\r\n : composer.missingWarn;\r\n },\r\n set silentTranslationWarn(val) {\r\n composer.missingWarn = isBoolean(val) ? !val : val;\r\n },\r\n // silentFallbackWarn\r\n get silentFallbackWarn() {\r\n return isBoolean(composer.fallbackWarn)\r\n ? !composer.fallbackWarn\r\n : composer.fallbackWarn;\r\n },\r\n set silentFallbackWarn(val) {\r\n composer.fallbackWarn = isBoolean(val) ? !val : val;\r\n },\r\n // modifiers\r\n get modifiers() {\r\n return composer.modifiers;\r\n },\r\n // formatFallbackMessages\r\n get formatFallbackMessages() {\r\n return composer.fallbackFormat;\r\n },\r\n set formatFallbackMessages(val) {\r\n composer.fallbackFormat = val;\r\n },\r\n // postTranslation\r\n get postTranslation() {\r\n return composer.getPostTranslationHandler();\r\n },\r\n set postTranslation(handler) {\r\n composer.setPostTranslationHandler(handler);\r\n },\r\n // sync\r\n get sync() {\r\n return composer.inheritLocale;\r\n },\r\n set sync(val) {\r\n composer.inheritLocale = val;\r\n },\r\n // warnInHtmlMessage\r\n get warnHtmlInMessage() {\r\n return composer.warnHtmlMessage ? 'warn' : 'off';\r\n },\r\n set warnHtmlInMessage(val) {\r\n composer.warnHtmlMessage = val !== 'off';\r\n },\r\n // escapeParameterHtml\r\n get escapeParameterHtml() {\r\n return composer.escapeParameter;\r\n },\r\n set escapeParameterHtml(val) {\r\n composer.escapeParameter = val;\r\n },\r\n // preserveDirectiveContent\r\n get preserveDirectiveContent() {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n return true;\r\n },\r\n set preserveDirectiveContent(val) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n },\r\n // pluralizationRules\r\n get pluralizationRules() {\r\n return composer.pluralRules || {};\r\n },\r\n // for internal\r\n __composer: composer,\r\n // t\r\n t(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n // return composer.t(key, (list || named || {}) as any, options)\r\n return Reflect.apply(composer.t, composer, [\r\n key,\r\n (list || named || {}),\r\n options\r\n ]);\r\n },\r\n rt(...args) {\r\n return Reflect.apply(composer.rt, composer, [...args]);\r\n },\r\n // tc\r\n tc(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = { plural: 1 };\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n // return composer.t(key, (list || named || {}) as any, options)\r\n return Reflect.apply(composer.t, composer, [\r\n key,\r\n (list || named || {}),\r\n options\r\n ]);\r\n },\r\n // te\r\n te(key, locale) {\r\n return composer.te(key, locale);\r\n },\r\n // tm\r\n tm(key) {\r\n return composer.tm(key);\r\n },\r\n // getLocaleMessage\r\n getLocaleMessage(locale) {\r\n return composer.getLocaleMessage(locale);\r\n },\r\n // setLocaleMessage\r\n setLocaleMessage(locale, message) {\r\n composer.setLocaleMessage(locale, message);\r\n },\r\n // mergeLocaleMessage\r\n mergeLocaleMessage(locale, message) {\r\n composer.mergeLocaleMessage(locale, message);\r\n },\r\n // d\r\n d(...args) {\r\n return Reflect.apply(composer.d, composer, [...args]);\r\n },\r\n // getDateTimeFormat\r\n getDateTimeFormat(locale) {\r\n return composer.getDateTimeFormat(locale);\r\n },\r\n // setDateTimeFormat\r\n setDateTimeFormat(locale, format) {\r\n composer.setDateTimeFormat(locale, format);\r\n },\r\n // mergeDateTimeFormat\r\n mergeDateTimeFormat(locale, format) {\r\n composer.mergeDateTimeFormat(locale, format);\r\n },\r\n // n\r\n n(...args) {\r\n return Reflect.apply(composer.n, composer, [...args]);\r\n },\r\n // getNumberFormat\r\n getNumberFormat(locale) {\r\n return composer.getNumberFormat(locale);\r\n },\r\n // setNumberFormat\r\n setNumberFormat(locale, format) {\r\n composer.setNumberFormat(locale, format);\r\n },\r\n // mergeNumberFormat\r\n mergeNumberFormat(locale, format) {\r\n composer.mergeNumberFormat(locale, format);\r\n },\r\n // getChoiceIndex\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getChoiceIndex(choice, choicesLength) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX));\r\n return -1;\r\n },\r\n // for internal\r\n __onComponentInstanceCreated(target) {\r\n const { componentInstanceCreatedListener } = options;\r\n if (componentInstanceCreatedListener) {\r\n componentInstanceCreatedListener(target, vueI18n);\r\n }\r\n }\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n vueI18n.__enableEmitter = (emitter) => {\r\n const __composer = composer;\r\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\r\n };\r\n vueI18n.__disableEmitter = () => {\r\n const __composer = composer;\r\n __composer[DisableEmitter] && __composer[DisableEmitter]();\r\n };\r\n }\r\n return vueI18n;\r\n }\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst baseFormatProps = {\r\n tag: {\r\n type: [String, Object]\r\n },\r\n locale: {\r\n type: String\r\n },\r\n scope: {\r\n type: String,\r\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n validator: (val /* ComponetI18nScope */) => val === 'parent' || val === 'global',\r\n default: 'parent' /* ComponetI18nScope */\r\n },\r\n i18n: {\r\n type: Object\r\n }\r\n};\n\nfunction getInterpolateArg(\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n{ slots }, // SetupContext,\r\nkeys) {\r\n if (keys.length === 1 && keys[0] === 'default') {\r\n // default slot with list\r\n const ret = slots.default ? slots.default() : [];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return ret.reduce((slot, current) => {\r\n return (slot = [\r\n ...slot,\r\n ...(isArray(current.children) ? current.children : [current])\r\n ]);\r\n }, []);\r\n }\r\n else {\r\n // named slots\r\n return keys.reduce((arg, key) => {\r\n const slot = slots[key];\r\n if (slot) {\r\n arg[key] = slot();\r\n }\r\n return arg;\r\n }, {});\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getFragmentableTag(tag) {\r\n return Fragment ;\r\n}\n\n/**\r\n * Translation Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [TranslationProps](component#translationprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\r\n *\r\n * @example\r\n * ```html\r\n *
\r\n * \r\n * \r\n * {{ $t('tos') }}\r\n * \r\n * \r\n *
\r\n * ```\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n } from 'vue-i18n'\r\n *\r\n * const messages = {\r\n * en: {\r\n * tos: 'Term of Service',\r\n * term: 'I accept xxx {0}.'\r\n * },\r\n * ja: {\r\n * tos: '利用規約',\r\n * term: '私は xxx の{0}に同意します。'\r\n * }\r\n * }\r\n *\r\n * const i18n = createI18n({\r\n * locale: 'en',\r\n * messages\r\n * })\r\n *\r\n * const app = createApp({\r\n * data: {\r\n * url: '/term'\r\n * }\r\n * }).use(i18n).mount('#app')\r\n * ```\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst Translation = /* defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-t',\r\n props: assign({\r\n keypath: {\r\n type: String,\r\n required: true\r\n },\r\n plural: {\r\n type: [Number, String],\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n validator: (val) => isNumber(val) || !isNaN(val)\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const { slots, attrs } = context;\r\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n const i18n = props.i18n ||\r\n useI18n({\r\n useScope: props.scope,\r\n __useComponent: true\r\n });\r\n return () => {\r\n const keys = Object.keys(slots).filter(key => key !== '_');\r\n const options = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (props.plural !== undefined) {\r\n options.plural = isString(props.plural) ? +props.plural : props.plural;\r\n }\r\n const arg = getInterpolateArg(context, keys);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const children = i18n[TransrateVNodeSymbol](props.keypath, arg, options);\r\n const assignedAttrs = assign({}, attrs);\r\n const tag = isString(props.tag) || isObject(props.tag)\r\n ? props.tag\r\n : getFragmentableTag();\r\n return h(tag, assignedAttrs, children);\r\n };\r\n }\r\n};\n\nfunction isVNode(target) {\r\n return isArray(target) && !isString(target[0]);\r\n}\r\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\r\n const { slots, attrs } = context;\r\n return () => {\r\n const options = { part: true };\r\n let overrides = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (isString(props.format)) {\r\n options.key = props.format;\r\n }\r\n else if (isObject(props.format)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (isString(props.format.key)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n options.key = props.format.key;\r\n }\r\n // Filter out number format options only\r\n overrides = Object.keys(props.format).reduce((options, prop) => {\r\n return slotKeys.includes(prop)\r\n ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : options;\r\n }, {});\r\n }\r\n const parts = partFormatter(...[props.value, options, overrides]);\r\n let children = [options.key];\r\n if (isArray(parts)) {\r\n children = parts.map((part, index) => {\r\n const slot = slots[part.type];\r\n const node = slot\r\n ? slot({ [part.type]: part.value, index, parts })\r\n : [part.value];\r\n if (isVNode(node)) {\r\n node[0].key = `${part.type}-${index}`;\r\n }\r\n return node;\r\n });\r\n }\r\n else if (isString(parts)) {\r\n children = [parts];\r\n }\r\n const assignedAttrs = assign({}, attrs);\r\n const tag = isString(props.tag) || isObject(props.tag)\r\n ? props.tag\r\n : getFragmentableTag();\r\n return h(tag, assignedAttrs, children);\r\n };\r\n}\n\n/**\r\n * Number Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst NumberFormat = /* defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-n',\r\n props: assign({\r\n value: {\r\n type: Number,\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[NumberPartsSymbol](...args));\r\n }\r\n};\n\n/**\r\n * Datetime Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst DatetimeFormat = /*defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-d',\r\n props: assign({\r\n value: {\r\n type: [Number, Date],\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[DatetimePartsSymbol](...args));\r\n }\r\n};\n\nfunction getComposer$2(i18n, instance) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n return (i18nInternal.__getInstance(instance) || i18n.global);\r\n }\r\n else {\r\n const vueI18n = i18nInternal.__getInstance(instance);\r\n return vueI18n != null\r\n ? vueI18n.__composer\r\n : i18n.global.__composer;\r\n }\r\n}\r\nfunction vTDirective(i18n) {\r\n const _process = (binding) => {\r\n const { instance, modifiers, value } = binding;\r\n /* istanbul ignore if */\r\n if (!instance || !instance.$) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const composer = getComposer$2(i18n, instance.$);\r\n if ((process.env.NODE_ENV !== 'production') && modifiers.preserve) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE));\r\n }\r\n const parsedValue = parseValue(value);\r\n return [\r\n Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),\r\n composer\r\n ];\r\n };\r\n const register = (el, binding) => {\r\n const [textContent, composer] = _process(binding);\r\n if (inBrowser && i18n.global === composer) {\r\n // global scope only\r\n el.__i18nWatcher = watch(composer.locale, () => {\r\n binding.instance && binding.instance.$forceUpdate();\r\n });\r\n }\r\n el.__composer = composer;\r\n el.textContent = textContent;\r\n };\r\n const unregister = (el) => {\r\n if (inBrowser && el.__i18nWatcher) {\r\n el.__i18nWatcher();\r\n el.__i18nWatcher = undefined;\r\n delete el.__i18nWatcher;\r\n }\r\n if (el.__composer) {\r\n el.__composer = undefined;\r\n delete el.__composer;\r\n }\r\n };\r\n const update = (el, { value }) => {\r\n if (el.__composer) {\r\n const composer = el.__composer;\r\n const parsedValue = parseValue(value);\r\n el.textContent = Reflect.apply(composer.t, composer, [\r\n ...makeParams(parsedValue)\r\n ]);\r\n }\r\n };\r\n const getSSRProps = (binding) => {\r\n const [textContent] = _process(binding);\r\n return { textContent };\r\n };\r\n return {\r\n created: register,\r\n unmounted: unregister,\r\n beforeUpdate: update,\r\n getSSRProps\r\n };\r\n}\r\nfunction parseValue(value) {\r\n if (isString(value)) {\r\n return { path: value };\r\n }\r\n else if (isPlainObject(value)) {\r\n if (!('path' in value)) {\r\n throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');\r\n }\r\n return value;\r\n }\r\n else {\r\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n }\r\n}\r\nfunction makeParams(value) {\r\n const { path, locale, args, choice, plural } = value;\r\n const options = {};\r\n const named = args || {};\r\n if (isString(locale)) {\r\n options.locale = locale;\r\n }\r\n if (isNumber(choice)) {\r\n options.plural = choice;\r\n }\r\n if (isNumber(plural)) {\r\n options.plural = plural;\r\n }\r\n return [path, named, options];\r\n}\n\nfunction apply(app, i18n, ...options) {\r\n const pluginOptions = isPlainObject(options[0])\r\n ? options[0]\r\n : {};\r\n const useI18nComponentName = !!pluginOptions.useI18nComponentName;\r\n const globalInstall = isBoolean(pluginOptions.globalInstall)\r\n ? pluginOptions.globalInstall\r\n : true;\r\n if ((process.env.NODE_ENV !== 'production') && globalInstall && useI18nComponentName) {\r\n warn(getWarnMessage(I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE, {\r\n name: Translation.name\r\n }));\r\n }\r\n if (globalInstall) {\r\n // install components\r\n app.component(!useI18nComponentName ? Translation.name : 'i18n', Translation);\r\n app.component(NumberFormat.name, NumberFormat);\r\n app.component(DatetimeFormat.name, DatetimeFormat);\r\n }\r\n // install directive\r\n {\r\n app.directive('t', vTDirective(i18n));\r\n }\r\n}\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\r\nlet devtoolsApi;\r\nasync function enableDevTools(app, i18n) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n setupDevtoolsPlugin({\r\n id: \"vue-devtools-plugin-vue-i18n\" /* PLUGIN */,\r\n label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */],\r\n packageName: 'vue-i18n',\r\n homepage: 'https://vue-i18n.intlify.dev',\r\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\r\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\r\n app: app // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }, api => {\r\n devtoolsApi = api;\r\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\r\n updateComponentTreeTags(componentInstance, treeNode, i18n);\r\n });\r\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\r\n if (componentInstance.vnode.el &&\r\n componentInstance.vnode.el.__VUE_I18N__ &&\r\n instanceData) {\r\n if (i18n.mode === 'legacy') {\r\n // ignore global scope on legacy mode\r\n if (componentInstance.vnode.el.__VUE_I18N__ !==\r\n i18n.global.__composer) {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n else {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n });\r\n api.addInspector({\r\n id: \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */,\r\n label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */],\r\n icon: 'language',\r\n treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]\r\n });\r\n api.on.getInspectorTree(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n registerScope(payload, i18n);\r\n }\r\n });\r\n const roots = new Map();\r\n api.on.getInspectorState(async (payload) => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n api.unhighlightElement();\r\n inspectScope(payload, i18n);\r\n if (payload.nodeId === 'global') {\r\n if (!roots.has(payload.app)) {\r\n const [root] = await api.getComponentInstances(payload.app);\r\n roots.set(payload.app, root);\r\n }\r\n api.highlightElement(roots.get(payload.app));\r\n }\r\n else {\r\n const instance = getComponentInstance(payload.nodeId, i18n);\r\n instance && api.highlightElement(instance);\r\n }\r\n }\r\n });\r\n api.on.editInspectorState(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n editScope(payload, i18n);\r\n }\r\n });\r\n api.addTimelineLayer({\r\n id: \"vue-i18n-timeline\" /* TIMELINE */,\r\n label: VueDevToolsLabels[\"vue-i18n-timeline\" /* TIMELINE */],\r\n color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* TIMELINE */]\r\n });\r\n resolve(true);\r\n });\r\n }\r\n catch (e) {\r\n console.error(e);\r\n reject(false);\r\n }\r\n });\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getI18nScopeLable(instance) {\r\n return (instance.type.name ||\r\n instance.type.displayName ||\r\n instance.type.__file ||\r\n 'Anonymous');\r\n}\r\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\r\ntreeNode, i18n) {\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n if (instance && instance.vnode.el && instance.vnode.el.__VUE_I18N__) {\r\n // add custom tags local scope only\r\n if (instance.vnode.el.__VUE_I18N__ !== global) {\r\n const tag = {\r\n label: `i18n (${getI18nScopeLable(instance)} Scope)`,\r\n textColor: 0x000000,\r\n backgroundColor: 0xffcd19\r\n };\r\n treeNode.tags.push(tag);\r\n }\r\n }\r\n}\r\nfunction inspectComposer(instanceData, composer) {\r\n const type = VUE_I18N_COMPONENT_TYPES;\r\n instanceData.state.push({\r\n type,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n });\r\n {\r\n instanceData.state.push({\r\n type,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n });\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getLocaleMessageValue(messages) {\r\n const value = {};\r\n Object.keys(messages).forEach((key) => {\r\n const v = messages[key];\r\n if (isFunction(v) && 'source' in v) {\r\n value[key] = getMessageFunctionDetails(v);\r\n }\r\n else if (isObject(v)) {\r\n value[key] = getLocaleMessageValue(v);\r\n }\r\n else {\r\n value[key] = v;\r\n }\r\n });\r\n return value;\r\n}\r\nconst ESC = {\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n '&': '&'\r\n};\r\nfunction escape(s) {\r\n return s.replace(/[<>\"&]/g, escapeChar);\r\n}\r\nfunction escapeChar(a) {\r\n return ESC[a] || a;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getMessageFunctionDetails(func) {\r\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\r\n return {\r\n _custom: {\r\n type: 'function',\r\n display: `ƒ ${argString}`\r\n }\r\n };\r\n}\r\nfunction registerScope(payload, i18n) {\r\n payload.rootNodes.push({\r\n id: 'global',\r\n label: 'Global Scope'\r\n });\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n for (const [keyInstance, instance] of i18n.__instances) {\r\n // prettier-ignore\r\n const composer = i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n if (global === composer) {\r\n continue;\r\n }\r\n payload.rootNodes.push({\r\n id: composer.id.toString(),\r\n label: `${getI18nScopeLable(keyInstance)} Scope`\r\n });\r\n }\r\n}\r\nfunction getComponentInstance(nodeId, i18n) {\r\n let instance = null;\r\n if (nodeId !== 'global') {\r\n for (const [component, composer] of i18n.__instances.entries()) {\r\n if (composer.id.toString() === nodeId) {\r\n instance = component;\r\n break;\r\n }\r\n }\r\n }\r\n return instance;\r\n}\r\nfunction getComposer$1(nodeId, i18n) {\r\n if (nodeId === 'global') {\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n }\r\n else {\r\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\r\n if (instance) {\r\n return i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\nfunction inspectScope(payload, i18n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n // TODO:\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n payload.state = makeScopeInspectState(composer);\r\n }\r\n return null;\r\n}\r\nfunction makeScopeInspectState(composer) {\r\n const state = {};\r\n const localeType = 'Locale related info';\r\n const localeStates = [\r\n {\r\n type: localeType,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n },\r\n {\r\n type: localeType,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n }\r\n ];\r\n state[localeType] = localeStates;\r\n const localeMessagesType = 'Locale messages info';\r\n const localeMessagesStates = [\r\n {\r\n type: localeMessagesType,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n }\r\n ];\r\n state[localeMessagesType] = localeMessagesStates;\r\n {\r\n const datetimeFormatsType = 'Datetime formats info';\r\n const datetimeFormatsStates = [\r\n {\r\n type: datetimeFormatsType,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n }\r\n ];\r\n state[datetimeFormatsType] = datetimeFormatsStates;\r\n const numberFormatsType = 'Datetime formats info';\r\n const numberFormatsStates = [\r\n {\r\n type: numberFormatsType,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n }\r\n ];\r\n state[numberFormatsType] = numberFormatsStates;\r\n }\r\n return state;\r\n}\r\nfunction addTimelineEvent(event, payload) {\r\n if (devtoolsApi) {\r\n let groupId;\r\n if (payload && 'groupId' in payload) {\r\n groupId = payload.groupId;\r\n delete payload.groupId;\r\n }\r\n devtoolsApi.addTimelineEvent({\r\n layerId: \"vue-i18n-timeline\" /* TIMELINE */,\r\n event: {\r\n title: event,\r\n groupId,\r\n time: Date.now(),\r\n meta: {},\r\n data: payload || {},\r\n logType: event === \"compile-error\" /* COMPILE_ERROR */\r\n ? 'error'\r\n : event === \"fallback\" /* FALBACK */ ||\r\n event === \"missing\" /* MISSING */\r\n ? 'warning'\r\n : 'default'\r\n }\r\n });\r\n }\r\n}\r\nfunction editScope(payload, i18n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n const [field] = payload.path;\r\n if (field === 'locale' && isString(payload.state.value)) {\r\n composer.locale.value = payload.state.value;\r\n }\r\n else if (field === 'fallbackLocale' &&\r\n (isString(payload.state.value) ||\r\n isArray(payload.state.value) ||\r\n isObject(payload.state.value))) {\r\n composer.fallbackLocale.value = payload.state.value;\r\n }\r\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\r\n composer.inheritLocale = payload.state.value;\r\n }\r\n }\r\n}\n\n/**\r\n * Supports compatibility for legacy vue-i18n APIs\r\n * This mixin is used when we use vue-i18n@v9.x or later\r\n */\r\nfunction defineMixin(vuei18n, composer, i18n) {\r\n return {\r\n beforeCreate() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const options = this.$options;\r\n if (options.i18n) {\r\n const optionsI18n = options.i18n;\r\n if (options.__i18n) {\r\n optionsI18n.__i18n = options.__i18n;\r\n }\r\n optionsI18n.__root = composer;\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, optionsI18n);\r\n }\r\n else {\r\n optionsI18n.__injectWithOption = true;\r\n this.$i18n = createVueI18n(optionsI18n);\r\n }\r\n }\r\n else if (options.__i18n) {\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, options);\r\n }\r\n else {\r\n this.$i18n = createVueI18n({\r\n __i18n: options.__i18n,\r\n __injectWithOption: true,\r\n __root: composer\r\n });\r\n }\r\n }\r\n else {\r\n // set global\r\n this.$i18n = vuei18n;\r\n }\r\n if (options.__i18nGlobal) {\r\n adjustI18nResources(composer, options, options);\r\n }\r\n vuei18n.__onComponentInstanceCreated(this.$i18n);\r\n i18n.__setInstance(instance, this.$i18n);\r\n // defines vue-i18n legacy APIs\r\n this.$t = (...args) => this.$i18n.t(...args);\r\n this.$rt = (...args) => this.$i18n.rt(...args);\r\n this.$tc = (...args) => this.$i18n.tc(...args);\r\n this.$te = (key, locale) => this.$i18n.te(key, locale);\r\n this.$d = (...args) => this.$i18n.d(...args);\r\n this.$n = (...args) => this.$i18n.n(...args);\r\n this.$tm = (key) => this.$i18n.tm(key);\r\n },\r\n mounted() {\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n this.$el &&\r\n this.$i18n) {\r\n this.$el.__VUE_I18N__ = this.$i18n.__composer;\r\n const emitter = (this.__v_emitter =\r\n createEmitter());\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n unmounted() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n this.$el &&\r\n this.$el.__VUE_I18N__) {\r\n if (this.__v_emitter) {\r\n this.__v_emitter.off('*', addTimelineEvent);\r\n delete this.__v_emitter;\r\n }\r\n if (this.$i18n) {\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\r\n delete this.$el.__VUE_I18N__;\r\n }\r\n }\r\n delete this.$t;\r\n delete this.$rt;\r\n delete this.$tc;\r\n delete this.$te;\r\n delete this.$d;\r\n delete this.$n;\r\n delete this.$tm;\r\n i18n.__deleteInstance(instance);\r\n delete this.$i18n;\r\n }\r\n };\r\n}\r\nfunction mergeToRoot(root, options) {\r\n root.locale = options.locale || root.locale;\r\n root.fallbackLocale = options.fallbackLocale || root.fallbackLocale;\r\n root.missing = options.missing || root.missing;\r\n root.silentTranslationWarn =\r\n options.silentTranslationWarn || root.silentFallbackWarn;\r\n root.silentFallbackWarn =\r\n options.silentFallbackWarn || root.silentFallbackWarn;\r\n root.formatFallbackMessages =\r\n options.formatFallbackMessages || root.formatFallbackMessages;\r\n root.postTranslation = options.postTranslation || root.postTranslation;\r\n root.warnHtmlInMessage = options.warnHtmlInMessage || root.warnHtmlInMessage;\r\n root.escapeParameterHtml =\r\n options.escapeParameterHtml || root.escapeParameterHtml;\r\n root.sync = options.sync || root.sync;\r\n root.__composer[SetPluralRulesSymbol](options.pluralizationRules || root.pluralizationRules);\r\n const messages = getLocaleMessages(root.locale, {\r\n messages: options.messages,\r\n __i18n: options.__i18n\r\n });\r\n Object.keys(messages).forEach(locale => root.mergeLocaleMessage(locale, messages[locale]));\r\n if (options.datetimeFormats) {\r\n Object.keys(options.datetimeFormats).forEach(locale => root.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\r\n }\r\n if (options.numberFormats) {\r\n Object.keys(options.numberFormats).forEach(locale => root.mergeNumberFormat(locale, options.numberFormats[locale]));\r\n }\r\n return root;\r\n}\n\n/**\r\n * Injection key for {@link useI18n}\r\n *\r\n * @remarks\r\n * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components.\r\n * Specify the i18n instance created by {@link createI18n} together with `provide` function.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst I18nInjectionKey = \r\n/* #__PURE__*/ makeSymbol('global-vue-i18n');\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\nfunction createI18n(options = {}, VueI18nLegacy) {\r\n // prettier-ignore\r\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\r\n ? options.legacy\r\n : __VUE_I18N_LEGACY_API__;\r\n // prettier-ignore\r\n const __globalInjection = isBoolean(options.globalInjection)\r\n ? options.globalInjection\r\n : true;\r\n // prettier-ignore\r\n const __allowComposition = __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? !!options.allowComposition\r\n : true;\r\n const __instances = new Map();\r\n const [globalScope, __global] = createGlobal(options, __legacyMode);\r\n const symbol = makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\r\n function __getInstance(component) {\r\n return __instances.get(component) || null;\r\n }\r\n function __setInstance(component, instance) {\r\n __instances.set(component, instance);\r\n }\r\n function __deleteInstance(component) {\r\n __instances.delete(component);\r\n }\r\n {\r\n const i18n = {\r\n // mode\r\n get mode() {\r\n return __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? 'legacy'\r\n : 'composition';\r\n },\r\n // allowComposition\r\n get allowComposition() {\r\n return __allowComposition;\r\n },\r\n // install plugin\r\n async install(app, ...options) {\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false) {\r\n app.__VUE_I18N__ = i18n;\r\n }\r\n // setup global provider\r\n app.__VUE_I18N_SYMBOL__ = symbol;\r\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\r\n // global method and properties injection for Composition API\r\n if (!__legacyMode && __globalInjection) {\r\n injectGlobalFields(app, i18n.global);\r\n }\r\n // install built-in components and directive\r\n if (__VUE_I18N_FULL_INSTALL__) {\r\n apply(app, i18n, ...options);\r\n }\r\n // setup mixin for Legacy API\r\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\r\n app.mixin(defineMixin(__global, __global.__composer, i18n));\r\n }\r\n // release global scope\r\n const unmountApp = app.unmount;\r\n app.unmount = () => {\r\n i18n.dispose();\r\n unmountApp();\r\n };\r\n // setup vue-devtools plugin\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\r\n const ret = await enableDevTools(app, i18n);\r\n if (!ret) {\r\n throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);\r\n }\r\n const emitter = createEmitter();\r\n if (__legacyMode) {\r\n const _vueI18n = __global;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = __global;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n }\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n // global accessor\r\n get global() {\r\n return __global;\r\n },\r\n dispose() {\r\n globalScope.stop();\r\n },\r\n // @internal\r\n __instances,\r\n // @internal\r\n __getInstance,\r\n // @internal\r\n __setInstance,\r\n // @internal\r\n __deleteInstance\r\n };\r\n return i18n;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction useI18n(options = {}) {\r\n const instance = getCurrentInstance();\r\n if (instance == null) {\r\n throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);\r\n }\r\n if (!instance.isCE &&\r\n instance.appContext.app != null &&\r\n !instance.appContext.app.__VUE_I18N_SYMBOL__) {\r\n throw createI18nError(I18nErrorCodes.NOT_INSLALLED);\r\n }\r\n const i18n = getI18nInstance(instance);\r\n const global = getGlobalComposer(i18n);\r\n const componentOptions = getComponentOptions(instance);\r\n const scope = getScope(options, componentOptions);\r\n if (__VUE_I18N_LEGACY_API__) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (i18n.mode === 'legacy' && !options.__useComponent) {\r\n if (!i18n.allowComposition) {\r\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE);\r\n }\r\n return useI18nForLegacy(instance, scope, global, options);\r\n }\r\n }\r\n if (scope === 'global') {\r\n adjustI18nResources(global, options, componentOptions);\r\n return global;\r\n }\r\n if (scope === 'parent') {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let composer = getComposer(i18n, instance, options.__useComponent);\r\n if (composer == null) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));\r\n }\r\n composer = global;\r\n }\r\n return composer;\r\n }\r\n const i18nInternal = i18n;\r\n let composer = i18nInternal.__getInstance(instance);\r\n if (composer == null) {\r\n const composerOptions = assign({}, options);\r\n if ('__i18n' in componentOptions) {\r\n composerOptions.__i18n = componentOptions.__i18n;\r\n }\r\n if (global) {\r\n composerOptions.__root = global;\r\n }\r\n composer = createComposer(composerOptions);\r\n setupLifeCycle(i18nInternal, instance, composer);\r\n i18nInternal.__setInstance(instance, composer);\r\n }\r\n return composer;\r\n}\r\n/**\r\n * Cast to VueI18n legacy compatible type\r\n *\r\n * @remarks\r\n * This API is provided only with [vue-i18n-bridge](https://vue-i18n.intlify.dev/guide/migration/ways.html#what-is-vue-i18n-bridge).\r\n *\r\n * The purpose of this function is to convert an {@link I18n} instance created with {@link createI18n | createI18n(legacy: true)} into a `vue-i18n@v8.x` compatible instance of `new VueI18n` in a TypeScript environment.\r\n *\r\n * @param i18n - An instance of {@link I18n}\r\n * @returns A i18n instance which is casted to {@link VueI18n} type\r\n *\r\n * @VueI18nTip\r\n * :new: provided by **vue-i18n-bridge only**\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst castToVueI18n = (i18n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) => {\r\n if (!(__VUE_I18N_BRIDGE__ in i18n)) {\r\n throw createI18nError(I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N);\r\n }\r\n return i18n;\r\n};\r\nfunction createGlobal(options, legacyMode, VueI18nLegacy // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n const scope = effectScope();\r\n {\r\n const obj = __VUE_I18N_LEGACY_API__ && legacyMode\r\n ? scope.run(() => createVueI18n(options))\r\n : scope.run(() => createComposer(options));\r\n if (obj == null) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n return [scope, obj];\r\n }\r\n}\r\nfunction getI18nInstance(instance) {\r\n {\r\n const i18n = inject(!instance.isCE\r\n ? instance.appContext.app.__VUE_I18N_SYMBOL__\r\n : I18nInjectionKey);\r\n /* istanbul ignore if */\r\n if (!i18n) {\r\n throw createI18nError(!instance.isCE\r\n ? I18nErrorCodes.UNEXPECTED_ERROR\r\n : I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE);\r\n }\r\n return i18n;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getScope(options, componentOptions) {\r\n // prettier-ignore\r\n return isEmptyObject(options)\r\n ? ('__i18n' in componentOptions)\r\n ? 'local'\r\n : 'global'\r\n : !options.useScope\r\n ? 'local'\r\n : options.useScope;\r\n}\r\nfunction getGlobalComposer(i18n) {\r\n // prettier-ignore\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer\r\n ;\r\n}\r\nfunction getComposer(i18n, target, useComponent = false) {\r\n let composer = null;\r\n const root = target.root;\r\n let current = target.parent;\r\n while (current != null) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n composer = i18nInternal.__getInstance(current);\r\n }\r\n else {\r\n if (__VUE_I18N_LEGACY_API__) {\r\n const vueI18n = i18nInternal.__getInstance(current);\r\n if (vueI18n != null) {\r\n composer = vueI18n\r\n .__composer;\r\n if (useComponent &&\r\n composer &&\r\n !composer[InejctWithOption] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n composer = null;\r\n }\r\n }\r\n }\r\n }\r\n if (composer != null) {\r\n break;\r\n }\r\n if (root === current) {\r\n break;\r\n }\r\n current = current.parent;\r\n }\r\n return composer;\r\n}\r\nfunction setupLifeCycle(i18n, target, composer) {\r\n let emitter = null;\r\n {\r\n onMounted(() => {\r\n // inject composer instance to DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el) {\r\n target.vnode.el.__VUE_I18N__ = composer;\r\n emitter = createEmitter();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n }, target);\r\n onUnmounted(() => {\r\n // remove composer instance from DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el &&\r\n target.vnode.el.__VUE_I18N__) {\r\n emitter && emitter.off('*', addTimelineEvent);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[DisableEmitter] && _composer[DisableEmitter]();\r\n delete target.vnode.el.__VUE_I18N__;\r\n }\r\n i18n.__deleteInstance(target);\r\n }, target);\r\n }\r\n}\r\nfunction useI18nForLegacy(instance, scope, root, options = {} // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n const isLocale = scope === 'local';\r\n const _composer = shallowRef(null);\r\n if (isLocale &&\r\n instance.proxy &&\r\n !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) {\r\n throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);\r\n }\r\n const _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n isLocale && _inheritLocale\r\n ? root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : DEFAULT_LOCALE);\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n isLocale && _inheritLocale\r\n ? root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n // prettier-ignore\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} });\r\n // prettier-ignore\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} });\r\n // prettier-ignore\r\n const _missingWarn = isLocale\r\n ? root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n const _fallbackWarn = isLocale\r\n ? root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n const _fallbackRoot = isLocale\r\n ? root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n const _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n const _missing = isFunction(options.missing) ? options.missing : null;\r\n // postTranslation handler\r\n const _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n // prettier-ignore\r\n const _warnHtmlMessage = isLocale\r\n ? root.warnHtmlMessage\r\n : isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const _escapeParameter = !!options.escapeParameter;\r\n // prettier-ignore\r\n const _modifiers = isLocale\r\n ? root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n const _pluralRules = options.pluralRules || (isLocale && root.pluralRules);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ];\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => {\r\n return _composer.value ? _composer.value.locale.value : _locale.value;\r\n },\r\n set: val => {\r\n if (_composer.value) {\r\n _composer.value.locale.value = val;\r\n }\r\n _locale.value = val;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => {\r\n return _composer.value\r\n ? _composer.value.fallbackLocale.value\r\n : _fallbackLocale.value;\r\n },\r\n set: val => {\r\n if (_composer.value) {\r\n _composer.value.fallbackLocale.value = val;\r\n }\r\n _fallbackLocale.value = val;\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => {\r\n if (_composer.value) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return _composer.value.messages.value;\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return _messages.value;\r\n }\r\n });\r\n const datetimeFormats = computed(() => _datetimeFormats.value);\r\n const numberFormats = computed(() => _numberFormats.value);\r\n function getPostTranslationHandler() {\r\n return _composer.value\r\n ? _composer.value.getPostTranslationHandler()\r\n : _postTranslation;\r\n }\r\n function setPostTranslationHandler(handler) {\r\n if (_composer.value) {\r\n _composer.value.setPostTranslationHandler(handler);\r\n }\r\n }\r\n function getMissingHandler() {\r\n return _composer.value ? _composer.value.getMissingHandler() : _missing;\r\n }\r\n function setMissingHandler(handler) {\r\n if (_composer.value) {\r\n _composer.value.setMissingHandler(handler);\r\n }\r\n }\r\n function warpWithDeps(fn) {\r\n trackReactivityValues();\r\n return fn();\r\n }\r\n function t(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function rt(...args) {\r\n return _composer.value\r\n ? Reflect.apply(_composer.value.rt, null, [...args])\r\n : '';\r\n }\r\n function d(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function n(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function tm(key) {\r\n return _composer.value ? _composer.value.tm(key) : {};\r\n }\r\n function te(key, locale) {\r\n return _composer.value ? _composer.value.te(key, locale) : false;\r\n }\r\n function getLocaleMessage(locale) {\r\n return _composer.value ? _composer.value.getLocaleMessage(locale) : {};\r\n }\r\n function setLocaleMessage(locale, message) {\r\n if (_composer.value) {\r\n _composer.value.setLocaleMessage(locale, message);\r\n _messages.value[locale] = message;\r\n }\r\n }\r\n function mergeLocaleMessage(locale, message) {\r\n if (_composer.value) {\r\n _composer.value.mergeLocaleMessage(locale, message);\r\n }\r\n }\r\n function getDateTimeFormat(locale) {\r\n return _composer.value ? _composer.value.getDateTimeFormat(locale) : {};\r\n }\r\n function setDateTimeFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.setDateTimeFormat(locale, format);\r\n _datetimeFormats.value[locale] = format;\r\n }\r\n }\r\n function mergeDateTimeFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.mergeDateTimeFormat(locale, format);\r\n }\r\n }\r\n function getNumberFormat(locale) {\r\n return _composer.value ? _composer.value.getNumberFormat(locale) : {};\r\n }\r\n function setNumberFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.setNumberFormat(locale, format);\r\n _numberFormats.value[locale] = format;\r\n }\r\n }\r\n function mergeNumberFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.mergeNumberFormat(locale, format);\r\n }\r\n }\r\n const wrapper = {\r\n get id() {\r\n return _composer.value ? _composer.value.id : -1;\r\n },\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n datetimeFormats,\r\n numberFormats,\r\n get inheritLocale() {\r\n return _composer.value ? _composer.value.inheritLocale : _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n if (_composer.value) {\r\n _composer.value.inheritLocale = val;\r\n }\r\n },\r\n get availableLocales() {\r\n return _composer.value\r\n ? _composer.value.availableLocales\r\n : Object.keys(_messages.value);\r\n },\r\n get modifiers() {\r\n return (_composer.value ? _composer.value.modifiers : _modifiers);\r\n },\r\n get pluralRules() {\r\n return (_composer.value ? _composer.value.pluralRules : _pluralRules);\r\n },\r\n get isGlobal() {\r\n return _composer.value ? _composer.value.isGlobal : false;\r\n },\r\n get missingWarn() {\r\n return _composer.value ? _composer.value.missingWarn : _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n if (_composer.value) {\r\n _composer.value.missingWarn = val;\r\n }\r\n },\r\n get fallbackWarn() {\r\n return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n if (_composer.value) {\r\n _composer.value.missingWarn = val;\r\n }\r\n },\r\n get fallbackRoot() {\r\n return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n if (_composer.value) {\r\n _composer.value.fallbackRoot = val;\r\n }\r\n },\r\n get fallbackFormat() {\r\n return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n if (_composer.value) {\r\n _composer.value.fallbackFormat = val;\r\n }\r\n },\r\n get warnHtmlMessage() {\r\n return _composer.value\r\n ? _composer.value.warnHtmlMessage\r\n : _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n if (_composer.value) {\r\n _composer.value.warnHtmlMessage = val;\r\n }\r\n },\r\n get escapeParameter() {\r\n return _composer.value\r\n ? _composer.value.escapeParameter\r\n : _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n if (_composer.value) {\r\n _composer.value.escapeParameter = val;\r\n }\r\n },\r\n t,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n rt,\r\n d,\r\n n,\r\n tm,\r\n te,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getDateTimeFormat,\r\n setDateTimeFormat,\r\n mergeDateTimeFormat,\r\n getNumberFormat,\r\n setNumberFormat,\r\n mergeNumberFormat\r\n };\r\n function sync(composer) {\r\n composer.locale.value = _locale.value;\r\n composer.fallbackLocale.value = _fallbackLocale.value;\r\n Object.keys(_messages.value).forEach(locale => {\r\n composer.mergeLocaleMessage(locale, _messages.value[locale]);\r\n });\r\n Object.keys(_datetimeFormats.value).forEach(locale => {\r\n composer.mergeDateTimeFormat(locale, _datetimeFormats.value[locale]);\r\n });\r\n Object.keys(_numberFormats.value).forEach(locale => {\r\n composer.mergeNumberFormat(locale, _numberFormats.value[locale]);\r\n });\r\n composer.escapeParameter = _escapeParameter;\r\n composer.fallbackFormat = _fallbackFormat;\r\n composer.fallbackRoot = _fallbackRoot;\r\n composer.fallbackWarn = _fallbackWarn;\r\n composer.missingWarn = _missingWarn;\r\n composer.warnHtmlMessage = _warnHtmlMessage;\r\n }\r\n onBeforeMount(() => {\r\n if (instance.proxy == null || instance.proxy.$i18n == null) {\r\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const composer = (_composer.value = instance.proxy.$i18n\r\n .__composer);\r\n if (scope === 'global') {\r\n _locale.value = composer.locale.value;\r\n _fallbackLocale.value = composer.fallbackLocale.value;\r\n _messages.value = composer.messages.value;\r\n _datetimeFormats.value = composer.datetimeFormats.value;\r\n _numberFormats.value = composer.numberFormats.value;\r\n }\r\n else if (isLocale) {\r\n sync(composer);\r\n }\r\n });\r\n return wrapper;\r\n}\r\nconst globalExportProps = [\r\n 'locale',\r\n 'fallbackLocale',\r\n 'availableLocales'\r\n];\r\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm'] ;\r\nfunction injectGlobalFields(app, composer) {\r\n const i18n = Object.create(null);\r\n globalExportProps.forEach(prop => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\r\n if (!desc) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const wrap = isRef(desc.value) // check computed props\r\n ? {\r\n get() {\r\n return desc.value.value;\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n set(val) {\r\n desc.value.value = val;\r\n }\r\n }\r\n : {\r\n get() {\r\n return desc.get && desc.get();\r\n }\r\n };\r\n Object.defineProperty(i18n, prop, wrap);\r\n });\r\n app.config.globalProperties.$i18n = i18n;\r\n globalExportMethods.forEach(method => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, method);\r\n if (!desc || !desc.value) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\r\n });\r\n}\n\n// register message resolver at vue-i18n\r\nregisterMessageResolver(resolveValue);\r\n// register fallback locale at vue-i18n\r\nregisterLocaleFallbacker(fallbackWithLocaleChain);\r\n{\r\n initFeatureFlags();\r\n}\r\n// NOTE: experimental !!\r\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n const target = getGlobalThis();\r\n target.__INTLIFY__ = true;\r\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\r\n}\r\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, I18nInjectionKey, NumberFormat, Translation, VERSION, castToVueI18n, createI18n, useI18n, vTDirective };\n","const get = (key: string): T | undefined => {\n const content = localStorage.getItem(key);\n if (content === null) {\n return undefined;\n }\n return JSON.parse(content) as T;\n};\n\nconst store = (key: string, value: T): void => {\n if (value === null || value === undefined) {\n localStorage.removeItem(key);\n } else {\n localStorage.setItem(key, JSON.stringify(value));\n }\n};\nexport const STORES = {\n language_key: \"LANGUAGE\",\n tips_key: \"TIPS_HIDDEN\",\n};\n\nconst partialStore = (key: string): ((value: T) => void) => {\n return (value: T) => {\n store(key, value);\n };\n};\n\ninterface ReturnUseStorageService {\n store: (value: T) => void;\n getFromStore: () => T | undefined;\n clearKey: () => void;\n}\nexport const useStorageService = (key: string): ReturnUseStorageService => {\n const typedGet = get;\n return {\n store: partialStore(key),\n getFromStore: typedGet.bind(null, key),\n clearKey: store.bind(null, key, null),\n };\n};\n","{\n \"buttons.next\": \"Next\",\n \"buttons.previous\": \"Prev\",\n \"buttons.edit\": \"Edit\",\n \"buttons.answer\": \"Answer\",\n \"buttons.save\": \"Save\",\n \"buttons.delete\": \"Delete\",\n \"buttons.add\": \"Add\",\n \"buttons.create\": \"New\",\n \"buttons.cancel\": \"Cancel\",\n \"buttons.continue\": \"Continue\",\n \"buttons.save_draft\": \"Save as draft\",\n \"buttons.publish\": \"Publish\",\n \"buttons.download\": \"Download\",\n \"actions.saved\": \"Information saved successfully\",\n \"avatar.initials\": \"{first}{last}\",\n \"skill_range.skill_names.low\": \"Low\",\n \"skill_range.skill_names.medium\": \"Medium\",\n \"skill_range.skill_names.high\": \"High\",\n \"roles.user\": \"Employee\",\n \"roles.administrator\": \"Administrator\",\n \"roles.groupmanager\": \"Group Manager\",\n \"roles.itmanager\": \"IT Manager\",\n \"errors.DateShouldBeGreaterThanOrEqualToToday\": \"Date must be today or later\",\n \"errors.BirthDateOutOfRange\": \"Date not valid\",\n \"errors.CompanyEmployeeGroupCourseAlreadyAssigned\": \"Course has been already assigned to this group\",\n \"errors.CompanyEmployeeGroupEmployeeNotFound\": \"Employee was not found. Please, refresh the page\",\n \"errors.CompanyEmployeeGroupExistsWithName\": \"A Group with that name already exists.\",\n \"errors.CompanyEmployeeGroupNotFound\": \"Employee Group was not found. Please, refresh the page\",\n \"errors.CompanyEmployeeGroupsNotFound\": \"Some employee groups not found\",\n \"errors.CompanyNotFound\": \"Company was not found\",\n \"errors.CourseNotFound\": \"Course not found\",\n \"errors.EmployeeAlreadyAssigned\": \"Selected employee is already assigned to the goal\",\n \"errors.EmployeesCannotBeAddedToAnEndedGoal\": \"Employees cannot be assigned to an ended goal\",\n \"errors.EmployeesCannotBeRemovedFromAnEndedGoal\": \"Employees cannot be unassigned from an ended goal\",\n \"errors.ErrorWhileConnectingToAzure\": \"Connection to Azure with the provided data could not be done. Please confirm Client ID and secret are correct.\",\n \"errors.ExpectedLinkedinFilesWereNotFound\": \"Expected LinkedIn files were not found. Please, make sure that 'Education', 'Languages', 'Positions', 'Profile' or 'Skills' files exist\",\n \"errors.FieldRequired\": \"Required field\",\n \"errors.FileExtensionNotSupported\": \"File extension is not supported\",\n \"errors.FileSizeExceeded\": \"File size exceeded\",\n \"errors.GoalCannotBeLaunchedAfterItStarted\": \"Please, update the 'Goal start date' with a date equal to or future than the current one\",\n \"errors.GoalCannotBeLaunchedWhileApplicationIsOpen\": \"Application phase is still open. Please, wait for the application phase to finish before launching the goal\",\n \"errors.GoalCannotBeLaunchedWithFewerPeopleThanNeeded\": \"The number of people assigned is less than needed. Please, assign more people before launching the goal\",\n \"errors.GoalPeopleCannotBeGreaterThanTheNumberOfPeopleNeeded\": \"The number of people needed cannot be exceeded\",\n \"errors.GoalResultCannotBeSetUntilItEnds\": \"The result of the goal cannot be set until it ends\",\n \"errors.GoalResultCannotBeUpdated\": \"The goal result have been already set and cannot be updated\",\n \"errors.GoalsFinishedCannotBeUpdated\": \"Finished goals cannot be updated\",\n \"errors.GoalStartDateNotValid\": \"Start date not valid\",\n \"errors.GoalEndDateNotValid\": \"End date not valid\",\n \"errors.HobbyAlreadyExistWithName\": \"A hobby with that name already exists.\",\n \"errors.IdealLearningAlreadyExistsWithTitle\": \"A training with that title already exists\",\n \"errors.InterestAlreadyExistsWithTitle\": \"An interest with that title already exists\",\n \"errors.LearningStartDateNotValid\": \"Start date is not valid\",\n \"errors.QuestionIsAlreadyPublished\": \"Question is already published\",\n \"errors.QuestionNotFound\": \"Question not found\",\n \"errors.QuestionNotFoundCannotBeAnswered\": \"Question was not found. Please, refresh the page\",\n \"errors.QuestionsWithAnswersCannotBeUpdated\": \"Questions with answers can't be updated\",\n \"errors.QuestionsNotFound\": \"Some questions not found\",\n \"errors.RequestNotFound\": \"Skill requested was not found. Please, refresh the page\",\n \"errors.SkillAlreadyBeingCreatedWithName\": \"A skill with that name is being created.\",\n \"errors.SkillAlreadyExistWithName\": \"A skill with that name already exists.\",\n \"errors.UnexpectedFileFormat\": \"Unexpected file format was found\",\n \"errors.UnknownError\": \"Unknown error\",\n \"errors.UsersInAzureAdExceedsPurchasedUsers\": \"The number of users found in the Azure Active Directory exceeds the number of purchased users\",\n \"errors.EmployeeNotFound\": \"Employee not found\",\n \"inputs.a_date_has_to_be_after_another_date\": \"'{first}' date must be after '{second}' date\",\n \"inputs.date_less_than_or_equal_to_today\": \"Date must be earlier than or equal to today\",\n \"inputs.date_today_or_later\": \"Date must be today or later\",\n \"inputs.DateNotValid\": \"Date not valid\",\n \"inputs.educationMode.label\": \"Mode\",\n \"inputs.educationMode.online.label\": \"Online\",\n \"inputs.educationMode.presence.label\": \"On-site\",\n \"inputs.end_date\": \"End\",\n \"inputs.max_length_exceeded\": \"Field must be at most {maxLength} characters\",\n \"inputs.max_number_items_exceeded\": \"Field must be at most {maxItems} items\",\n \"inputs.max_required\": \"Field must be at most {maximum}\",\n \"inputs.min_required\": \"Field must be at least {minimum}\",\n \"inputs.options.required\": \"Option {option} is required\",\n \"inputs.required\": \"Required field\",\n \"inputs.start_date\": \"Start\",\n \"inputs.tags.placeholder\": \"Type here to add...\",\n \"inputs.to_date_has_to_be_after_from_date\": \"'To' date must be after 'From' date\",\n \"inputs.upload_document.invalid_extension\": \"Uploaded file has an invalid extension\",\n \"inputs.upload_document.maximum_size_MB\": \"{size} MB max size\",\n \"inputs.upload_document.no_document_uploaded\": \"No document uploaded yet\",\n \"inputs.upload_document.prompt.delete.description\": \"You are going to delete this file. This action cannot be undone. Are your sure you want to continue?\",\n \"inputs.upload_document.prompt.delete.title\": \"Delete file\",\n \"inputs.upload_document.prompt.file_to_big.title\": \"File too Big\",\n \"inputs.upload_document.prompt.file_to_big.description\": \"The file you are trying to upload is too big.\",\n \"inputs.upload_document.supported_types\": \"Supported types: {types}\",\n \"inputs.url_not_valid\": \"Field must be a valid URL\",\n \"pages.ai_assistant.title\": \"AI Assistant\",\n \"pages.ai_assistant.header.title\": \"Questions to Employees\",\n \"pages.ai_assistant.header.subtitle\": \"Welcome to your AI Assistant. Your AI Assistant will ask you questions through the chatbot, your answers will give it information to give you the best learning path and experience in Fleebe. If you need to modify your answers, you can do it here at any time.\",\n \"pages.ai_assistant.question.level\": \"Expand on your answer or share your feedback (whether positive or constructive)\",\n \"pages.ai_assistant.question.tags\": \"Type your options (separated by commas or enter)\",\n \"pages.ai_assistant.no.questions\": \"Your administration has not configured questions yet\",\n \"pages.header.role\": \"Role\",\n \"pages.header.goToAdministratorArea\": \"Go to administrator area\",\n \"pages.header.goToEmployeeArea\": \"Go to employee area\",\n \"pages.header.logout\": \"Log out\",\n \"pages.header.edit\": \"Edit\",\n \"pages.header.picture-uploader.label\": \"Choose a picture for your avatar\",\n \"pages.header.profile-editor.personal-information.title\": \"Personal Information\",\n \"pages.header.profile-editor.personal-information.birthDate\": \"Birth Date\",\n \"pages.header.profile-editor.app-settings.title\": \"App Settings\",\n \"pages.header.profile-editor.app-settings.languages.title\": \"Language\",\n \"pages.header.profile-editor.app-settings.languages.english\": \"English\",\n \"pages.header.profile-editor.app-settings.languages.en\": \"English\",\n \"pages.header.profile-editor.app-settings.languages.spanish\": \"Español\",\n \"pages.header.profile-editor.app-settings.languages.es\": \"Español\",\n \"pages.header.profile-editor.app-settings.languages.french\": \"Français\",\n \"pages.header.profile-editor.app-settings.languages.fr\": \"Français\",\n \"pages.header.profile-editor.app-settings.languages.german\": \"Deutsch\",\n \"pages.header.profile-editor.app-settings.languages.italian\": \"Italiano\",\n \"pages.header.profile-editor.app-settings.languages.portuguese\": \"Português\",\n \"pages.goals_challenges.title\": \"Goals & Challenges\",\n \"pages.goals_challenges.search.placeholder\": \"Search goals and challenges\",\n \"pages.goals_challenges.featured.title\": \"Featured Goals & Challenges\",\n \"pages.goals_challenges.featured.vacant_positions\": \"Only {vacantPositions} vacant positions\",\n \"pages.goals_challenges.featured.days_left\": \"{days} days left\",\n \"pages.goals_challenges.featured.dates\": \"From {start} to {end}\",\n \"pages.goals_challenges.my.title\": \"My Goals & Challenges\",\n \"pages.goals_challenges.my.progress\": \"Progress\",\n \"pages.goals_challenges.my.progress_amount\": \"{progress}%\",\n \"pages.goals_challenges.no.goals\": \"Your administration has not configured goals yet\",\n \"pages.learning.title\": \"My Learning\",\n \"pages.learning.learning.tab\": \"Learning\",\n \"pages.learning.attachment.label\": \"Choose a certificate to upload\",\n \"pages.learning.search\": \"Search\",\n \"pages.learning.search.no_results\": \"There are no courses with this filter\",\n \"pages.learning.search.no_copy\": \"We don’t copy your searches. This is a private area.\",\n \"pages.learning.search.title\": \"Search results for {searchTerm}\",\n \"pages.learning.featured.title\": \"Featured Learning for You\",\n \"pages.learning.filter.type.title\": \"Type\",\n \"pages.learning.filter.type.all\": \"All\",\n \"pages.learning.filter.type.CourseCoursera\": \"Coursera\",\n \"pages.learning.filter.type.CourseEdX\": \"edX\",\n \"pages.learning.filter.type.CourseLinkedInLearning\": \"LinkedIn\",\n \"pages.learning.filter.type.CourseIntefi\": \"Intefi\",\n \"pages.learning.filter.type.CourseCompany\": \"Internal training\",\n \"pages.learning.mode.online\": \"online\",\n \"pages.learning.mode.onsite\": \"on-site\",\n \"pages.learning.rateTitle\": \"Rate this training\",\n \"pages.learning.rateObservations.placeHolder\": \"It’s very important for us to get feedback from you to customize our learning platform with the best courses adapted to you.\",\n \"pages.learning.sendTraining\": \"Send training\",\n \"pages.learning.trainingComplete\": \"Training completed\",\n \"pages.learning.confirmSetTrainingAsComplete.title\": \"Set training as completed\",\n \"pages.learning.confirmSetTrainingAsComplete.text\": \"You are going to set a training as completed. This action cannot be undone so be sure to be right.\",\n \"pages.learning.goToTheTraining\": \"Go to the training\",\n \"pages.learning.certificateReminder\": \"If you have some certificate or diploma that accredits a finished training, please remember to add it to your Current Experience.\",\n \"pages.learning.siteInformation.title\": \"Information of the on-site training\",\n \"pages.learning.tip.content\": \"The more information you provide on Fleebe, CV, interest, ideal job... , more accurate your AI Assistant's recommendation will be to guide you to your future aspirations.\",\n \"pages.learning.my_learning_path.title\": \"My learning path\",\n \"pages.learning.my_learning_path.tab\": \"My learning path\",\n \"pages.learning.my_learning_path.introduction.title\": \"AI Training Path to My Ideal Job\",\n \"pages.learning.my_learning_path.introduction.explanation\": \"Following the parameters established in the configuration of your ideal position, our AI has created a training itinerary that can help you achieve your goal. Remember that this help is for guidance only and that you ultimately decide what is best for you.\",\n \"pages.learning.my_learning_path.areas.skills\": \"Skills\",\n \"pages.learning.my_learning_path.areas.languages\": \"Languages\",\n \"pages.learning.my_learning_path.areas.financial\": \"Financial education\",\n \"pages.learning.my_learning_path.levels.beginner\": \"Beginner\",\n \"pages.learning.my_learning_path.levels.advanced\": \"Advanced\",\n \"pages.learning.my_learning_path.levels.expert\": \"Expert\",\n \"pages.learning.my_learning_path.additional_learning\": \"Additional learning\",\n \"pages.learning.my_learning_path.no_suggestions\": \"No suggestions in this area/level\",\n \"pages.learning.my_learning_path.recalculate.title\": \"I want my learning path to be recalculated\",\n \"pages.learning.my_learning_path.recalculate.activate_explanation\": \"The recalculation will be performed unattended overnight\",\n \"pages.learning.my_training.title\": \"My training\",\n \"pages.learning.my_training.tab\": \"My training\",\n \"pages.learning.my_training.tip.content\": \"Your learning path will not change if you do not change your ideal job.\",\n \"pages.learning.my_training.no_completed\": \"You don't have any training completed yet\",\n \"pages.my_interests.form.idealLearning.create\": \"Add new training\",\n \"pages.my_interests.form.idealLearning.create.title\": \"New training\",\n \"pages.my_interests.form.idealLearning.delete.content\": \"You are going to delete the selected training. This action cannot be undone. Are you sure you want to continue?\",\n \"pages.my_interests.form.idealLearning.delete.title\": \"Delete training\",\n \"pages.my_interests.form.idealLearning.edit.title\": \"Edit training\",\n \"pages.my_interests.form.idealLearning.fields.description.label\": \"Description of the training\",\n \"pages.my_interests.form.idealLearning.fields.description.placeholder\": \"Enter a brief description\",\n \"pages.my_interests.form.idealLearning.fields.title.label\": \"Title of the training\",\n \"pages.my_interests.form.idealLearning.fields.title.placeholder\": \"Enter a title\",\n \"pages.my_interests.form.interests.create\": \"Add new interest\",\n \"pages.my_interests.form.interests.create.title\": \"New interest\",\n \"pages.my_interests.form.interests.delete.content\": \"You are going to delete the selected interest. This action cannot be undone. Are you sure you want to continue?\",\n \"pages.my_interests.form.interests.delete.title\": \"Delete interest\",\n \"pages.my_interests.form.interests.edit.title\": \"Edit interest\",\n \"pages.my_interests.form.interests.fields.description.label\": \"Description of the interest\",\n \"pages.my_interests.form.interests.fields.description.placeholder\": \"Enter a brief description\",\n \"pages.my_interests.form.interests.fields.title.label\": \"Title of the interest\",\n \"pages.my_interests.form.interests.fields.title.placeholder\": \"Enter a title\",\n \"pages.my_interests.idealLearning\": \"Learning\",\n \"pages.my_interests.interests\": \"Interests\",\n \"pages.my_interests.tip.content\": \"In this section we invite you to fill in your interests, and your hobbies. Also the learnings you have made and that you find interesting to reflect.\",\n \"pages.my_interests.title\": \"My Interests\",\n \"pages.my_profile.dashboards.successful_skills.title\": \"Current skills\",\n \"pages.my_profile.dashboards.certificates_courses.label\": \"Last 5 certificates and courses\",\n \"pages.my_profile.dashboards.certificates_courses.type_learning.online.label\": \"Online\",\n \"pages.my_profile.dashboards.certificates_courses.type_learning.presence.label\": \"Presence\",\n \"pages.my_profile.dashboards.company_goals.last_update.subtitle\": \"Last update, {date}\",\n \"pages.my_profile.dashboards.company_goals.graph\": \"Goals Achieved\",\n \"pages.my_profile.dashboards.successful_skills.general\": \"General\",\n \"pages.my_profile.dashboards.successful_skills.language\": \"Languages\",\n \"pages-my_profile.dashboards.general_skills.title\": \"Your general skills\",\n \"pages-my_profile.dashboards.tips.introduction\": \"Don't worry if you still don't see anything here. By completing your profile and with the day by day job flow a lot of information will appear.\",\n \"pages-my_profile.dashboards.tips.no-content\": \"Fill in your current and ideal job to complete the chart below showing the skills that are relevant for you.\",\n \"pages-my_profile.dashboards.tips.content\": \"To add a new skill or modify their levels, please visit My Current Job or My Ideal Job sections. If you want to replace a skill for another one you can do it clicking the Edit button below.\",\n \"pages-my_profile.dashboards.performance_graph.no_content_yet\": \"We don't have enough information to create the chart\",\n \"pages-my_profile.dashboards.performance_graph.edit\": \"Edit performance graph\",\n \"pages-my-profile.profile_updating.tab\": \"Profile updating\",\n \"pages-my-profile.profile_updating.welcome_guide.title\": \"Welcome to Fleebe\",\n \"pages-my-profile.profile_updating.welcome_guide.subtitle\": \"Your new professional development tool\",\n \"pages-my-profile.profile_updating.welcome_guide.tip\": \"Beginnings are tough. So follow the next steps in order to complete your profile in a fast and friendly way.\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.title\": \"First of all...\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.1\": \"Complete your personal profile. You know, name, age, personal picture, current job, etc. You only have to hover on the avatar icon on application right upper corner.\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.2\": \"We are quite daring and we want to visualize in a single graph not only your degree of adaptation to your current position but also to an ideal position created by you. Can you help us? Follow the links in the cards on the right side.\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.3\": \"For this we need two things: first, list the skills that best describe your current job; and second, do the same thing but with the skills of your ideal job, the one that you would like to have in the future. Easy, right?\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.4\": \"If you import your profile from Linkedin, most of those skills will be loaded automatically and you only have to choose which ot them fit better in the jobs described by you. But, if you prefer it, you can do this manually.\",\n \"pages-my-profile.profile_updating.welcome_guide.summary.title\": \"And that's all\",\n \"pages-my-profile.profile_updating.welcome_guide.summary.content\": \"When you finish, you should see something like this. A quite intuitive way of visualize both your fit to your current job and to ideal one.\",\n \"pages-my-profile.profile_updating.welcome_guide.summary.see_example\": \"See an example\",\n \"pages-my-profile.profile_updating.steps_guide.title_1\": \"Start here creating your full skills profile\",\n \"pages-my-profile.profile_updating.steps_guide.title_2\": \"Or complete it in parts\",\n \"pages-my-profile.profile_updating.steps_guide.skills_profile.title\": \"Skills Profile\",\n \"pages-my-profile.profile_updating.steps_guide.skills_profile.content\": \"Select the 12 skills most relevant among all the skills you have or you would want to.\",\n \"pages-my-profile.profile_updating.steps_guide.skills_profile.select\": \"Select skills\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.title\": \"Current Job\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.content_1\": \"Select the 6 skills most relevant in your current professional experience.\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.content_2\": \"Select from among all the skills that define your current position the 6 most relevant to you.\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.content_3\": \"And if you want it to be faster...\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.select_current_job_skills\": \"Select current job skills\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.get_linkedin_profile\": \"Get your LinkedIn profile\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.title\": \"Ideal Job\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.content_1\": \"Select the 6 skills you would like to develop for your ideal job.\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.content_2\": \"Define your ideal position and add all the skills you think are necessary to perform it. Then you can select the most important ones.\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.select_ideal_job_skills\": \"Select ideal job skills\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.go_to_my_ideal_job\": \"Go to My Ideal Job\",\n \"pages-my-profile.profile_updating.performance_graph.example.title\": \"Marketing profile example\",\n \"pages-my-profile.profile_updating.performance_graph.example.subtitle\": \"Here you can see Megan's skills.\",\n \"pages-my-profile.profile_updating.performance_graph.example.steps.1\": \"The 6 skills that match her current job (purple)\",\n \"pages-my-profile.profile_updating.performance_graph.example.steps.2\": \"The 6 skills she would like to develop (blue)\",\n \"pages-my-profile.profile_updating.performance_graph.example.steps.3\": \"The 12 skills that match her current experience (orange)\",\n \"pages-my-profile.profile_updating.performance_graph.example.content_1\": \"Whether you import them from Linkedin or create them manually, you can then select the 6 skills that best define your current and desired position for the future.\",\n \"pages-my-profile.profile_updating.performance_graph.example.content_2\": \"With this graph you can, at a glance, compare your current and future talent to manage your training and career plan accordingly. This also helps Human Resources managers to offer you the working conditions that best suit you or to detect, for example, undervalued or dissatisfied employees.\",\n \"pages-my-profile.profile_updating.performance_graph.example.content_3\": \"Help us to help you.\",\n \"pages-my-profile.profile_updating.performance_graph.example.profile.first_name\": \"Megan\",\n \"pages-my-profile.profile_updating.performance_graph.example.profile.last_name\": \"Barney\",\n \"pages-my-profile.profile_updating.performance_graph.example.profile.experience\": \"Digital marketing manager\",\n \"pages-my-profile.profile_updating.performance_graph.example.close\": \"Got it\",\n \"pages-my-profile.profile_updating.performance_graph.graph.series.1\": \"Current job skills\",\n \"pages-my-profile.profile_updating.performance_graph.graph.series.2\": \"Ideal job skills\",\n \"pages-my-profile.profile_updating.performance_graph.graph.series.3\": \"Current experience skills\",\n \"pages-my-profile.profile_updating.performance_graph.graph.labels.0\": \"None\",\n \"pages-my-profile.profile_updating.performance_graph.graph.labels.1\": \"Low\",\n \"pages-my-profile.profile_updating.performance_graph.graph.labels.2\": \"Medium\",\n \"pages-my-profile.profile_updating.performance_graph.graph.labels.3\": \"High\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.1\": \"Taking initiative\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.2\": \"Languages\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.3\": \"Analytical\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.4\": \"Creative\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.5\": \"Problem solving\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.6\": \"Positive attitude\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.7\": \"Supporting\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.8\": \"Empathizing\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.9\": \"Social Media\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.10\": \"Management\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.11\": \"Marketing\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.12\": \"Learning\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.introduction\": \"Introduction\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.introduction.info_1\": \"To fill in your profile chart, you need to complete the 2 principal sections about yourself: Current Experience and Ideal Job. Once these sections are completed, you will have at your disposal all the skills you need to rate and build your spider visualization.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.introduction.info_2\": \"* Remember that you will always be able to edit your skills and revise them during all your growth and learning process.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.current_job_skills\": \"Select my Current Job Skills\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.current_job_skills.info\": \"Select a min. of 3 skills and a max. of 6 skills most important in my current job.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.ideal_job_skills\": \"Select my Ideal Job Skills\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.ideal_job_skills.info\": \"Select a min. of 3 skills and a max. of 6 skills you would like to develop for your ideal job.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.errors.skills_count\": \"It is required that you choose between 3 and 6 skills to build your performance graph.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.search.placeholder\": \"Search a skill\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.current_job_requirements\": \"You must have a Current Job with at least 3 skills to be able to create this graph.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.go_to_current_job\": \"Go to Current Job\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.ideal_job_requirements\": \"You must have an Ideal Job with at least 3 skills to be able to create this graph.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.go_to_ideal_job\": \"Go to Ideal Job\",\n \"pages-my-profile.dashboard.tab\": \"Dashboard\",\n \"pages.my_profile.title\": \"My Profile\",\n \"pages.my_profile.employee_groups.title\": \"Groups\",\n \"pages.my_profile.previous_experiences.title\": \"Previous Experiences\",\n \"pages.current_experience.title\": \"My Current Job\",\n \"pages.current_experience.about_me\": \"About Me\",\n \"pages.current_experience.experience\": \"Other Experience\",\n \"pages.current_experience.education\": \"Education\",\n \"pages.current_experience.languages\": \"Languages\",\n \"pages.current_experience.languages.edit\": \"Edit languages\",\n \"pages.current_experience.current_experience.title\": \"Current Position\",\n \"pages.current_experience.current_experience.general_skills\": \"General Skills\",\n \"pages.current_experience.current_experience.language_skills\": \"Language Skills\",\n \"pages.current_experience.goals_challenges.title\": \"My Goals & Challenges\",\n \"pages.current_experience.linkedin.import\": \"Import my LinkedIn profile\",\n \"pages.current_experience.linkedin.title\": \"Import your LinkedIn profile\",\n \"pages.current_experience.linkedin.content.instructions.title\": \"Follow the instructions below to import your LinkedIn profile.\",\n \"pages.current_experience.linkedin.content.instructions.step.1\": \"Click this link to access to your LinkedIn profile (log in if it's necessary): \",\n \"pages.current_experience.linkedin.content.instructions.step.2\": \"Configure the content you want to import. LinkedIn offers you some alternatives.\",\n \"pages.current_experience.linkedin.content.instructions.step.3\": \"Click the button Request file (the download will be ready in about 24 hours).\",\n \"pages.current_experience.linkedin.content.instructions.step.4\": \"Two emails will send to you with the instructions you have to follow. The first one contents the information you need to upload here. The second one is about your LinkedIn activity and account history, and we don't need it.\",\n \"pages.current_experience.linkedin.content.instructions.step.5\": \"Download the file.\",\n \"pages.current_experience.linkedin.content.instructions.step.6\": \"Click the button bellow and select the .zip file downloaded from your computer.\",\n \"pages.current_experience.linkedin.content.instructions.step.7\": \"And that's all. If everything goes well, all your data will be charged here. Check if your current experience is ok. If not, you can edit it in LinkedIn and repeat the operation (recommended) or edit it inside this application by click in the button Edit, next to each experience.\",\n \"pages.current_experience.linkedin.content.upload\": \"Browse to upload the LinkedIn profile\",\n \"pages.current_experience.linkedin.successfully_imported_profile\": \"Profile successfully imported\",\n \"pages.current_experience.linkedin.reminder.content\": \"Check your positions dates and introduce the level of your skills, and lastly define if your educations have been online or on site.\",\n \"pages.current_experience.tip.content\": \"In this section it is important that you upload your curriculum, the experience will be more personalized if we know the starting point. On the other hand, you must differentiate between the skills you have generated during your professional life and the skills learned in your current position when filling in the fields.\",\n \"pages.current_experience.skills\": \"Skills\",\n \"pages.current_experience.skills.management\": \"Management Skills\",\n \"pages.current_experience.skills.general\": \"General\",\n \"pages.current_experience.skills.edit\": \"Edit general skills\",\n \"pages.current_experience.language.edit\": \"Edit language skills\",\n \"pages.current_experience.confirm-delete-on-graph.title\": \"Delete Skill being used on Performance Graph\",\n \"pages.current_experience.confirm-delete-on-graph.message\": \"You are trying to delete a skill that is being used on the Performance Graph. If after deleting this skill there are less than 3 skills the graph will not be created.\",\n \"pages.current_experience.present\": \"Present\",\n \"pages.current_experience.edit.about.me\": \"Tell me something about you\",\n \"pages.current_experience.form.about.me.fields.name.label\": \"About you\",\n \"pages.current_experience.form.about.me.fields.name.placeholder\": \"Tell me something about you\",\n \"pages.current_experience.form.curriculum.upload\": \"Upload your curriculum\",\n \"pages.current_experience.form.curriculum.delete.prompt.title\": \"Delete curriculum\",\n \"pages.current_experience.form.curriculum.delete.prompt.content\": \"You are going to delete curriculum. This action cannot be undone. Are you sure you want to continue?\",\n \"pages.current_experience.form.experience.edit_current\": \"Edit your current position\",\n \"pages.current_experience.form.experience.edit_other\": \"Edit your job position\",\n \"pages.current_experience.form.experience.create_current\": \"Add current job\",\n \"pages.current_experience.form.experience.create_other\": \"Add new experience\",\n \"pages.current_experience.form.experience.fields.title.label\": \"Title\",\n \"pages.current_experience.form.experience.fields.title.placeholder\": \"Enter the job position\",\n \"pages.current_experience.form.experience.fields.description.label\": \"Description of the job\",\n \"pages.current_experience.form.experience.fields.description.placeholder\": \"Enter the job description\",\n \"pages.current_experience.form.experience.fields.company.label\": \"Company\",\n \"pages.current_experience.form.experience.fields.company.placeholder\": \"Enter the company\",\n \"pages.current_experience.form.experience.fields.location.label\": \"Location\",\n \"pages.current_experience.form.experience.fields.location.placeholder\": \"Enter the job location\",\n \"pages.current_experience.form.experience.fields.fromDate.label\": \"Start\",\n \"pages.current_experience.form.experience.fields.toDate.label\": \"End\",\n \"pages.current_experience.form.experience.fields.currentJob.label\": \"Current Job\",\n \"pages.current_experience.form.experience.delete.title\": \"Delete experience\",\n \"pages.current_experience.form.experience.delete.content\": \"You are going to delete the selected experience. This action cannot be undone. Are you sure you want to continue?\",\n \"pages.current_experience.form.education.edit\": \"Edit your education\",\n \"pages.current_experience.form.education.create\": \"Add new education\",\n \"pages.current_experience.form.education.fields.title.label\": \"Education title\",\n \"pages.current_experience.form.education.fields.title.placeholder\": \"Enter a title\",\n \"pages.current_experience.form.education.fields.institution.label\": \"Institution\",\n \"pages.current_experience.form.education.fields.institution.placeholder\": \"Enter an institution\",\n \"pages.current_experience.form.education.fields.description.label\": \"Description\",\n \"pages.current_experience.form.education.fields.description.placeholder\": \"Enter a description\",\n \"pages.current_experience.form.education.fields.location.label\": \"Location\",\n \"pages.current_experience.form.education.fields.location.placeholder\": \"Enter a location\",\n \"pages.current_experience.form.education.fields.fromDate.label\": \"From\",\n \"pages.current_experience.form.education.fields.toDate.label\": \"To\",\n \"pages.current_experience.form.education.fields.inProgressEducation.label\": \"In progress\",\n \"pages.current_experience.form.education.delete.title\": \"Delete education\",\n \"pages.current_experience.form.education.delete.content\": \"You are going to delete the selected education. This action cannot be undone. Are you sure you want to continue?\",\n \"pages.guest.create_company_from_azure_ad.information.title\": \"Registration from Azure Active Directory (Ad) Guide\",\n \"pages.guest.create_company_from_azure_ad.information.content\": \"

To generate the Service Principal, please go to Azure Ad, and follow next steps:

  1. Go to Azure Active Directory and create a new Application in App Registration.
  2. Enter a name at the 'Name' field.\\n\\n
  3. In Supported account types select the 'Single Tenant' option and click the 'Register' button.
  4. When your App is already created, go to 'API Permissions' section and add a new one of type 'User.Read.All'.
  5. Now you need to add a Client Secret, we recommend 24 months of expiration date. Now copy the Client Secret.

Steps to connect with Fleebe:

  1. Copy the 'Application Client ID' from the previous step to the 'Service Principal Client Id' field.
  2. Copy the 'Client Secret' to the 'Service Principal Client Secret' field.
  3. Click the 'Validate' button, and you should see the number of users of your AD.
\",\n \"pages.guest.create_company_from_azure_ad.form.fields.tenant_id.label\": \"Tenant Id\",\n \"pages.guest.create_company_from_azure_ad.form.fields.purchaseSubscriptionId.label\": \"Purchase Subscription ID\",\n \"pages.guest.create_company_from_azure_ad.form.fields.client_id.label\": \"Service principal client Id\",\n \"pages.guest.create_company_from_azure_ad.form.fields.client_id.placeholder\": \"Enter the service principal Id\",\n \"pages.guest.create_company_from_azure_ad.form.fields.client_secret.label\": \"Service principal client Secret\",\n \"pages.guest.create_company_from_azure_ad.form.fields.client_secret.placeholder\": \"Enter the service principal secret\",\n \"pages.guest.create_company_from_azure_ad.form.fields.total_users.label\": \"The following amount of users will be imported from Azure Active Directory after the sign up process\",\n \"pages.guest.create_company_from_azure_ad.form.buttons.validate\": \"Validate\",\n \"pages.guest.create_company_from_azure_ad.form.buttons.signup\": \"Sign up\",\n \"pages.guest.create_company_from_azure_ad.error_modal.title\": \"Subscription could not be completed\",\n \"pages.guest.create_company_from_azure_ad.error_modal.description\": \"We are sorry, the subscription could not be completed because the number of purchased users ({purchasedUsers}) does not match the number of users found ({totalUsers}) in Azure Active Directory. Please restart the purchase process.\",\n \"pages.guest.create_company_from_azure_ad.error_modal.button\": \"Restart purchase in Microsoft AppSource\",\n \"pages.accounts.logout.title\": \"Your session ended\",\n \"pages.accounts.logout.description\": \"You finished your session. To come back again, click on the button.\",\n \"pages.accounts.logout.signin\": \"Sign in Fleebe\",\n \"pages.accounts.admin_required.title\": \"Not enough permissions\",\n \"pages.accounts.admin_required.description\": \"You need to be administrator to enter the requested page. To continue using the site, click on the button.\",\n \"pages.accounts.admin_required.continue\": \"Go back to Fleebe\",\n \"pages.accounts.tenant_unauthorized.title\": \"Tenant unauthorized\",\n \"pages.accounts.tenant_unauthorized.description\": \"The tenant you are using to log in is not allowed in the application. Please confirm you are registered to use Fleebe and continue.\",\n \"pages.accounts.tenant_unauthorized.continue\": \"Go back to Fleebe\",\n \"pages.accounts.user_unauthorized.title\": \"User unauthorized\",\n \"pages.accounts.user_unauthorized.description\": \"The account you are using to log in is not allowed in the application. Please confirm you are registered to use Fleebe and continue. If you have multiple accounts, try logging out and sign in again.\",\n \"pages.accounts.user_unauthorized.logout\": \"Log out\",\n \"pages.admin.dashboard.current_job.title\": \"Current Job\",\n \"pages.admin.dashboard.ideal_job.title\": \"Ideal Job\",\n \"pages.admin.dashboard.title\": \"Dashboard\",\n \"pages.admin.dashboard.percentage_employee_answered\": \"% employee answered\",\n \"pages.admin.dashboard.welcome\": \"Welcome to Fleebe\",\n \"pages.admin.dashboard.welcome.tip.title\": \"Start wherever you want\",\n \"pages.admin.dashboard.welcome.tip.content\": \"Start the experience with your AI assistant whenever you want by filling out the four general cards below these infobox.\",\n \"pages.admin.dashboard.welcome.shortcuts.profile.title\": \"Complete your organization profile\",\n \"pages.admin.dashboard.welcome.shortcuts.profile.content\": \"Fill in all your company`s corporate data with its main characteristics: How big your organization is? where it's located?\",\n \"pages.admin.dashboard.welcome.shortcuts.profile.button\": \"Complete company profile\",\n \"pages.admin.dashboard.welcome.shortcuts.skill.title\": \"Create the skills your organization needs\",\n \"pages.admin.dashboard.welcome.shortcuts.skill.content\": \"Your organization is different and unique, therefore, it has specific needs that you know as administrator. Create them to start looking for talent.\",\n \"pages.admin.dashboard.welcome.shortcuts.skill.button\": \"Create skills\",\n \"pages.admin.dashboard.welcome.shortcuts.question.title\": \"Create a form to get feedback from employees\",\n \"pages.admin.dashboard.welcome.shortcuts.question.content\": \"Your employees are talented, therefore their opinion is valuable. Create here a form to get your feedback.\",\n \"pages.admin.dashboard.welcome.shortcuts.question.button\": \"Create form\",\n \"pages.admin.dashboard.welcome.shortcuts.goal.title\": \"Create goals and challenges for your organization\",\n \"pages.admin.dashboard.welcome.shortcuts.goal.content\": \"Keep your teams and employees motivated, create common objectives and goals bringing value to the company.\",\n \"pages.admin.dashboard.welcome.shortcuts.goal.button\": \"Create goals & challenges\",\n \"pages.admin.dashboard.search.introduction\": \"The new AI assistance to help your employees learning path to their own preferences and lifestyle\",\n \"pages.admin.dashboard.search.placeholder\": \"Search for employees\",\n \"pages.admin.dashboard.current_experience.title\": \"Current Experience\",\n \"pages.admin.dashboard.current_experience.about_me.curriculum\": \"Curriculum\",\n \"pages.admin.dashboard.current_experience.about_me.no_content_yet\": \"Employee has not provided information yet\",\n \"pages.admin.dashboard.current_experience.experience.no_content_yet\": \"Employee has not provided experience information yet\",\n \"pages.admin.dashboard.current_experience.education.no_content_yet\": \"Employee has not provided education information yet\",\n \"pages.admin.dashboard.current_experience.languages.no_content_yet\": \"Employee has not provided languages yet\",\n \"pages.admin.dashboard.current_experience.general_skills.no_content_yet\": \"Employee has not provided general skills yet\",\n \"pages.admin.dashboard.my_ideal_job.no_content_yet\": \"Employee has not provided the ideal job information yet\",\n \"pages.admin.dashboard.ai_assistant.title\": \"AI Assistant\",\n \"pages.admin.dashboard.ai_assistant.description\": \"These are the responses provided by the employee\",\n \"pages.admin.dashboard.interests.title\": \"Interests\",\n \"pages.admin.dashboard.interests.interests.no_content_yet\": \"Employee has not provided interest information yet\",\n \"pages.admin.dashboard.interests.idealLearning.no_content_yet\": \"Employee has not provided learning information yet\",\n \"pages.admin.dashboard.interests.hobbies.no_content_yet\": \"Employee has not provided hobbies yet\",\n \"pages.admin.ai_assistant.title\": \"AI Assistant\",\n \"pages.admin.ai_assistant.create_new_survey_form.title\": \"Create new survey form\",\n \"pages.admin.ai_assistant.create_new_survey_form.description\": \"Configure the questions for your company and choose which of them should be visible to your employees\",\n \"pages.admin.ai_assistant.create_new_survey_form.new_question\": \"Add new question\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.level.title\": \"Level\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.level.description\": \"Use this component for the employee to select a level of education, experience or talent, etc. quickly.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.level.guide\": \"Try to make the statement as simple as possible so that the answers are not ambiguous and the information provided really adds value. Establish clear and well contrasted levels so that there are no doubts in the answer.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.level.input.title\": \"Enter the question statement\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.singleselection.title\": \"Single Selection\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.singleselection.description\": \"Use this component to select a single option from several available ones.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.singleselection.guide\": \"Try to make the statement as simple as possible so that the answers are not ambiguous and the information provided really adds value. Establish clear and well contrasted options so that there are no doubts in the answer.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.singleselection.input.title\": \"Enter the question statement\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.multipleselection.title\": \"Multiple Selection\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.multipleselection.description\": \"Use this component to select multiple correct options.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.multipleselection.guide\": \"Try to make the statement as simple as possible so that the answers are not ambiguous and the information provided really adds value. Establish clear and well contrasted options so that there are no doubts in the answer.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.multipleselection.input.title\": \"Enter the question statement\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.longtext.title\": \"Long Open Answer\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.longtext.description\": \"Use this type of components for open answers where the employee can make longer descriptions.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.longtext.guide\": \"Try to make the statement as clear and simple as possible so that the answers are not ambiguous and the information provided really adds value.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.longtext.input.title\": \"Enter the question statement\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.shorttext.title\": \"Short Open Answer\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.shorttext.description\": \"Use this component for short answers.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.shorttext.guide\": \"Try to make the statement as clear and simple as possible so that the answers are not ambiguous and the information provided really adds value.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.shorttext.input.title\": \"Enter the question statement\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.tags.title\": \"Tags\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.tags.description\": \"Use this component when the employee has to enter answers in the form of labels.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.tags.guide\": \"Try to make the statement as simple as possible so that the answers are not ambiguous and the information provided really adds value. Establish clear and well contrasted options so that there are no doubts in the answer.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.tags.input.title\": \"Enter the question statement\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.path.select_question_type\": \"Select question type\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.path.configure_question\": \"Configure question\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.path.save_question\": \"Save question\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.options.title\": \"Enter the answer options\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.options.description\": \"You need at least two options but you can add all the ones you need.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.option.title\": \"Option {optionIndex}\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.option.placeholder\": \"Option title\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.title\": \"Enter the answer levels\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.low_level\": \"Low level\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.medium_level\": \"Medium level\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.high_level\": \"High level\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.title\": \"Preview\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.description\": \"Question has errors in configuration. Go to previous step and configure it properly.\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.tag_samples.sample1\": \"tag 1\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.tag_samples.sample2\": \"tag 2\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.option_samples.sample1\": \"option 1\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.option_samples.sample2\": \"option 2\",\n \"pages.admin.ai_assistant.kpi_tip.title\": \"Create KPIs\",\n \"pages.admin.ai_assistant.kpi_tip.subtitle\": \"You can create KPIs of the sent questionnaires in order to visualize the range of responses. Select the chart icon to see the results for each questions you are looking for.\",\n \"pages.admin.ai_assistant.questions.title\": \"Survey questions\",\n \"pages.admin.ai_assistant.questions.seeAllQuestions\": \"See all questions\",\n \"pages.admin.ai_assistant.questions.search\": \"Search in questions\",\n \"pages.admin.ai_assistant.questions.created_questions\": \"Created questions\",\n \"pages.admin.ai_assistant.questions.sent_questions\": \"Sent questions\",\n \"pages.admin.ai_assistant.questions.send_questions\": \"Send questions\",\n \"pages.admin.ai_assistant.questions.do_not_send_questions\": \"Don't send questions\",\n \"pages.admin.ai_assistant.questions.add_new_question\": \"Add new question\",\n \"pages.admin.ai_assistant.questions.preview\": \"Question preview\",\n \"pages.admin.ai_assistant.questions.grid.number\": \"#\",\n \"pages.admin.ai_assistant.questions.grid.answeredPercentage\": \"Participation(%)\",\n \"pages.admin.ai_assistant.questions.grid.groups\": \"Groups\",\n \"pages.admin.ai_assistant.questions.grid.groups.tooltip.more_groups\": \"{n} more\",\n \"pages.admin.ai_assistant.questions.grid.groups.tooltip.groups\": \"{n} group | {n} groups\",\n \"pages.admin.ai_assistant.questions.grid.question\": \"Question\",\n \"pages.admin.ai_assistant.questions.grid.date\": \"Date\",\n \"pages.admin.ai_assistant.questions.grid.no_results\": \"There are no questions with this filter\",\n \"pages.admin.ai_assistant.questions.grid.delete.title\": \"Delete question\",\n \"pages.admin.ai_assistant.questions.grid.delete.description\": \"Your are going to delete the question '{question}'. Are you sure?\",\n \"pages.admin.ai_assistant.questions.grid.show_in_dashboard\": \"Show in Dashboard\",\n \"pages.admin.ai_assistant.questions.grid.remove__from_dashboard\": \"Remove from Dashboard\",\n \"pages.admin.ai_assistant.questions.grid.descend\": \"Descend\",\n \"pages.admin.ai_assistant.questions.grid.ascend\": \"Ascend\",\n \"pages.admin.ai_assistant.questions.questions_with_no_answers\": \"This question has not been answered yet\",\n \"pages.admin.ai_assistant.questions.employee_answered\": \"Participation\",\n \"pages.admin.ai_assistant.questions.othersSummary\": \"Others\",\n \"pages.admin.ai_assistant.questions.noContentYet\": \"No content yet\",\n \"pages.admin.ai_assistant.questions.allQuestionsPublished\": \"All questions have already been published.\",\n \"pages.admin.company_goals.application_closed\": \"Applications closed\",\n \"pages.admin.company_goals.draft\": \"Draft\",\n \"pages.admin.company_goals.application_open\": \"Open for application\",\n \"pages.admin.company_goals.title\": \"Corporate Goals\",\n \"pages.admin.company_goals.create.public\": \"Create a public goal to applicants\",\n \"pages.admin.company_goals.create.public.description\": \"We launched this new goal with the aim of developing the full potential of each of our employees while focusing on their needs and abilities. Be the one who draws up the transformation plan according to your personal and professional goals.\",\n \"pages.admin.company_goals.create.new_public_goal\": \"Create a public goal\",\n \"pages.admin.company_goals.create.private\": \"Create a private goal and select a team\",\n \"pages.admin.company_goals.create.private.description\": \"We've identified the skills you need to advance your career. This proposed goal will allow you to develop or strengthen them. Continuous transformation is essential for the evolution of your professional career.\",\n \"pages.admin.company_goals.create.new_private_goal\": \"Create a private goal\",\n \"pages.admin.company_goals.search.introduction\": \"New goals and challenges\",\n \"pages.admin.company_goals.search.placeholder\": \"Search goals for team\",\n \"pages.admin.company_goals.search.options.view_all\": \"All\",\n \"pages.admin.company_goals.search.options.view_visibility\": \"Visibility\",\n \"pages.admin.company_goals.search.options.view_public\": \"Public\",\n \"pages.admin.company_goals.search.options.view_private\": \"Private\",\n \"pages.admin.company_goals.search.options.view_application_phase\": \"Application phase\",\n \"pages.admin.company_goals.search.options.view_application_phase_open\": \"Open\",\n \"pages.admin.company_goals.search.options.view_application_phase_closed\": \"Closed\",\n \"pages.admin.company_goals.search.options.view_finished\": \"Finished\",\n \"pages.admin.company_goals.search.options.view_draft\": \"Draft\",\n \"pages.admin.company_goals.search.options.view_launched\": \"Launched\",\n \"pages.admin.company_goals.search.options.view_published\": \"Published\",\n \"pages.admin.company_goals.search.options.view_status\": \"Status\",\n \"pages.admin.company_goals.search.order.start_date_asc\": \"Start date (asc)\",\n \"pages.admin.company_goals.search.order.start_date_desc\": \"Start date (desc)\",\n \"pages.admin.company_goals.search.order.end_date_asc\": \"End date (asc)\",\n \"pages.admin.company_goals.search.order.end_date_desc\": \"End date (desc)\",\n \"pages.admin.company_goals.search.order.title_asc\": \"Title (asc)\",\n \"pages.admin.company_goals.search.order.title_desc\": \"Title (desc)\",\n \"pages.admin.company_goals.new_goal\": \"Add new goal\",\n \"pages.admin.company_goals.last_updated\": \"Last update, {date}\",\n \"pages.admin.company_goals.goal_dates\": \"Goal dates: {start} - {end}\",\n \"pages.admin.company_goals.goal\": \"Goal team\",\n \"pages.admin.company_goals.save\": \"Save team and goal\",\n \"pages.admin.company_goals.skills\": \"{number} skills\",\n \"pages.admin.company_goals.education\": \"{number} education\",\n \"pages.admin.company_goals.languages\": \"{number} languages\",\n \"pages.admin.company_goals.delete_goal.title\": \"Delete goal: {name}\",\n \"pages.admin.company_goals.delete_goal.description\": \"You are going to delete the selected goal \\\"{name}\\\". All the progress and information about this one will disappear and this action cannot be undone. Are you sure you want to continue?\",\n \"pages.admin.company_goals.delete_goal.successfully_deleted\": \"Goal was successfully deleted\",\n \"pages.admin.company_goals.add_new_goal.title\": \"New goal\",\n \"pages.admin.company_goals.add_new_goal.fields.title.label\": \"Title\",\n \"pages.admin.company_goals.add_new_goal.fields.title.placeholder\": \"Enter the title of the goal or challenge\",\n \"pages.admin.company_goals.add_new_goal.fields.description.label\": \"Description of the goal\",\n \"pages.admin.company_goals.add_new_goal.fields.description.placeholder\": \"Type here a brief description\",\n \"pages.admin.company_goals.add_new_goal.fields.link.label\": \"Link with more information\",\n \"pages.admin.company_goals.add_new_goal.fields.link.placeholder\": \"Add a link with more information\",\n \"pages.admin.company_goals.add_new_goal.fields.number_of_people_needed.label\": \"Number of people needed\",\n \"pages.admin.company_goals.add_new_goal.fields.country.label\": \"Country\",\n \"pages.admin.company_goals.add_new_goal.fields.country.placeholder\": \"Enter country\",\n \"pages.admin.company_goals.add_new_goal.fields.city.label\": \"City\",\n \"pages.admin.company_goals.add_new_goal.fields.city.placeholder\": \"Enter city\",\n \"pages.admin.company_goals.add_new_goal.fields.application_closing.label\": \"Application closing\",\n \"pages.admin.company_goals.add_new_goal.fields.is_open.label\": \"Goal open for applications\",\n \"pages.admin.company_goals.add_new_goal.fields.start.label\": \"Start\",\n \"pages.admin.company_goals.add_new_goal.fields.end.label\": \"End\",\n \"pages.admin.company_goals.add_new_goal.fields.status.label\": \"Goal open for applications\",\n \"pages.admin.company_goals.add_new_goal.fields.picture.label\": \"Choose a picture for the cover\",\n \"pages.admin.company_goals.add_new_goal.fields.picture.upload\": \"Upload picture\",\n \"pages.admin.company_goals.add_new_goal.fields.skills_needed\": \"Skills needed\",\n \"pages.admin.company_goals.add_new_goal.path.overview\": \"Overview\",\n \"pages.admin.company_goals.add_new_goal.path.general_skills\": \"General skills\",\n \"pages.admin.company_goals.add_new_goal.path.general_skills.description\": \"Please choose the General Skills required for the goal\",\n \"pages.admin.company_goals.add_new_goal.path.language_skills\": \"Language skills\",\n \"pages.admin.company_goals.add_new_goal.path.language_skills.description\": \"Please choose the Language Skills required for the goal\",\n \"pages.admin.company_goals.add_new_goal.save\": \"Publish\",\n \"pages.admin.company_goals.add_new_goal.successfully_created\": \"Goal has been successfully created\",\n \"pages.admin.company_goals.add_new_goal.successfully_updated\": \"Goal has been successfully updated\",\n \"pages.admin.company_goals.add_new_goal.confirm_publish.title\": \"Confirm publishing\",\n \"pages.admin.company_goals.add_new_goal.confirm_publish.description\": \"You are going to publish the goal. After this point, you won't be able to edit some of the fields. Please continue only if you are sure goal is ready.\",\n \"pages.admin.company_goals.edit_goal.fields.title.label\": \"Title\",\n \"pages.admin.company_goals.edit_goal.fields.title.placeholder\": \"Enter the title of the goal or challenge\",\n \"pages.admin.company_goals.edit_goal.fields.description.label\": \"Description of the goal\",\n \"pages.admin.company_goals.edit_goal.fields.description.placeholder\": \"Type here a brief description\",\n \"pages.admin.company_goals.edit_goal.fields.number_of_people_needed.label\": \"Number of people needed\",\n \"pages.admin.company_goals.edit_goal.fields.country.label\": \"Country\",\n \"pages.admin.company_goals.edit_goal.fields.city.label\": \"City\",\n \"pages.admin.company_goals.edit_goal.fields.link.label\": \"Link with more information\",\n \"pages.admin.company_goals.edit_goal.fields.link.placeholder\": \"Add a link with more information\",\n \"pages.admin.company_goals.edit_goal.fields.application_closing.label\": \"Application closing\",\n \"pages.admin.company_goals.edit_goal.fields.is_open.label\": \"Goal is open for applications\",\n \"pages.admin.company_goals.edit_goal.fields.is_not_open.label\": \"Goal is not open for applications\",\n \"pages.admin.company_goals.edit_goal.fields.start.label\": \"Start\",\n \"pages.admin.company_goals.edit_goal.fields.end.label\": \"End\",\n \"pages.admin.company_goals.edit_goal.save\": \"Save\",\n \"pages.admin.company_goals.edit_goal.successfully_edited\": \"Goal has been successfully edited\",\n \"pages.admin.company_goals.detail_goals.more_information\": \"More information\",\n \"pages.admin.company_goals.detail_goals.progress\": \"Team's goal progress\",\n \"pages.admin.company_goals.detail_goals.team_skills.title\": \"Percentage of adaptation to the objective\",\n \"pages.admin.company_goals.detail_goals.team_skills.skills\": \"Skills\",\n \"pages.admin.company_goals.detail_goals.team_skills.skills.description\": \"More than 80% of skills is considered a good ratio to achieve the proposed objectives. Below 50% it is advisable to recruit or replace members with others with the specific skills needed.\",\n \"pages.admin.company_goals.goal_detail.add_team_member\": \"Add a team member from the applicants list\",\n \"pages.admin.company_goals.goal_detail.ai_selected_candidate\": \"The AI have chosen a team automatically but you can edit it manually. The goal won't start until you validate the team.\",\n \"pages.admin.company_goals.goal_detail.ai_will_filter_candidates\": \"Just finished the application date, the AI engine will filter the applicants automatically to select the ones who are the best choice. So then, you will see only the applicants number needed to create the team for the goal.\",\n \"pages.admin.company_goals.goal_detail.application_phase.tag.closed\": \"Closed\",\n \"pages.admin.company_goals.goal_detail.application_phase.tag.draft\": \"Draft\",\n \"pages.admin.company_goals.goal_detail.application_phase.tag.open\": \"Still open\",\n \"pages.admin.company_goals.goal_detail.city\": \"City\",\n \"pages.admin.company_goals.goal_detail.confirm_launch.description\": \"You are going to launch the goal. Please continue only if you are sure the goal is ready to be launched.\",\n \"pages.admin.company_goals.goal_detail.confirm_launch.title\": \"Confirm launching\",\n \"pages.admin.company_goals.goal_detail.confirm_set_result.description\": \"You are going to set the goal result. Please, continue only if you are sure the result is the correct one.\",\n \"pages.admin.company_goals.goal_detail.confirm_set_result.title\": \"Confirm {result} result\",\n \"pages.admin.company_goals.goal_detail.country\": \"Country\",\n \"pages.admin.company_goals.goal_detail.dates_candidates_application\": \"Dates for candidates application\",\n \"pages.admin.company_goals.goal_detail.dates.application\": \"application\",\n \"pages.admin.company_goals.goal_detail.dates.end\": \"Goal {title} end date\",\n \"pages.admin.company_goals.goal_detail.dates.start\": \"Goal {title} start date\",\n \"pages.admin.company_goals.goal_detail.dates.tag.closed\": \"Closed\",\n \"pages.admin.company_goals.goal_detail.dates.tag.draft\": \"Draft\",\n \"pages.admin.company_goals.goal_detail.dates.tag.in_progress\": \"In progress\",\n \"pages.admin.company_goals.goal_detail.dates.tag.stand_by\": \"Stand by\",\n \"pages.admin.company_goals.goal_detail.dates.tag.waiting_candidates\": \"Waiting for candidates\",\n \"pages.admin.company_goals.goal_detail.dates\": \"Dates for goal achievement\",\n \"pages.admin.company_goals.goal_detail.description\": \"Description\",\n \"pages.admin.company_goals.goal_detail.edit_goal\": \"Edit goal\",\n \"pages.admin.company_goals.goal_detail.employee_full_name\": \"{firstName} {lastName}\",\n \"pages.admin.company_goals.goal_detail.employees_applying\": \"Candidates who are applying\",\n \"pages.admin.company_goals.goal_detail.employees_modal.applicants\": \"{number} applicants\",\n \"pages.admin.company_goals.goal_detail.employees_modal.list_title.employee\": \"Employee\",\n \"pages.admin.company_goals.goal_detail.employees_modal.list_title.match_with_goal\": \"Matching with the goal\",\n \"pages.admin.company_goals.goal_detail.employees_modal.search.placeholder\": \"Search an employee\",\n \"pages.admin.company_goals.goal_detail.employees_modal.title\": \"Find people for the goal\",\n \"pages.admin.company_goals.goal_detail.employees_on_charge\": \"Employees on charge of this goal\",\n \"pages.admin.company_goals.goal_detail.employees_selected\": \"Selected employees\",\n \"pages.admin.company_goals.goal_detail.employees.delete.content\": \"You are going to remove this employee for the goal's team. You can select it for another goal or add it again later. Are you sure you want to continue?\",\n \"pages.admin.company_goals.goal_detail.employees.delete.title\": \"Remove employee\",\n \"pages.admin.company_goals.goal_detail.employees\": \"Employees\",\n \"pages.admin.company_goals.goal_detail.launch_goal\": \"Launch goal\",\n \"pages.admin.company_goals.goal_detail.launched_goal\": \"Launched\",\n \"pages.admin.company_goals.goal_detail.link\": \"More information\",\n \"pages.admin.company_goals.goal_detail.no_assigned_yet\": \"No employees assigned yet\",\n \"pages.admin.company_goals.goal_detail.open_for_applications\": \"Goal open for applications\",\n \"pages.admin.company_goals.goal_detail.people_needed\": \"Number of people needed\",\n \"pages.admin.company_goals.goal_detail.progress.label\": \"Team's goal progress\",\n \"pages.admin.company_goals.goal_detail.progress.no_progression.application_open\": \"The candidate application phase is still open\",\n \"pages.admin.company_goals.goal_detail.progress.no_progression.draft\": \"Goal is still in draft phase\",\n \"pages.admin.company_goals.goal_detail.progress.no_progression.team_built\": \"The team is built but goal has not started yet\",\n \"pages.admin.company_goals.goal_detail.progress.no_progression.team_not_built\": \"The team has not been built yet\",\n \"pages.admin.company_goals.goal_detail.progress.title\": \"Progress\",\n \"pages.admin.company_goals.goal_detail.published_for_applicants\": \"Published for applicants\",\n \"pages.admin.company_goals.goal_detail.result_failed\": \"The goal was a failure\",\n \"pages.admin.company_goals.goal_detail.result_not_set\": \"The goal has ended. Please select the global evaluation that best fits the final result of the goal.\",\n \"pages.admin.company_goals.goal_detail.result_succeeded\": \"The goal was a success\",\n \"pages.admin.company_goals.goal_detail.skills_needed.no_content_yet\": \"You have not provided information yet\",\n \"pages.admin.company_goals.goal_detail.skills_needed\": \"Skills needed\",\n \"pages.admin.company_goals.goal_detail.successfully_launched\": \"Goal has been successfully launched\",\n \"pages.admin.company_goals.goal_detail.successfully_result_set\": \"Goal result has been set successfully\",\n \"pages.admin.company_goals.goal_detail.team_skills\": \"Team skills\",\n \"pages.admin.internal_promotions.title\": \"Internal Promotions\",\n \"pages.admin.company_settings.title\": \"Company Settings\",\n \"pages.admin.company_settings.save\": \"Save profile\",\n \"pages.admin.company_settings.general_info.title\": \"General Information\",\n \"pages.admin.company_settings.general_info.form.name\": \"Name\",\n \"pages.admin.company_settings.general_info.form.description\": \"Description\",\n \"pages.admin.company_settings.general_info.form.feedbackEmail\": \"Feedback email\",\n \"pages.admin.company_settings.general_info.successfully_updated\": \"General company information successfully updated\",\n \"pages.admin.company_settings.general_info.chatbot.step\": \"Step\",\n \"pages.admin.company_settings.general_info.chatbot.teams.title\": \"Mr. Fleebe for Teams\",\n \"pages.admin.company_settings.general_info.chatbot.teams.download.label\": \"Mr. Chatbot\",\n \"pages.admin.company_settings.general_info.chatbot.teams.download.text\": \"Download\",\n \"pages.admin.company_settings.general_info.chatbot.teams.step.1\": \"Go to Teams Administration\",\n \"pages.admin.company_settings.general_info.chatbot.teams.step.2\": \"Upload the downloaded application.\",\n \"pages.admin.company_settings.general_info.chatbot.teams.step.3\": \"Assign permissions\",\n \"pages.admin.company_settings.general_info.chatbot.teams.step.4\": \"Take it easy... The chatbot needs time to refresh and become avaiable.\",\n \"pages.admin.company_settings.general_info.chatbot.slack.title\": \"Mr. Fleebe for Slack\",\n \"pages.admin.company_settings.general_info.chatbot.slack.add\": \"Add to Slack\",\n \"pages.admin.company_settings.general_info.chatbot.slack.step.1\": \"Click on the 'Add to Slack' button.\",\n \"pages.admin.company_settings.general_info.chatbot.slack.step.2\": \"If the slack workspace dropdown is displayed, select the desired one.\",\n \"pages.admin.company_settings.general_info.chatbot.slack.step.3\": \"Accept the conditions\",\n \"pages.admin.company_settings.azure_info.title\": \"Azure Information\",\n \"pages.admin.company_settings.azure_info.form.service_principal_id\": \"Service Principal Id\",\n \"pages.admin.company_settings.azure_info.form.service_principal_secret\": \"Service Principal Secret\",\n \"pages.admin.company_settings.azure_info.form.service_principal_secret.placeholder\": \"**************************\",\n \"pages.admin.company_settings.azure_info.form.tenant_id\": \"Tenant Id\",\n \"pages.admin.company_settings.azure_info.form.purchase_subscription_id\": \"Purchase Subscription Id\",\n \"pages.admin.company_settings.azure_info.successfully_updated\": \"Azure company information successfully updated\",\n \"pages.admin.skills.grid.name\": \"Name\",\n \"pages.admin.skills.grid.description\": \"Description\",\n \"pages.admin.skills.grid.status\": \"Status\",\n \"pages.admin.skills.grid.type\": \"Type\",\n \"pages.admin.skill_management.search_placeholder\": \"Search skills\",\n \"pages.admin.skill_management.new_skill\": \"Add new skill\",\n \"pages.admin.skill_management.filters.status.all\": \"All\",\n \"pages.admin.skill_management.filters.status.Pending\": \"Moderation pending\",\n \"pages.admin.skill_management.filters.status.Approved\": \"Approved\",\n \"pages.admin.skill_management.filters.type.all\": \"All\",\n \"pages.admin.skill_management.filters.type.General\": \"General\",\n \"pages.admin.skill_management.filters.type.Language\": \"Language\",\n \"pages.admin.skill_management.search_show_all_skills\": \"All\",\n \"pages.admin.skill_management.skill_requester_name\": \"Requester\",\n \"pages.admin.skill_management.skill_moderator_name\": \"Moderator\",\n \"pages.admin.skill_management.grid.no_results\": \"There are no skills with this filter\",\n \"pages.admin.skill_management.skill_status.Pending\": \"Pending Moderation\",\n \"pages.admin.skill_management.skill_status.Approved\": \"Approved\",\n \"pages.admin.skill_management.edit_skill\": \"Edit Skill\",\n \"pages.admin.skill_management.delete\": \"Delete skill\",\n \"pages.admin.skill_management.moderate\": \"Moderate\",\n \"pages.admin.skill_management.confirm_to_delete\": \"If you delete the skill, it will be deleted the skill and the employee request. Do you want to proceed?\",\n \"pages.admin.skill_management.validated_effects.title\": \"Skill validated\",\n \"pages.admin.skill_management.validated_effects.text\": \"The skill has been validated. From now, employees can select it to complete their curriculum\",\n \"pages.admin.skill_management.noContentYet\": \"No content yet\",\n \"pages.admin.talent_detection.chart.no_content\": \"We don't have enough information to create the chart\",\n \"pages.admin.talent_detection.chart.by_age\": \"By age\",\n \"pages.admin.talent_detection.chart.by_group\": \"By group\",\n \"pages.admin.talent_detection.employee_motivation.search.placeholder\": \"Search\",\n \"pages.admin.talent_detection.employee_motivation.title.employee\": \"Employee\",\n \"pages.admin.talent_detection.employee_motivation.title.motivation\": \"Motivation\",\n \"pages.admin.talent_detection.employee_motivation.title\": \"Employees motivational range\",\n \"pages.admin.talent_detection.employees.no_content\": \"There's no selected content yet\",\n \"pages.admin.talent_detection.employees_group.title\": \"{n} employee {group} in {category} | {n} employees {group} in {category}\",\n \"pages.admin.talent_detection.employees_age.title.age_from\": \"{n} employee in {category} (from {from} years old) | {n} employees in {category} (from {from} years old)\",\n \"pages.admin.talent_detection.employees_age.title.age_to\": \"{n} employee in {category} (to {to} years old) | {n} employees in {category} (to {to} years old)\",\n \"pages.admin.talent_detection.employees_age.title.age_range\": \"{n} employee in {category} (from {from} to {to} years old) | {n} employees in {category} (from {from} to {to} years old)\",\n \"pages.admin.talent_detection.employees_age.title.age_all\": \"{n} employee in {category} | {n} employees in {category}\",\n \"pages.admin.talent_detection.search\": \"Search a hobby\",\n \"pages.admin.talent_detection.tip.content\": \"When chart is finally built, click on the colored areas to see how employees relate to the selected hobbies.\",\n \"pages.admin.talent_detection.tip.title\": \"Main hidden hobbies\",\n \"pages.admin.talent_detection.title\": \"Talent Detection\",\n \"pages.admin.talent_detection.view_motivation\": \"View all employees\",\n \"pages.admin.learning.title\": \"Learning in the Company\",\n \"pages.admin.learning.title.short\": \"Learning\",\n \"pages.admin.learning.search_placeholder\": \"Search trainings\",\n \"pages.admin.learning.create_new_learning_form.title\": \"Create the training your company needs\",\n \"pages.admin.learning.create_new_learning_form.description\": \"If it's necessary, you can also create courses that suit your company's needs.\",\n \"pages.admin.learning.create_new_learning_form.new_learning\": \"Add training\",\n \"pages.admin.learning.create_new_learning_form.successfully_created\": \"The training has been successfully created\",\n \"pages.admin.learning.form.create\": \"Add new training\",\n \"pages.admin.learning.form.edit\": \"Edit training\",\n \"pages.admin.learning.form.fields.title.label\": \"Title\",\n \"pages.admin.learning.form.fields.title.placeholder\": \"Title of the training\",\n \"pages.admin.learning.form.fields.description.label\": \"Description\",\n \"pages.admin.learning.form.fields.description.placeholder\": \"Type here\",\n \"pages.admin.learning.form.fields.startDate.label\": \"Start date\",\n \"pages.admin.learning.form.fields.endDate.label\": \"End date\",\n \"pages.admin.learning.form.fields.level.label\": \"Level\",\n \"pages.admin.learning.form.fields.duration.label\": \"Duration (hours)\",\n \"pages.admin.learning.form.fields.topics.label\": \"Topics (separated by commas)\",\n \"pages.admin.learning.form.fields.topics.placeholder\": \"Type topics\",\n \"pages.admin.learning.form.fields.onsiteInformation.label\": \"On-site information\",\n \"pages.admin.learning.form.fields.onsiteCountry.label\": \"Country\",\n \"pages.admin.learning.form.fields.onsiteCountry.placeholder\": \"Enter country\",\n \"pages.admin.learning.form.fields.onsiteCity.label\": \"City\",\n \"pages.admin.learning.form.fields.onsiteCity.placeholder\": \"Enter city\",\n \"pages.admin.learning.form.fields.onsiteAddress.label\": \"Address\",\n \"pages.admin.learning.form.fields.onsiteAddress.placeholder\": \"Enter address\",\n \"pages.admin.learning.form.fields.onsiteFloor.label\": \"Floor\",\n \"pages.admin.learning.form.fields.onsiteFloor.placeholder\": \"Enter floor\",\n \"pages.admin.learning.form.fields.onsiteRoom.label\": \"Room\",\n \"pages.admin.learning.form.fields.onsiteRoom.placeholder\": \"Enter room\",\n \"pages.admin.learning.form.fields.onsiteSchedule.label\": \"Schedule\",\n \"pages.admin.learning.form.fields.onsiteSchedule.placeholder\": \"Enter schedule\",\n \"pages.admin.learning.form.fields.onsiteStartTime.label\": \"Start time\",\n \"pages.admin.learning.form.fields.onsiteEndTime.label\": \"End time\",\n \"pages.admin.learning.form.fields.attachment.label\": \"Attach image cover\",\n \"pages.admin.learning.form.fields.courseUrl.title\": \"Type here the URL of the course\",\n \"pages.admin.learning.form.fields.courseUrl.description\": \"Contact the provider to obtain a valid link for the course.\",\n \"pages.admin.learning.form.fields.courseUrl.label\": \"Url of the training\",\n \"pages.admin.learning.form.fields.courseUrl.placeholder\": \"E.g. https://www.training.com/course/name-of-the-course/\",\n \"pages.admin.learning.form.save\": \"Create training\",\n \"pages.admin.learning.form.fields.language.label\": \"Language\",\n \"pages.admin.learning.form.languages.english\": \"English\",\n \"pages.admin.learning.form.languages.spanish\": \"Spanish\",\n \"pages.admin.learning.prompt.delete.title\": \"Delete course\",\n \"pages.admin.learning.prompt.delete.description\": \"You are going to delete this course. This action cannot be undone. Are your sure you want to continue?\",\n \"shared.close\": \"Close\",\n \"shared.languages.english\": \"English\",\n \"shared.languages.en\": \"English\",\n \"shared.languages.spanish\": \"Spanish\",\n \"shared.languages.es\": \"Spanish\",\n \"shared.languages.fr\": \"French\",\n \"shared.languages.french\": \"French\",\n \"shared.languages.german\": \"German\",\n \"shared.languages.italian\": \"Italian\",\n \"shared.languages.portuguese\": \"Portuguese\",\n \"shared.app_tag.no_content_yet\": \"You have not provided information yet\",\n \"shared.today\": \"Today\",\n \"shared.yesterday\": \"Yesterday\",\n \"shared.lastUpdate\": \"Last update\",\n \"shared.not_available\": \"N/A\",\n \"shared.yes\": \"Yes\",\n \"shared.no\": \"No\",\n \"shared.back\": \"Back\",\n \"shared.results\": \"{n} result | {n} results\",\n \"shared.resultsFor\": \"{n} Result For '{name}' | {n} Results For '{name}'\",\n \"shared.applicants\": \"{n} applicant | {n} applicants\",\n \"shared.assigned\": \"{n} employee assigned | {n} employees assigned\",\n \"shared.attachment.label\": \"Choose a file to upload\",\n \"shared.time.minutes\": \"{time} min\",\n \"shared.time.hours\": \"{time} h\",\n \"shared.are_you_sure\": \"Are your sure you want to continue?\",\n \"pages.admin.employee_roles.search_placeholder\": \"Search by name, surname or email\",\n \"pages.admin.admin_roles.roles.grid.email\": \"Email\",\n \"pages.admin.admin_roles.roles.grid.name\": \"Name\",\n \"pages.admin.admin_roles.roles.grid.surname\": \"Surname\",\n \"pages.admin.admin_roles.roles.grid.role\": \"Role\",\n \"pages.admin.admin_roles.roles.grid.role.Administrator\": \"Administrator\",\n \"pages.admin.admin_roles.roles.grid.role.ITManager\": \"IT Manager\",\n \"pages.admin.admin_roles.roles.grid.role.User\": \"User\",\n \"pages.admin.admin_roles.roles.grid.role.all\": \"All\",\n \"pages.goals_challenges.details.is_open.label\": \"Goal open for applications\",\n \"pages.goals_challenges.details.people_needed.label\": \"People needed\",\n \"pages.goals_challenges.details.country.label\": \"Country\",\n \"pages.goals_challenges.details.city.label\": \"City\",\n \"pages.goals_challenges.details.start_date.label\": \"Goal start date\",\n \"pages.goals_challenges.details.end_date.label\": \"Goal end date\",\n \"pages.goals_challenges.details.my_progress.label\": \"Goal progress\",\n \"pages.goals_challenges.details.coworkers_with_this_goal.label\": \"Coworker with this goal | Coworkers with this goal\",\n \"pages.goals_challenges.details.participate\": \"Participate\",\n \"pages.goals_challenges.details.reject\": \"Reject\",\n \"pages.goals_challenges.details.reject_application\": \"Reject my application\",\n \"pages.goals_challenges.details.colleagues_registered\": \"{n} colleague registered | {n} colleagues registered\",\n \"pages.my_groups.title\": \"My Groups\",\n \"pages.my_groups.search.placeholder\": \"Search for employees\",\n \"pages.my_groups.grid.actions.view_profile\": \"View profile\",\n \"pages.my_groups.view_questions\": \"View questions\",\n \"shared.company_groups_questions.title\": \"Questions\",\n \"shared.company_groups_questions.subtitle\": \"Survey Questions\",\n \"shared.company_groups_questions.created_questions\": \"Created questions\",\n \"shared.company_groups_questions.sent_questions\": \"Sent questions\",\n \"shared.company_groups_questions.search.placeholder\": \"Search questions\",\n \"shared.company_groups_questions.add_new_question\": \"Add new question\",\n \"shared.company_groups_questions.remove\": \"Delete questions\",\n \"shared.company_groups_questions.send\": \"Send questions\",\n \"shared.company_groups_questions.view_kpis\": \"View KPIs\",\n \"shared.company_groups_questions.view_questions\": \"View Questions\",\n \"shared.company_groups_questions.tip.title\": \"New questions\",\n \"shared.company_groups_questions.tip.content\": \"Your employees are talented, therefore their opinion is valuable. Create here a form to get your feedback.\",\n \"shared.company_groups_questions.grid.field.question\": \"Question\",\n \"shared.company_groups_questions.grid.field.answeredPercentage\": \"Participation (%)\",\n \"shared.company_groups_questions.grid.field.send_date\": \"Send date\",\n \"shared.company_groups_questions.grid.actions.remove\": \"Remove question from group\",\n \"shared.company_groups_questions.grid.actions.preview\": \"Question preview\",\n \"shared.company_groups_questions.grid.actions.edit\": \"Edit question\",\n \"shared.company_groups_questions.send_to_groups.title\": \"Send questions to groups\",\n \"shared.company_groups_questions.send_to_groups.content\": \"Select the recipients you want to send the survey. Only an admin can create a recipient group. If you can't find the group you need, please contact with your Human Resources administrator.\",\n \"shared.company_groups_questions.send_to_groups.search.placeholder\": \"Search\",\n \"shared.company_groups_questions.send_to_groups.buttons.send\": \"Send\",\n \"shared.company_groups_questions.send_to_groups.fields.group_name\": \"Group name\",\n \"shared.company_groups_questions.send_to_groups.fields.people\": \"People\",\n \"shared.question_answers.title\": \"Answers to '{text}'\",\n \"shared.question_answers.search.placeholder\": \"Search\",\n \"shared.question_answers.no_answer\": \"No answer yet\",\n \"shared.question_answers.action.show\": \"Show question answers\",\n \"shared.question_answers.statistics.metric\": \"{count} of {total}\",\n \"shared.question_answers.statistics.copy\": \"People have answered\",\n \"shared.question_kpi.pin\": \"Pin this chart to view it in the dashboard\",\n \"shared.question_kpi.unpin\": \"Unpin this chart from the dashboard\",\n \"shared.question_kpi.action.show\": \"Show question KPI\",\n \"shared.question_kpi.no_answers\": \"This question has not been answered yet\",\n \"shared.employee.full_name\": \"{firstName} {lastName}\",\n \"shared.company-groups.grid.full_name\": \"Name\",\n \"shared.company-groups.grid.email\": \"Email\",\n \"shared.agree_share_information\": \"I agree to share my information with the company\",\n \"shared.skillEditor.newSkill.skill.title\": \"Can't find the skill?\",\n \"shared.skillEditor.newSkill.skill.addNewButton\": \"Add new skill\",\n \"shared.skillEditor.newSkill.language.title\": \"Can't find the language?\",\n \"shared.skillEditor.newSkill.language.addNewButton\": \"Add new language\",\n \"shared.skillEditor.skill.search\": \"Search for a skill\",\n \"shared.skillEditor.language.search\": \"Search for a language\",\n \"shared.skillEditor.skill.pendingArea\": \"Pending for approval skills:\",\n \"shared.skillEditor.language.pendingArea\": \"Pending for approval languages:\",\n \"shared.skillCreator.skill.title\": \"Create new skill\",\n \"shared.skillCreator.language.title\": \"Create new language\",\n \"shared.skillCreator.skill.hrMessage\": \"The new skill needs to be validated by HR admin.\",\n \"shared.skillCreator.language.hrMessage\": \"The new language needs to be validated by HR admin.\",\n \"shared.skillCreator.form.skill_type_label\": \"Skill type\",\n \"shared.skillCreator.form.description\": \"Description\",\n \"shared.skillCreator.form.name\": \"Name\",\n \"shared.skillCreator.form.skill.createButton\": \"Create Skill\",\n \"shared.skillCreator.form.language.createButton\": \"Create Language\",\n \"shared.table.rows_per_page\": \"Rows per page \",\n \"shared.table.go_to_first_page\": \"Go to first page\",\n \"shared.table.go_to_previous_page\": \"Go to previous page\",\n \"shared.table.go_to_next_page\": \"Go to next page\",\n \"shared.table.go_to_last_page\": \"Go to last page\",\n \"shared.tips.title\": \"Tip\",\n \"shared.tips.dismiss\": \"Got it\",\n \"shared.reminder.title\": \"Kind Reminder\",\n \"shared.feedback-sender.feedback-button\": \"Feedback\",\n \"shared.feedback-sender.bug-button\": \"Bug\",\n \"shared.feedback-sender.feedback-message\": \"Please write your feedback here. Thank you very much.\",\n \"shared.feedback-sender.bug-message\": \"Please specify how to reproduce this bug or include a screenshot.\",\n \"entities.goals_challenges.has_not_started\": \"The goal hasn't started yet\",\n \"entities.goals_challenges.has_finished\": \"The goal is finished\",\n \"entities.goals_challenges.no_goals_yet\": \"You don't have any goals yet\",\n \"entities.goals_challenges.employee_no_goals_yet\": \"Employee doesn't have any goals yet\",\n \"entities.learning.language\": \"Language\",\n \"entities.learning.duration\": \"Duration\",\n \"entities.learning.level\": \"Level\",\n \"entities.learning.topics\": \"Topics\",\n \"entities.learning.more_information\": \"More information\",\n \"entities.my_ideal_job.title\": \"My Ideal Job\",\n \"entities.my_ideal_job.tab.learning_path\": \"Learning path\",\n \"entities.my_ideal_job.tab.my_training\": \"My training\",\n \"entities.my_ideal_job.tab.company_training\": \"Company training\",\n \"entities.my_ideal_job.general_skills\": \"Skills\",\n \"entities.my_ideal_job.languages\": \"Languages\",\n \"entities.my_ideal_job.tip.content\": \"What would be your ideal job right now? Complete it here to be guided in achieving your goals!\",\n \"entities.my_ideal_job.add_job\": \"Add ideal job\",\n \"entities.my_ideal_job.update_job\": \"Update your ideal job\",\n \"entities.my_ideal_job.fields.title\": \"Title\",\n \"entities.my_ideal_job.fields.title.placeholder\": \"Add a title for your ideal job\",\n \"entities.my_ideal_job.fields.description\": \"Description\",\n \"entities.my_ideal_job.fields.description.placeholder\": \"Add a description for your ideal job\",\n \"entities.my_ideal_job.recommended_learning\": \"Recommended Learning\",\n \"entities.my_interests.hobbies\": \"Hobbies\",\n \"entities.my_interests.add-hobbies\": \"Edit hobbies\",\n \"entities.my_interests.hobbies.category\": \"Category\",\n \"entities.my_interests.hobbies.edit-modal.title\": \"Hobbies\",\n \"entities.my_interests.hobbies.edit-modal.search\": \"Search for a hobby\",\n \"entities.my_interests.hobbies.edit-modal.needNew\": \"Can't find the hobby?\",\n \"entities.my_interests.hobbies.edit-modal.newButton\": \"Add new hobby\",\n \"entities.my_interests.hobbies.hobbies-creator.title\": \"Create new hobby\",\n \"entities.my_interests.hobbies.hobbies-creator.createButton\": \"Create Hobby\",\n \"entities.my_interests.hobbies.hobbies-creator.form.name\": \"Name\",\n \"entities.my_interests.hobbies.category.sport\": \"Sport\",\n \"entities.my_interests.hobbies.category.music\": \"Music\",\n \"entities.my_interests.hobbies.category.culture\": \"Culture\",\n \"entities.my_interests.hobbies.category.technology\": \"Technology\",\n \"entities.my_interests.hobbies.category.others\": \"Other\",\n \"entities.my_interests.hobbies.no_hobbies\": \"No hobbies defined\",\n \"entities.my_interests.hobbies.age\": \"Age\",\n \"entities.skills.Low\": \"Low\",\n \"entities.skills.Medium\": \"Medium\",\n \"entities.skills.High\": \"High\",\n \"entities.courses.level.empty\": \"--\",\n \"entities.courses.level.1\": \"Beginner\",\n \"entities.courses.level.2\": \"Advanced\",\n \"entities.courses.level.3\": \"Expert\",\n \"level_KPI.x.title\": \"Votes\",\n \"pages.admin.company_settings.employee_groups.title\": \"Employee Groups\",\n \"pages.admin.company_settings.role_management.title\": \"Roles\",\n \"pages.admin.company_settings.skill_management.title\": \"Skills\",\n \"pages.admin.company_settings.chatbot.title\": \"Mr. Fleebe\",\n \"pages.admin.company_settings.employee_groups.search_placeholder\": \"Search Employee Groups\",\n \"pages.admin.company_settings.employee_groups.new_group\": \"Add new Group\",\n \"pages.admin.company_settings.employee_groups.fields.name\": \"Name\",\n \"pages.admin.company_settings.employee_groups.fields.description\": \"Description\",\n \"pages.admin.company_settings.employee_groups.fields.people\": \"People\",\n \"pages.admin.company_settings.employee_groups.fields.courses\": \"Learning\",\n \"pages.admin.company_settings.employee_groups.fields.employee-count\": \"no people | {n} people | {n} people\",\n \"pages.admin.company_settings.employee_groups.fields.course-count\": \"no learning | {n} learning | {n} learning\",\n \"pages.admin.company_settings.employee_groups.no_results\": \"There are no groups with this filter\",\n \"pages.admin.company_settings.employee_groups.delete.title\": \"Delete Employee Group\",\n \"pages.admin.company_settings.employee_groups.delete.description\": \"You are going to delete this employee group. This action cannot be undone. Are your sure you want to continue?\",\n \"pages.admin.company_settings.employee_groups.editor.title\": \"Edit Employee Group\",\n \"pages.admin.company_settings.employee_groups.editor.new_group\": \"New group\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.title\": \"Import employee list\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.tip.title\": \"How to import a group.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.tip.description\": \"Import a document of a valid format. The first column must be 'Email' and should contain the emails of the employees you want in the group.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.no_email_column_error.title\": \"No Column Named Email.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.no_email_column_error.description\": \"There must be a column named 'Email'.
To name a column, the first row in the column must be 'Email'. Please upload a new document with this column name.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.not_all_are_emails_error.title\": \"All Values Are Not Emails.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.not_all_are_emails_error.description\": \"Not all the values under the 'Email' column are a valid email:

{notValidEmails}

Please check the format.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.emails_not_matched.title\": \"Emails Not Found.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.emails_not_matched.description\": \"The following emails where not found between the employees:

{notFoundEmails}

Other emails where added to the group.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.all_emails_matched.title\": \"Employees Added to Group.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.all_emails_matched.description\": \"All the employees were added to the group.\",\n \"pages.admin.company_settings.employee_groups.editor.search_placeholder\": \"Search for employees\",\n \"pages.admin.company_settings.employee_groups.editor.selected_employees\": \"Employees selected {n} of {count}\",\n \"pages.admin.company_settings.employee_groups.editor.grid.actions.manage\": \"Manage\",\n \"pages.admin.company_settings.employee_groups.role.Manager\": \"Manager\",\n \"pages.admin.company_settings.employee_groups.role.Viewer\": \"Viewer\",\n \"pages.admin.company_settings.employee_groups.role.all\": \"All\",\n \"pages.admin.company_settings.employee_groups.tabs.employees\": \"Employees\",\n \"pages.admin.company_settings.employee_groups.tabs.questions\": \"Questions\",\n \"pages.admin.company_settings.employee_groups.tabs.learning\": \"Learning\",\n \"pages.admin.company_settings.employee_groups.manage.title.Employees\": \"Current Group Employees and Roles\",\n \"pages.admin.company_settings.employee_groups.manage.title.Questions\": \"Questions Management\",\n \"pages.admin.company_settings.employee_groups.manage.title.Learning\": \"Learning Assigned to This Group\",\n \"pages.admin.company_settings.employee_groups.manage.learning.select_training\": \"Select training\",\n \"pages.admin.company_settings.employee_groups.manage.learning.add_training\": \"Add new training\",\n \"pages.admin.company_settings.employee_groups.manage.learning.no_content\": \"No content yet\",\n \"pages.admin.company_settings.employee_groups.manage.learning.search.placeholder\": \"Search courses for this group\",\n \"pages.admin.company_settings.employees-with-groups.title\": \"Permissions Management\",\n \"pages.admin.company_settings.employees-with-groups.search_placeholder\": \"Search for employees\",\n \"pages.admin.company_settings.employees-with-groups.fields.first-name\": \"Name\",\n \"pages.admin.company_settings.employees-with-groups.fields.last-name\": \"Surname\",\n \"pages.admin.company_settings.employees-with-groups.fields.email\": \"Email\",\n \"pages.admin.company_settings.employees-with-groups.fields.group-count\": \"Groups\",\n \"pages.admin.company_settings.employees-with-groups.group-count\": \"{n} group| {n} groups\",\n \"pages.admin.company_settings.employees-with-groups.actions.edit\": \"Edit group\",\n \"pages.admin.company_settings.employees-with-groups.actions.manage\": \"Manage group\"\n}","{\n \"buttons.next\": \"Siguiente\",\n \"buttons.previous\": \"Anterior\",\n \"buttons.edit\": \"Editar\",\n \"buttons.answer\": \"Responder\",\n \"buttons.save\": \"Guardar\",\n \"buttons.delete\": \"Eliminar\",\n \"buttons.add\": \"Agregar\",\n \"buttons.create\": \"Nuevo\",\n \"buttons.cancel\": \"Cancelar\",\n \"buttons.continue\": \"Continuar\",\n \"buttons.save_draft\": \"Guardar como borrador\",\n \"buttons.publish\": \"Publicar\",\n \"buttons.download\": \"Descargar\",\n \"actions.saved\": \"Información guardada correctamente\",\n \"avatar.initials\": \"{first}{last}\",\n \"skill_range.skill_names.low\": \"Bajo\",\n \"skill_range.skill_names.medium\": \"Medio\",\n \"skill_range.skill_names.high\": \"Alto\",\n \"roles.user\": \"Empleado\",\n \"roles.groupmanager\": \"Mánager de grupo\",\n \"roles.administrator\": \"Administrador\",\n \"roles.itmanager\": \"IT Mánager\",\n \"errors.DateShouldBeGreaterThanOrEqualToToday\": \"La fecha debe ser hoy o más tarde\",\n \"errors.BirthDateOutOfRange\": \"Fecha no válida\",\n \"errors.CompanyEmployeeGroupCourseAlreadyAssigned\": \"El curso ya ha sido asignado a este grupo\",\n \"errors.CompanyEmployeeGroupEmployeeNotFound\": \"No se encontró al empleado. Por favor, actualice la página\",\n \"errors.CompanyEmployeeGroupExistsWithName\": \"Ya existe un grupo con ese nombre.\",\n \"errors.CompanyEmployeeGroupNotFound\": \"No se encontró el grupo de empleados. Por favor, actualice la página\",\n \"errors.CompanyEmployeeGroupsNotFound\": \"No se encontraron varios grupos de empleados\",\n \"errors.CourseNotFound\": \"Curso no encontrado\",\n \"errors.CompanyNotFound\": \"Compañía no encontrada\",\n \"errors.EmployeeAlreadyAssigned\": \"El empleado seleccionado ya está asignado al objetivo\",\n \"errors.EmployeesCannotBeAddedToAnEndedGoal\": \"Los empleados no pueden ser asignados a un objetivo finalizado\",\n \"errors.EmployeesCannotBeRemovedFromAnEndedGoal\": \"No se puede desasignar a los empleados de un objetivo finalizado\",\n \"errors.ErrorWhileConnectingToAzure\": \"No se pudo realizar la conexión a Azure con los datos proporcionados. Confirme que el ID de cliente y el secreto son correctos.\",\n \"errors.ExpectedLinkedinFilesWereNotFound\": \"No se encontraron los archivos esperados de LinkedIn. Por favor, asegúrese de que existen archivos de 'Educación', 'Idiomas', 'Posiciones', 'Perfil' o 'Habilidades'\",\n \"errors.FieldRequired\": \"Campo obligatorio\",\n \"errors.FileExtensionNotSupported\": \"La extensión de archivo no es compatible\",\n \"errors.FileSizeExceeded\": \"Tamaño de archivo excedido\",\n \"errors.GoalCannotBeLaunchedAfterItStarted\": \"Por favor, actualice la 'Fecha de inicio del objetivo' con una fecha igual o futura que la actual\",\n \"errors.GoalCannotBeLaunchedWhileApplicationIsOpen\": \"La fase de aplicación sigue abierta. Por favor, espere a que finalice la fase de solicitud antes de lanzar el objetivo\",\n \"errors.GoalCannotBeLaunchedWithFewerPeopleThanNeeded\": \"El número de personas asignadas es menor de lo necesario. Por favor, asigne más personas antes de lanzar el objetivo\",\n \"errors.GoalPeopleCannotBeGreaterThanTheNumberOfPeopleNeeded\": \"No se puede superar el número de personas necesarias\",\n \"errors.GoalResultCannotBeSetUntilItEnds\": \"El resultado del objetivo no se puede establecer hasta que finalice\",\n \"errors.GoalResultCannotBeUpdated\": \"El resultado del objetivo ya se ha establecido y no se puede actualizar\",\n \"errors.GoalsFinishedCannotBeUpdated\": \"Los objetivos finalizados no pueden actualizarse\",\n \"errors.GoalStartDateNotValid\": \"Fecha de inicio no válida\",\n \"errors.GoalEndDateNotValid\": \"Fecha de fin no válida\",\n \"errors.HobbyAlreadyExistWithName\": \"Ya existe un hobby con ese nombre.\",\n \"errors.IdealLearningAlreadyExistsWithTitle\": \"Ya existe una formación con ese título\",\n \"errors.InterestAlreadyExistsWithTitle\": \"Ya existe un interés con ese título\",\n \"errors.LearningStartDateNotValid\": \"La fecha de inicio no es válida\",\n \"errors.QuestionIsAlreadyPublished\": \"La pregunta ya está publicada\",\n \"errors.QuestionNotFound\": \"No se encontró la pregunta\",\n \"errors.QuestionNotFoundCannotBeAnswered\": \"No se encontró la pregunta. Por favor, actualice la página\",\n \"errors.QuestionsWithAnswersCannotBeUpdated\": \"Las preguntas con respuestas no se pueden actualizar\",\n \"errors.QuestionsNotFound\": \"No se encontraron algunas preguntas\",\n \"errors.RequestNotFound\": \"No se encontró la habilidad solicitada. Por favor, actualice la página\",\n \"errors.SkillAlreadyBeingCreatedWithName\": \"Se está creando una habilidad con ese nombre.\",\n \"errors.SkillAlreadyExistWithName\": \"Ya existe una habilidad con ese nombre.\",\n \"errors.UnexpectedFileFormat\": \"Se encontró un formato de archivo inesperado\",\n \"errors.UnknownError\": \"Error desconocido\",\n \"errors.UsersInAzureAdExceedsPurchasedUsers\": \"El número de usuarios encontrados en Azure Active Directory supera el número de usuarios comprados\",\n \"errors.EmployeeNotFound\": \"No se encontró al empleado\",\n \"inputs.a_date_has_to_be_after_another_date\": \"la fecha '{first}' debe ser posterior a la fecha '{second}'\",\n \"inputs.date_less_than_or_equal_to_today\": \"La fecha debe ser anterior o igual a hoy\",\n \"inputs.date_today_or_later\": \"La fecha debe ser hoy o más tarde\",\n \"inputs.DateNotValid\": \"Fecha no válida\",\n \"inputs.educationMode.label\": \"Modo\",\n \"inputs.educationMode.online.label\": \"En línea\",\n \"inputs.educationMode.presence.label\": \"In situ\",\n \"inputs.end_date\": \"Fin\",\n \"inputs.max_length_exceeded\": \"El campo debe tener como máximo {maxLength} caracteres\",\n \"inputs.max_number_items_exceeded\": \"El campo debe ser como máximo {maxItems} elementos\",\n \"inputs.max_required\": \"El campo debe ser como máximo {maximum}\",\n \"inputs.min_required\": \"El campo debe ser como mínimo {minimum}\",\n \"inputs.options.required\": \"Se requiere la opción {option}\",\n \"inputs.required\": \"Campo obligatorio\",\n \"inputs.start_date\": \"Inicio\",\n \"inputs.tags.placeholder\": \"Escriba aquí para agregar...\",\n \"inputs.to_date_has_to_be_after_from_date\": \"La fecha 'hasta' debe ser posterior a la fecha 'desde'\",\n \"inputs.upload_document.invalid_extension\": \"El archivo cargado tiene una extensión no válida\",\n \"inputs.upload_document.maximum_size_MB\": \"{size} MB tamaño máximo\",\n \"inputs.upload_document.no_document_uploaded\": \"Todavía no se ha cargado ningún documento\",\n \"inputs.upload_document.prompt.delete.description\": \"Vas a eliminar este archivo. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?\",\n \"inputs.upload_document.prompt.delete.title\": \"Eliminar archivo\",\n \"inputs.upload_document.prompt.file_to_big.title\": \"Archivo demasido grande\",\n \"inputs.upload_document.prompt.file_to_big.description\": \"El archivo que intentas cargar es demasiado grande.\",\n \"inputs.upload_document.supported_types\": \"Tipos admitidos: {types}\",\n \"inputs.url_not_valid\": \"El campo debe ser una URL válida\",\n \"pages.ai_assistant.title\": \"Asistente IA\",\n \"pages.ai_assistant.header.title\": \"Preguntas a los empleados\",\n \"pages.ai_assistant.header.subtitle\": \"Bienvenido a tu asistente de IA. Tu asistente de IA te hará preguntas a través del chatbot, tus respuestas te darán información para brindarte la mejor ruta de aprendizaje y experiencia en Fleebe. Si necesitas modificar tus respuestas, puedes hacerlo aquí en cualquier momento.\",\n \"pages.ai_assistant.question.level\": \"Amplía tu respuesta o comparte tus comentarios (ya sean positivos o constructivos)\",\n \"pages.ai_assistant.question.tags\": \"Escribe tus opciones (separadas por comas o enter)\",\n \"pages.ai_assistant.no.questions\": \"Su administrador aún no ha configurado las preguntas\",\n \"pages.header.role\": \"Rol\",\n \"pages.header.goToAdministratorArea\": \"Ir al área de administrador\",\n \"pages.header.goToEmployeeArea\": \"Ir al área de empleados\",\n \"pages.header.logout\": \"Cerrar sesión\",\n \"pages.header.edit\": \"Editar\",\n \"pages.header.picture-uploader.label\": \"Elige una imagen para tu avatar\",\n \"pages.header.profile-editor.personal-information.title\": \"Información personal\",\n \"pages.header.profile-editor.personal-information.birthDate\": \"Fecha de nacimiento\",\n \"pages.header.profile-editor.app-settings.title\": \"Configuración de la aplicación\",\n \"pages.header.profile-editor.app-settings.languages.title\": \"Idioma\",\n \"pages.header.profile-editor.app-settings.languages.english\": \"English\",\n \"pages.header.profile-editor.app-settings.languages.en\": \"English\",\n \"pages.header.profile-editor.app-settings.languages.spanish\": \"Español\",\n \"pages.header.profile-editor.app-settings.languages.es\": \"Español\",\n \"pages.header.profile-editor.app-settings.languages.french\": \"Français\",\n \"pages.header.profile-editor.app-settings.languages.fr\": \"Français\",\n \"pages.header.profile-editor.app-settings.languages.german\": \"Deutsch\",\n \"pages.header.profile-editor.app-settings.languages.italian\": \"Italiano\",\n \"pages.header.profile-editor.app-settings.languages.portuguese\": \"Português\",\n \"pages.goals_challenges.title\": \"Objetivos y desafíos\",\n \"pages.goals_challenges.search.placeholder\": \"Objetivos y desafíos de búsqueda\",\n \"pages.goals_challenges.featured.title\": \"Objetivos y desafíos destacados\",\n \"pages.goals_challenges.featured.vacant_positions\": \"Solo {vacantPositions} puestos vacantes\",\n \"pages.goals_challenges.featured.days_left\": \"{days} días restantes\",\n \"pages.goals_challenges.featured.dates\": \"De {start} a {end}\",\n \"pages.goals_challenges.my.title\": \"Mis metas y desafíos\",\n \"pages.goals_challenges.my.progress\": \"Progreso\",\n \"pages.goals_challenges.my.progress_amount\": \"{progress}%\",\n \"pages.goals_challenges.no.goals\": \"Tu administración aún no ha configurado metas\",\n \"pages.learning.title\": \"Mi aprendizaje\",\n \"pages.learning.learning.tab\": \"Aprendizaje\",\n \"pages.learning.attachment.label\": \"Elige un certificado para cargar\",\n \"pages.learning.search\": \"Buscar\",\n \"pages.learning.search.no_results\": \"No hay cursos con este filtro\",\n \"pages.learning.search.no_copy\": \"No copiamos ™tus búsquedas. Esta es un área privada.\",\n \"pages.learning.search.title\": \"Resultados de búsqueda para {searchTerm}\",\n \"pages.learning.featured.title\": \"Aprendizaje destacado para ti\",\n \"pages.learning.filter.type.title\": \"Tipo\",\n \"pages.learning.filter.type.all\": \"Todos\",\n \"pages.learning.filter.type.CourseCoursera\": \"Coursera\",\n \"pages.learning.filter.type.CourseEdX\": \"edX\",\n \"pages.learning.filter.type.CourseLinkedInLearning\": \"LinkedIn\",\n \"pages.learning.filter.type.CourseIntefi\": \"Intefi\",\n \"pages.learning.filter.type.CourseCompany\": \"Formación interna\",\n \"pages.learning.mode.online\": \"en línea\",\n \"pages.learning.mode.onsite\": \"in situ\",\n \"pages.learning.rateTitle\": \"Califica esta formación\",\n \"pages.learning.rateObservations.placeHolder\": \"Es ™muy importante para nosotros obtener tus comentarios para personalizar nuestra plataforma de aprendizaje con los mejores cursos adaptados a usted.\",\n \"pages.learning.sendTraining\": \"Enviar formación\",\n \"pages.learning.trainingComplete\": \"Formación completada\",\n \"pages.learning.confirmSetTrainingAsComplete.title\": \"Establecer entrenamiento como completado\",\n \"pages.learning.confirmSetTrainingAsComplete.text\": \"Vas a establecer un entrenamiento como completado. Esta acción no se puede deshacer, así que asegúrate de que sea correcta.\",\n \"pages.learning.goToTheTraining\": \"Ir a la formación\",\n \"pages.learning.certificateReminder\": \"Si tienes algún certificado o diploma que acredite una capacitación terminada, recuerda agregarlo a tu experiencia actual.\",\n \"pages.learning.siteInformation.title\": \"Información de la formación in situ\",\n \"pages.learning.tip.content\": \"Cuanta más información proporciones a Fleebe Corporate: CV, interés, trabajo ideal ... , más precisa será la recomendación de tu asistente de IA para guiarte hacia tus aspiraciones futuras.\",\n \"pages.learning.my_learning_path.title\": \"Mi ruta de aprendizaje\",\n \"pages.learning.my_learning_path.tab\": \"Mi ruta de aprendizaje\",\n \"pages.learning.my_learning_path.introduction.title\": \" Capacitación de IA Camino a mi trabajo ideal\",\n \"pages.learning.my_learning_path.introduction.explanation\": \"Siguiendo los parámetros establecidos en la configuración de tu posición ideal, nuestra IA ha creado un itinerario de entrenamiento que puede ayudarte a conseguir tu objetivo. Recuerde que esta ayuda es solo para orientación y que, en última instancia, tú decides qué es lo mejor para ti\",\n \"pages.learning.my_learning_path.areas.skills\": \"Habilidades\",\n \"pages.learning.my_learning_path.areas.languages\": \"Idiomas\",\n \"pages.learning.my_learning_path.areas.financial\": \"Educación financiera\",\n \"pages.learning.my_learning_path.levels.beginner\": \"Principiante\",\n \"pages.learning.my_learning_path.levels.advanced\": \"Avanzado\",\n \"pages.learning.my_learning_path.levels.expert\": \"Experto\",\n \"pages.learning.my_learning_path.additional_learning\": \"Aprendizaje adicional\",\n \"pages.learning.my_learning_path.no_suggestions\": \"No hay sugerencias en esta área/nivel\",\n \"pages.learning.my_learning_path.recalculate.title\": \"Deseo que se recalcule mi ruta de aprendizaje\",\n \"pages.learning.my_learning_path.recalculate.activate_explanation\": \"El recálculo se realizará de forma desatendida durante la noche\",\n \"pages.learning.my_training.title\": \"Mi entrenamiento\",\n \"pages.learning.my_training.tab\": \"Mi entrenamiento\",\n \"pages.learning.my_training.tip.content\": \"Tu camino de aprendizaje no cambiará si no cambias tu trabajo ideal.\",\n \"pages.learning.my_training.no_completed\": \"Todavía no tienes ningún entrenamiento completado\",\n \"pages.my_interests.form.idealLearning.create\": \"Agregar nueva capacitación\",\n \"pages.my_interests.form.idealLearning.create.title\": \"Nueva formación\",\n \"pages.my_interests.form.idealLearning.delete.content\": \"Vas a eliminar el entrenamiento seleccionado. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?\",\n \"pages.my_interests.form.idealLearning.delete.title\": \"Eliminar formación\",\n \"pages.my_interests.form.idealLearning.edit.title\": \"Editar entrenamiento\",\n \"pages.my_interests.form.idealLearning.fields.description.label\": \"Descripción de la formación\",\n \"pages.my_interests.form.idealLearning.fields.description.placeholder\": \"Introduzca una breve descripción\",\n \"pages.my_interests.form.idealLearning.fields.title.label\": \"Título de la formación\",\n \"pages.my_interests.form.idealLearning.fields.title.placeholder\": \"Introduce un título\",\n \"pages.my_interests.form.interests.create\": \"Añade un nuevo interés\",\n \"pages.my_interests.form.interests.create.title\": \"Nuevo interés\",\n \"pages.my_interests.form.interests.delete.content\": \"Vas a eliminar el interés seleccionado. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?\",\n \"pages.my_interests.form.interests.delete.title\": \"Eliminar interés\",\n \"pages.my_interests.form.interests.edit.title\": \"Editar interés\",\n \"pages.my_interests.form.interests.fields.description.label\": \"Descripción del interés\",\n \"pages.my_interests.form.interests.fields.description.placeholder\": \"Introduce una breve descripción\",\n \"pages.my_interests.form.interests.fields.title.label\": \"Título del interés\",\n \"pages.my_interests.form.interests.fields.title.placeholder\": \"Introduce un título\",\n \"pages.my_interests.idealLearning\": \"Aprendizaje\",\n \"pages.my_interests.interests\": \"Intereses\",\n \"pages.my_interests.tip.content\": \"En esta sección te invitamos a completar tus intereses y aficiones. También los aprendizajes que has hecho y que te parecen interesantes para reflexionar.\",\n \"pages.my_interests.title\": \"Mis intereses\",\n \"pages.my_profile.dashboards.successful_skills.title\": \"Habilidades actuales\",\n \"pages.my_profile.dashboards.certificates_courses.label\": \"Últimos 5 certificados y cursos\",\n \"pages.my_profile.dashboards.certificates_courses.type_learning.online.label\": \"En línea\",\n \"pages.my_profile.dashboards.certificates_courses.type_learning.presence.label\": \"Presencia\",\n \"pages.my_profile.dashboards.company_goals.last_update.subtitle\": \"Última actualización, {date}\",\n \"pages.my_profile.dashboards.company_goals.graph\": \"Objetivos alcanzados\",\n \"pages.my_profile.dashboards.successful_skills.general\": \"General\",\n \"pages.my_profile.dashboards.successful_skills.language\": \"Idiomas\",\n \"pages-my_profile.dashboards.general_skills.title\": \"Sus habilidades generales\",\n \"pages-my_profile.dashboards.tips.introduction\": \"No te preocupes si sigues sin ver nada aquí. Al completar su perfil y con el flujo de trabajo diario aparecerá mucha información.\",\n \"pages-my_profile.dashboards.tips.no-content\": \"Completa tu trabajo actual e ideal para completar la tabla a continuación que muestra las habilidades que son relevantes para ti.\",\n \"pages-my_profile.dashboards.tips.content\": \"Para agregar una nueva habilidad o modificar sus niveles, visite las secciones Mi trabajo actual o Mi trabajo ideal. Si desea reemplazar una habilidad por otra, puede hacerlo haciendo clic en el botón Editar a continuación.\",\n \"pages-my_profile.dashboards.performance_graph.no_content_yet\": \"No tenemos suficiente información para crear el gráfico\",\n \"pages-my_profile.dashboards.performance_graph.edit\": \"Editar gráfico de rendimiento\",\n \"pages-my-profile.profile_updating.tab\": \"Actualización de perfil\",\n \"pages-my-profile.profile_updating.welcome_guide.title\": \"Bienvenido a Fleebe\",\n \"pages-my-profile.profile_updating.welcome_guide.subtitle\": \"Tu nueva herramienta de desarrollo profesional\",\n \"pages-my-profile.profile_updating.welcome_guide.tip\": \"Los comienzos son difíciles. Así que sigue los siguientes pasos para completar tu perfil de una manera rápida y amigable.\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.title\": \"En primer lugar...\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.1\": \"Completa tu perfil personal. Ya sabes, nombre, edad, foto personal, trabajo actual, etc. Solo tienes que pasar el cursor sobre el icono del avatar en la esquina superior derecha de la aplicación.\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.2\": \"Somos bastante atrevidos y queremos visualizar en un solo gráfico no solo tu grado de adaptación a tu posición actual sino también a una posición ideal creada por ti. ¿Nos puedes ayudar? Sigue los enlaces en las tarjetas en el lado derecho.\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.3\": \"Para esto necesitamos dos cosas: primero, enumera las habilidades que mejor describen tu trabajo actual; Y segundo, haz lo mismo pero con las habilidades de tu trabajo ideal, el que te gustaría tener en el futuro. Fácil, ¿verdad?\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.4\": \"Si importas tu perfil desde Linkedin, la mayoría de esas habilidades se cargarán automáticamente y solo tendrás que elegir cuál de ellas encaja mejor en los trabajos descritos por ti. Pero, si lo prefieres, puedes hacerlo manualmente.\",\n \"pages-my-profile.profile_updating.welcome_guide.summary.title\": \"Y eso es todo\",\n \"pages-my-profile.profile_updating.welcome_guide.summary.content\": \"Cuando termines, deberías ver algo como esto. Una forma bastante intuitiva de visualizar tanto su ajuste a su trabajo actual como al ideal.\",\n \"pages-my-profile.profile_updating.welcome_guide.summary.see_example\": \"Ver un ejemplo\",\n \"pages-my-profile.profile_updating.steps_guide.title_1\": \"Comienza aquí creando tu perfil completo de habilidades\",\n \"pages-my-profile.profile_updating.steps_guide.title_2\": \"o completarlo en partes\",\n \"pages-my-profile.profile_updating.steps_guide.skills_profile.title\": \"Perfil de habilidades\",\n \"pages-my-profile.profile_updating.steps_guide.skills_profile.content\": \"Selecciona las 12 habilidades más relevantes entre todas las habilidades que tienes o desearías.\",\n \"pages-my-profile.profile_updating.steps_guide.skills_profile.select\": \"Seleccionar habilidades\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.title\": \"Trabajo actual\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.content_1\": \"Seleccione las 6 habilidades más relevantes en tu experiencia profesional actual.\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.content_2\": \"Selecciona de entre todas las habilidades que definen tu posición actual, las 6 más relevantes para ti.\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.content_3\": \"Y si quieres que sea más rápido...\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.select_current_job_skills\": \"Seleccionar habilidades laborales actuales\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.get_linkedin_profile\": \"Obtén tu perfil de LinkedIn\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.title\": \"Trabajo ideal\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.content_1\": \"Selecciona las 6 habilidades que te gustaría desarrollar para tu trabajo ideal.\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.content_2\": \"Define tu posición ideal y añade todas las habilidades que creas necesarias para realizarla. Luego puedes seleccionar los más importantes.\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.select_ideal_job_skills\": \" Seleccione tus habilidades laborales ideales\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.go_to_my_ideal_job\": \"Ir a mi trabajo ideal\",\n \"pages-my-profile.profile_updating.performance_graph.example.title\": \"Ejemplo de perfil de marketing\",\n \"pages-my-profile.profile_updating.performance_graph.example.subtitle\": \"Aquí puedes ver las habilidades de Megan.\",\n \"pages-my-profile.profile_updating.performance_graph.example.steps.1\": \"Las 6 habilidades que coinciden con tu trabajo actual (púrpura)\",\n \"pages-my-profile.profile_updating.performance_graph.example.steps.2\": \"Las 6 habilidades que te gustaría desarrollar (azul)\",\n \"pages-my-profile.profile_updating.performance_graph.example.steps.3\": \"Las 12 habilidades que coinciden con tu experiencia actual (naranja)\",\n \"pages-my-profile.profile_updating.performance_graph.example.content_1\": \"Ya sea que las importes desde Linkedin o las crees manualmente, puede seleccionar las 6 habilidades que mejor definan tu posición actual y deseada para el futuro.\",\n \"pages-my-profile.profile_updating.performance_graph.example.content_2\": \"Con este gráfico puedes, de un vistazo, comparar tu talento actual y futuro para gestionar tu formación y plan de carrera en consecuencia. Esto también ayuda a los responsables de Recursos Humanos a ofrecerte las condiciones de trabajo que mejor se adaptan a ti o a detectar, por ejemplo, empleados infravalorados o insatisfechos.\",\n \"pages-my-profile.profile_updating.performance_graph.example.content_3\": \"Ayúdanos a ayudarte.\",\n \"pages-my-profile.profile_updating.performance_graph.example.profile.first_name\": \"Megan\",\n \"pages-my-profile.profile_updating.performance_graph.example.profile.last_name\": \"Barney\",\n \"pages-my-profile.profile_updating.performance_graph.example.profile.experience\": \"Gerente de marketing digital\",\n \"pages-my-profile.profile_updating.performance_graph.example.close\": \"Entendido\",\n \"pages-my-profile.profile_updating.performance_graph.graph.series.1\": \"Habilidades laborales actuales\",\n \"pages-my-profile.profile_updating.performance_graph.graph.series.2\": \"Habilidades laborales ideales\",\n \"pages-my-profile.profile_updating.performance_graph.graph.series.3\": \"Habilidades de experiencia actual\",\n \"pages-my-profile.profile_updating.performance_graph.graph.labels.0\": \"Ninguno\",\n \"pages-my-profile.profile_updating.performance_graph.graph.labels.1\": \"Bajo\",\n \"pages-my-profile.profile_updating.performance_graph.graph.labels.2\": \"Medio\",\n \"pages-my-profile.profile_updating.performance_graph.graph.labels.3\": \"Alto\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.1\": \"Tomar la iniciativa\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.2\": \"Idiomas\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.3\": \"Analítico\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.4\": \"Creativo\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.5\": \"Resolución de problemas\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.6\": \"Actitud positiva\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.7\": \"Supporting\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.8\": \"Empatía\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.9\": \"Social Media\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.10\": \"Dirección\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.11\": \"Marketing\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.12\": \"Aprendizaje\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.introduction\": \"Introducción\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.introduction.info_1\": \"Para completar tu tabla de perfil, debes completar las 2 secciones principales sobre ti: Experiencia actual y Trabajo ideal. Una vez completadas estas secciones, tendrás a tu disposición todas las habilidades que necesitas para calificar y construir tu visualización de arañas.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.introduction.info_2\": \"* Recuerda que siempre podrás editar tus habilidades y revisarlas durante todo tu proceso de crecimiento y aprendizaje.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.current_job_skills\": \"Seleccionar mis habilidades laborales actuales\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.current_job_skills.info\": \"Selecciona un mínimo de 3 habilidades y un máximo de 6 habilidades más importantes en mi trabajo actual.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.ideal_job_skills\": \"Selecciona mis habilidades laborales ideales\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.ideal_job_skills.info\": \"Selecciona un mínimo de 3 habilidades y un máximo de 6 habilidades que te gustaría desarrollar para tu trabajo ideal.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.errors.skills_count\": \"Es necesario que elijas entre 3 y 6 habilidades para construir tdu gráfico de rendimiento.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.search.placeholder\": \"Buscar una habilidad\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.current_job_requirements\": \"Debe tener un trabajo actual con al menos 3 habilidades para poder crear este gráfico.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.go_to_current_job\": \"Ir a Mi trabajo actual\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.ideal_job_requirements\": \"Debe tener un trabajo ideal con al menos 3 habilidades para poder crear este gráfico.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.go_to_ideal_job\": \"Ir a Mi trabajo ideal\",\n \"pages-my-profile.dashboard.tab\": \"Tablero\",\n \"pages.my_profile.title\": \"Mi perfil\",\n \"pages.my_profile.employee_groups.title\": \"Grupos\",\n \"pages.my_profile.previous_experiences.title\": \"Experiencias previas\",\n \"pages.current_experience.title\": \"Mi trabajo actual\",\n \"pages.current_experience.about_me\": \"Acerca de mí\",\n \"pages.current_experience.experience\": \"Otra experiencia\",\n \"pages.current_experience.education\": \"Educación\",\n \"pages.current_experience.languages\": \"Idiomas\",\n \"pages.current_experience.languages.edit\": \"Editar idiomas\",\n \"pages.current_experience.current_experience.title\": \"Posición actual\",\n \"pages.current_experience.current_experience.general_skills\": \"Habilidades generales\",\n \"pages.current_experience.current_experience.language_skills\": \"Habilidades lingüísticas \",\n \"pages.current_experience.goals_challenges.title\": \"Mis objetivos y desafíos\",\n \"pages.current_experience.linkedin.import\": \"Importar mi perfil de LinkedIn\",\n \"pages.current_experience.linkedin.title\": \"Importa tu perfil de LinkedIn\",\n \"pages.current_experience.linkedin.content.instructions.title\": \"Siga las instrucciones a continuación para importar tu perfil de LinkedIn.\",\n \"pages.current_experience.linkedin.content.instructions.step.1\": \"Haga clic en este enlace para acceder a tu perfil de LinkedIn (inicie sesión si es necesario): \",\n \"pages.current_experience.linkedin.content.instructions.step.2\": \"Configure el contenido que desea importar. LinkedIn te ofrece algunas alternativas.\",\n \"pages.current_experience.linkedin.content.instructions.step.3\": \"Haga clic en el botón Request file (la descarga estará lista en aproximadamente 24 horas).\",\n \"pages.current_experience.linkedin.content.instructions.step.4\": \"Dos emails te enviará las instrucciones que debes seguir. El first one contiene la información que necesitas cargar aquí. El segundo es sobre tu actividad en LinkedIn y el historial de tu cuenta, y no lo necesitamos.\",\n \"pages.current_experience.linkedin.content.instructions.step.5\": \"Download el archivo.\",\n \"pages.current_experience.linkedin.content.instructions.step.6\": \"Haga clic en el botón de abajo y seleccione el archivo .zip descargado de su computadora.\",\n \"pages.current_experience.linkedin.content.instructions.step.7\": \"And that's all. Si todo va bien, todos tus datos se colocarán aquí. Comprueba si tu experiencia actual está bien. Si no, puedes editarlo en LinkedIn y repetir la operación (recomendado) o editarlo dentro de esta aplicación haciendo clic en el botón Editar, junto a cada experiencia.\",\n \"pages.current_experience.linkedin.content.upload\": \"Navegar para subir el perfil de LinkedIn\",\n \"pages.current_experience.linkedin.successfully_imported_profile\": \"Perfil importado correctamente\",\n \"pages.current_experience.linkedin.reminder.content\": \"Verifique las fechas de tus posiciones e introduce el nivel de tus habilidades, y por último define si tu educación ha sido en línea o en el sitio.\",\n \"pages.current_experience.tip.content\": \"En esta sección es importante que subas tu currículum, la experiencia será más personalizada si conocemos el punto de partida. Por otro lado, debes diferenciar entre las habilidades que has generado durante tu vida profesional y las habilidades aprendidas en tu puesto actual al rellenar los campos.\",\n \"pages.current_experience.skills\": \"Habilidades\",\n \"pages.current_experience.skills.management\": \"Habilidades directivas\",\n \"pages.current_experience.skills.general\": \"General\",\n \"pages.current_experience.skills.edit\": \"Editar habilidades generales\",\n \"pages.current_experience.language.edit\": \"Editar habilidades lingüísticas\",\n \"pages.current_experience.confirm-delete-on-graph.title\": \"Eliminar habilidad que se está utilizando en el gráfico de rendimiento\",\n \"pages.current_experience.confirm-delete-on-graph.message\": \"Está intentando eliminar una habilidad que se está utilizando en el gráfico de rendimiento. Si después de eliminar esta habilidad quedan menos de 3 habilidades no se creará el gráfico.\",\n \"pages.current_experience.present\": \"Presente\",\n \"pages.current_experience.edit.about.me\": \"Cuéntame algo sobre ti\",\n \"pages.current_experience.form.about.me.fields.name.label\": \"Acerca de ti\",\n \"pages.current_experience.form.about.me.fields.name.placeholder\": \"Cuéntame algo sobre ti\",\n \"pages.current_experience.form.curriculum.upload\": \"Sube tu currículum\",\n \"pages.current_experience.form.curriculum.delete.prompt.title\": \"Eliminar currículo\",\n \"pages.current_experience.form.curriculum.delete.prompt.content\": \"Va a eliminar el currículo. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?\",\n \"pages.current_experience.form.experience.edit_current\": \"Edita tu posición actual\",\n \"pages.current_experience.form.experience.edit_other\": \"Edita tu puesto de trabajo\",\n \"pages.current_experience.form.experience.create_current\": \"Agregar trabajo actual\",\n \"pages.current_experience.form.experience.create_other\": \"Agregar nueva experiencia\",\n \"pages.current_experience.form.experience.fields.title.label\": \"Título\",\n \"pages.current_experience.form.experience.fields.title.placeholder\": \"Introduce el puesto de trabajo\",\n \"pages.current_experience.form.experience.fields.description.label\": \"Descripción del trabajo\",\n \"pages.current_experience.form.experience.fields.description.placeholder\": \"Introduce la descripción del trabajo\",\n \"pages.current_experience.form.experience.fields.company.label\": \"Empresa\",\n \"pages.current_experience.form.experience.fields.company.placeholder\": \"Introduce la empresa\",\n \"pages.current_experience.form.experience.fields.location.label\": \"Ubicación\",\n \"pages.current_experience.form.experience.fields.location.placeholder\": \"Introduce la ubicación del trabajo\",\n \"pages.current_experience.form.experience.fields.fromDate.label\": \"Iniciar\",\n \"pages.current_experience.form.experience.fields.toDate.label\": \"Fin\",\n \"pages.current_experience.form.experience.fields.currentJob.label\": \"Trabajo actual\",\n \"pages.current_experience.form.experience.delete.title\": \"Eliminar experiencia\",\n \"pages.current_experience.form.experience.delete.content\": \"Vas a eliminar la experiencia seleccionada. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?\",\n \"pages.current_experience.form.education.edit\": \"Edita tu educación\",\n \"pages.current_experience.form.education.create\": \"Agregar nueva educación\",\n \"pages.current_experience.form.education.fields.title.label\": \"Título educativo\",\n \"pages.current_experience.form.education.fields.title.placeholder\": \"Introduce un título\",\n \"pages.current_experience.form.education.fields.institution.label\": \"Institución\",\n \"pages.current_experience.form.education.fields.institution.placeholder\": \"Introduce una institución\",\n \"pages.current_experience.form.education.fields.description.label\": \"Descripción\",\n \"pages.current_experience.form.education.fields.description.placeholder\": \"Introduce una descripción\",\n \"pages.current_experience.form.education.fields.location.label\": \"Ubicación\",\n \"pages.current_experience.form.education.fields.location.placeholder\": \"Introduce una ubicación\",\n \"pages.current_experience.form.education.fields.fromDate.label\": \"De\",\n \"pages.current_experience.form.education.fields.toDate.label\": \"Para\",\n \"pages.current_experience.form.education.fields.inProgressEducation.label\": \"En curso\",\n \"pages.current_experience.form.education.delete.title\": \"Eliminar educación\",\n \"pages.current_experience.form.education.delete.content\": \"Vas a eliminar la educación seleccionada. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?\",\n \"pages.guest.create_company_from_azure_ad.information.title\": \"Guía de registro desde Azure Active Directory (Ad)\",\n \"pages.guest.create_company_from_azure_ad.information.content\": \"

Para generar la entidad de servicio, vaya a Azure AD y siga los pasos siguientes:

  1. Vaya a Azure Active Directory y crea una nueva aplicación en Registro de aplicaciones.
  2. Escribe un nombre en el campo 'Nombre'.\\n\\n
  3. En Tipos de cuenta compatibles, seleccione la opción 'Inquilino único' y haga clic en el botón 'Registrar'.
  4. Cuando tu aplicación ya esté creada, vaya a la sección 'Permisos de API' y agrega una nueva de tipo 'User.Read.All'.
  5. Ahora necesitas agregar un secreto de cliente, Recomendamos 24 meses de fecha de vencimiento. Ahora copie el secreto de cliente.

Pasos para conectarse con Fleebe:

  1. Copie el 'ID de cliente de aplicación' del paso anterior en el campo 'Id. de cliente de entidad de servicio'.
  2. Copie el 'secreto de cliente' en el campo 'Secreto de cliente de entidad de servicio'.
  3. Haga clic en el botón 'Validar' y debería ver el número de usuarios de su AD.
\",\n \"pages.guest.create_company_from_azure_ad.form.fields.tenant_id.label\": \"ID. de inquilino\",\n \"pages.guest.create_company_from_azure_ad.form.fields.purchaseSubscriptionId.label\": \"ID. de suscripción de compra\",\n \"pages.guest.create_company_from_azure_ad.form.fields.client_id.label\": \"ID. de cliente principal de servicio\",\n \"pages.guest.create_company_from_azure_ad.form.fields.client_id.placeholder\": \"Escriba el identificador de entidad de servicio\",\n \"pages.guest.create_company_from_azure_ad.form.fields.client_secret.label\": \"Secreto de cliente principal de servicio\",\n \"pages.guest.create_company_from_azure_ad.form.fields.client_secret.placeholder\": \"Escriba el secreto de entidad de servicio\",\n \"pages.guest.create_company_from_azure_ad.form.fields.total_users.label\": \"La siguiente cantidad de usuarios se importará desde Azure Active Directory después del proceso de registro\",\n \"pages.guest.create_company_from_azure_ad.form.buttons.validate\": \"Validar\",\n \"pages.guest.create_company_from_azure_ad.form.buttons.signup\": \"Iniciar sesión\",\n \"pages.guest.create_company_from_azure_ad.error_modal.title\": \"La subscripción no se ha completado\",\n \"pages.guest.create_company_from_azure_ad.error_modal.description\": \"Lo sentimos, no se ha podido completar la subscripción debido a que la cantidad de usuarios comprados ({purchasedUsers}) no coincide con la cantidad de usuarios encontrados ({totalUsers}) en Azure Active Directory. Por favor, reinicie el proceso de compra.\",\n \"pages.guest.create_company_from_azure_ad.error_modal.button\": \"Reiniciar compra en Microsoft AppSource\",\n \"pages.accounts.logout.title\": \"Su sesión finalizó\",\n \"pages.accounts.logout.description\": \"Has finalizado tu sesión. Para volver de nuevo, haga clic en el botón.\",\n \"pages.accounts.logout.signin\": \"Iniciar sesión en Fleebe Corporate\",\n \"pages.accounts.admin_required.title\": \"No hay suficientes permisos\",\n \"pages.accounts.admin_required.description\": \"Debe ser administrador para ingresar a la página solicitada. Para continuar usando el sitio, haga clic en el botón.\",\n \"pages.accounts.admin_required.continue\": \"Vuelve a Fleebe Corporate\",\n \"pages.accounts.tenant_unauthorized.title\": \"Arrendatario no autorizado\",\n \"pages.accounts.tenant_unauthorized.description\": \"La cuenta que está utilizando para iniciar sesión no está registrada en la aplicación. Por favor, confirme que esté registrado para usar Fleebe Corporate y continúe.\",\n \"pages.accounts.tenant_unauthorized.continue\": \"Vuelve a Fleebe Corportae\",\n \"pages.accounts.user_unauthorized.title\": \"Usuario no autorizado\",\n \"pages.accounts.user_unauthorized.description\": \"La cuenta que está utilizando para iniciar sesión no está permitida en la aplicación. Confirme que esté registrado para usar Fleebe Corporate y continúe. Si tiene varias cuentas, intente cerrar sesión e iniciar sesión de nuevo.\",\n \"pages.accounts.user_unauthorized.logout\": \"Cerrar sesión\",\n \"pages.admin.dashboard.current_job.title\": \"Trabajo actual\",\n \"pages.admin.dashboard.ideal_job.title\": \"Trabajo ideal\",\n \"pages.admin.dashboard.title\": \"Dashboard\",\n \"pages.admin.dashboard.percentage_employee_answered\": \"% de empleados respondidos\",\n \"pages.admin.dashboard.welcome\": \"Bienvenido a Fleebe Corporate\",\n \"pages.admin.dashboard.welcome.tip.title\": \"Empieza donde quieras\",\n \"pages.admin.dashboard.welcome.tip.content\": \"Comienza la experiencia con tu asistente de IA cuando lo desees. Completa las cuatro tarjetas generales debajo de estas infobox.\",\n \"pages.admin.dashboard.welcome.shortcuts.profile.title\": \"Completa el perfil de tu organización\",\n \"pages.admin.dashboard.welcome.shortcuts.profile.content\": \"Rellena todos los datos corporativos de tu empresa con sus principales características: ¿Qué tan grande es tu organización? ¿Dónde se encuentra?\",\n \"pages.admin.dashboard.welcome.shortcuts.profile.button\": \"Perfil completo de la empresa\",\n \"pages.admin.dashboard.welcome.shortcuts.skill.title\": \"Crea las habilidades que tu organización necesita\",\n \"pages.admin.dashboard.welcome.shortcuts.skill.content\": \"Tu organización es diferente y única, por lo tanto, tiene necesidades específicas que bien sabe el administrador. Créalos para empezar a buscar talento\",\n \"pages.admin.dashboard.welcome.shortcuts.skill.button\": \"Crear habilidades\",\n \"pages.admin.dashboard.welcome.shortcuts.question.title\": \"Crear un formulario para obtener comentarios de los empleados\",\n \"pages.admin.dashboard.welcome.shortcuts.question.content\": \"Tus empleados son talentosos, por lo tanto, su opinión es valiosa. Cree aquí un formulario para obtener sus comentarios.\",\n \"pages.admin.dashboard.welcome.shortcuts.question.button\": \"Crear formulario\",\n \"pages.admin.dashboard.welcome.shortcuts.goal.title\": \"Crea objetivos y desafíos para su organización\",\n \"pages.admin.dashboard.welcome.shortcuts.goal.content\": \"Mantén motivados a tus equipos y empleados, crea objetivos y metas comunes que aporten valor a la empresa.\",\n \"pages.admin.dashboard.welcome.shortcuts.goal.button\": \"Crear objetivos y desafíos\",\n \"pages.admin.dashboard.search.introduction\": \"La nueva asistencia de IA para ayudar a tus empleados a aprender la ruta hacia sus propias preferencias y estilo de vida\",\n \"pages.admin.dashboard.search.placeholder\": \"Buscar empleados...\",\n \"pages.admin.dashboard.current_experience.title\": \"Experiencia actual\",\n \"pages.admin.dashboard.current_experience.about_me.curriculum\": \"Curriculum\",\n \"pages.admin.dashboard.current_experience.about_me.no_content_yet\": \"El empleado aún no ha proporcionado información\",\n \"pages.admin.dashboard.current_experience.experience.no_content_yet\": \"El empleado aún no ha proporcionado información sobre la experiencia\",\n \"pages.admin.dashboard.current_experience.education.no_content_yet\": \"El empleado aún no ha proporcionado información educativa\",\n \"pages.admin.dashboard.current_experience.languages.no_content_yet\": \"El empleado aún no ha proporcionado idiomas\",\n \"pages.admin.dashboard.current_experience.general_skills.no_content_yet\": \"El empleado aún no ha proporcionado habilidades generales\",\n \"pages.admin.dashboard.my_ideal_job.no_content_yet\": \"El empleado aún no ha proporcionado la información de trabajo ideal\",\n \"pages.admin.dashboard.ai_assistant.title\": \"Asistente de IA\",\n \"pages.admin.dashboard.ai_assistant.description\": \"Estas son las respuestas proporcionadas por el empleado\",\n \"pages.admin.dashboard.interests.title\": \"Intereses\",\n \"pages.admin.dashboard.interests.interests.no_content_yet\": \"El empleado aún no ha proporcionado información de interés\",\n \"pages.admin.dashboard.interests.idealLearning.no_content_yet\": \"El empleado aún no ha proporcionado información de aprendizaje\",\n \"pages.admin.dashboard.interests.hobbies.no_content_yet\": \"El empleado aún no ha proporcionado pasatiempos\",\n \"pages.admin.ai_assistant.title\": \"Asistente de IA\",\n \"pages.admin.ai_assistant.create_new_survey_form.title\": \"Crear nuevo formulario de encuesta\",\n \"pages.admin.ai_assistant.create_new_survey_form.description\": \"Configura las preguntas para tu empresa y elija cuáles de ellas deben ser visibles para tus empleados\",\n \"pages.admin.ai_assistant.create_new_survey_form.new_question\": \"Agregar nueva pregunta\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.level.title\": \"Nivel\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.level.description\": \"Utilice este componente para que el empleado seleccione un nivel de educación, experiencia o talento, etc. rápidamente.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.level.guide\": \"Trate de hacer la declaración lo más simple posible para que las respuestas no sean ambiguas y la información proporcionada realmente agregue valor. Establece niveles claros y bien contrastados para que no haya dudas en la respuesta.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.level.input.title\": \"Introduzca la declaración de la pregunta\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.singleselection.title\": \"Selección única\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.singleselection.description\": \"Utiliza este componente para seleccionar una sola opción entre varias disponibles.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.singleselection.guide\": \"Trata de hacer la declaración lo más simple posible para que las respuestas no sean ambiguas y la información proporcionada realmente agregue valor. Establece opciones claras y bien contrastadas para que no haya dudas en la respuesta.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.singleselection.input.title\": \"Introduce la declaración de la pregunta\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.multipleselection.title\": \"Selección múltiple\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.multipleselection.description\": \"Utilice este componente para seleccionar varias opciones correctas.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.multipleselection.guide\": \"Trata de hacer la declaración lo más simple posible para que las respuestas no sean ambiguas y la información proporcionada realmente agregue valor. Establece opciones claras y bien contrastadas para que no haya dudas en la respuesta.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.multipleselection.input.title\": \"Introduzca la declaración de la pregunta\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.longtext.title\": \"Respuesta abierta larga\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.longtext.description\": \"Utiliza este tipo de componentes para respuestas abiertas donde el empleado puede hacer descripciones más largas.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.longtext.guide\": \"Trata de hacer la declaración lo más clara y simple posible para que las respuestas no sean ambiguas y la información proporcionada realmente agregue valor.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.longtext.input.title\": \"Introduce la declaración de la pregunta\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.shorttext.title\": \"Respuesta abierta corta\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.shorttext.description\": \"Usar este componente para respuestas cortas.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.shorttext.guide\": \"Trata de hacer la declaración lo más clara y simple posible para que las respuestas no sean ambiguas y la información proporcionada realmente agregue valor.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.shorttext.input.title\": \"Introduce la declaración de la pregunta\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.tags.title\": \"Etiquetas\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.tags.description\": \"Utiliza este componente cuando el empleado tenga que introducir respuestas en forma de etiquetas.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.tags.guide\": \"Trata de hacer la declaración lo más simple posible para que las respuestas no sean ambiguas y la información proporcionada realmente agregue valor. Establece opciones claras y bien contrastadas para que no haya dudas en la respuesta.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.tags.input.title\": \"Introduce la declaración de la pregunta\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.path.select_question_type\": \"Seleccionar tipo de pregunta\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.path.configure_question\": \"Configurar pregunta\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.path.save_question\": \"Guardar pregunta\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.options.title\": \"Introduce las opciones de respuesta\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.options.description\": \"Necesitas al menos dos opciones, pero puede agregar todas las que necesites.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.option.title\": \"Option {optionIndex}\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.option.placeholder\": \"Título de la opción\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.title\": \"Introduzce los niveles de respuesta\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.low_level\": \"Nivel bajo\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.medium_level\": \"Nivel medio\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.high_level\": \"Nivel alto\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.title\": \"Vista previa\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.description\": \"La pregunta tiene errores en la configuración. Vaya al paso anterior y configúralo correctamente.\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.tag_samples.sample1\": \"tag 1\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.tag_samples.sample2\": \"tag 2\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.option_samples.sample1\": \"opción 1\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.option_samples.sample2\": \"opción 2\",\n \"pages.admin.ai_assistant.kpi_tip.title\": \"Crea KPIs\",\n \"pages.admin.ai_assistant.kpi_tip.subtitle\": \"Puedes crear KPIs de los cuestionarios enviados para visualizar el rango de respuestas. Selecciona el ícono del gráfico para ver los resultados de cada pregunta.\",\n \"pages.admin.ai_assistant.questions.title\": \"Preguntas de encuesta\",\n \"pages.admin.ai_assistant.questions.seeAllQuestions\": \"Ver todas las preguntas\",\n \"pages.admin.ai_assistant.questions.search\": \"Buscar en preguntas\",\n \"pages.admin.ai_assistant.questions.created_questions\": \"Preguntas creadas\",\n \"pages.admin.ai_assistant.questions.sent_questions\": \"Preguntas enviadas\",\n \"pages.admin.ai_assistant.questions.send_questions\": \"Enviar preguntas\",\n \"pages.admin.ai_assistant.questions.do_not_send_questions\": \"No enviar preguntas\",\n \"pages.admin.ai_assistant.questions.add_new_question\": \"Agregar nueva pregunta\",\n \"pages.admin.ai_assistant.questions.preview\": \"Vista previa de la pregunta\",\n \"pages.admin.ai_assistant.questions.grid.number\": \"#\",\n \"pages.admin.ai_assistant.questions.grid.answeredPercentage\": \"Participación(%)\",\n \"pages.admin.ai_assistant.questions.grid.groups\": \"Grupos\",\n \"pages.admin.ai_assistant.questions.grid.groups.tooltip.more_groups\": \"{n} más\",\n \"pages.admin.ai_assistant.questions.grid.groups.tooltip.groups\": \"{n} grupo | {n} grupos\",\n \"pages.admin.ai_assistant.questions.grid.question\": \"Pregunta\",\n \"pages.admin.ai_assistant.questions.grid.date\": \"Fecha\",\n \"pages.admin.ai_assistant.questions.grid.no_results\": \"No hay preguntas con este filtro\",\n \"pages.admin.ai_assistant.questions.grid.delete.title\": \"Eliminar pregunta\",\n \"pages.admin.ai_assistant.questions.grid.delete.description\": \"Vas a eliminar la pregunta '{question}'. ¿Estás seguro?\",\n \"pages.admin.ai_assistant.questions.grid.show_in_dashboard\": \"Mostrar en el panel\",\n \"pages.admin.ai_assistant.questions.grid.remove__from_dashboard\": \"Eliminar del panel\",\n \"pages.admin.ai_assistant.questions.grid.descend\": \"Descenso\",\n \"pages.admin.ai_assistant.questions.grid.ascend\": \"Ascender\",\n \"pages.admin.ai_assistant.questions.questions_with_no_answers\": \"Esta pregunta aún no ha sido respondida\",\n \"pages.admin.ai_assistant.questions.employee_answered\": \"Participación\",\n \"pages.admin.ai_assistant.questions.othersSummary\": \"Otros\",\n \"pages.admin.ai_assistant.questions.noContentYet\": \"Aún no hay contenido\",\n \"pages.admin.ai_assistant.questions.allQuestionsPublished\": \"Todas las preguntas definidas son públicas\",\n \"pages.admin.company_goals.application_closed\": \"Aplicaciones cerradas\",\n \"pages.admin.company_goals.draft\": \"Borrador\",\n \"pages.admin.company_goals.application_open\": \"Abierto para aplicación\",\n \"pages.admin.company_goals.title\": \"Objetivos corporativos\",\n \"pages.admin.company_goals.create.public\": \"Crear un objetivo público para los solicitantes\",\n \"pages.admin.company_goals.create.public.description\": \"Lanzamos este nuevo objetivo con el objetivo de desarrollar todo el potencial de cada uno de nuestros empleados mientras nos enfocamos en sus necesidades y habilidades. Sé quien elabore el plan de transformación de acuerdo con tus objetivos personales y profesionales\",\n \"pages.admin.company_goals.create.new_public_goal\": \"Crear un objetivo público\",\n \"pages.admin.company_goals.create.private\": \"Crear un objetivo privado y seleccionar un equipo\",\n \"pages.admin.company_goals.create.private.description\": \"Hemos identificado las habilidades que necesitas para avanzar en tu carrera. Esta meta propuesta te permitirá desarrollarlas o fortalecerlas. La transformación continua es esencial para la evolución de tu carrera profesional.\",\n \"pages.admin.company_goals.create.new_private_goal\": \"Crear un objetivo privado\",\n \"pages.admin.company_goals.search.introduction\": \"Nuevos objetivos y desafíos\",\n \"pages.admin.company_goals.search.placeholder\": \"Buscar objetivos para el equipo\",\n \"pages.admin.company_goals.search.options.view_all\": \"Todos\",\n \"pages.admin.company_goals.search.options.view_visibility\": \"Visibilidad\",\n \"pages.admin.company_goals.search.options.view_public\": \"Público\",\n \"pages.admin.company_goals.search.options.view_private\": \"Privado\",\n \"pages.admin.company_goals.search.options.view_application_phase\": \"Fase de aplicación\",\n \"pages.admin.company_goals.search.options.view_application_phase_open\": \"Abierto\",\n \"pages.admin.company_goals.search.options.view_application_phase_closed\": \"Cerrado\",\n \"pages.admin.company_goals.search.options.view_finished\": \"Terminado\",\n \"pages.admin.company_goals.search.options.view_draft\": \"Borrador\",\n \"pages.admin.company_goals.search.options.view_launched\": \"Lanzado\",\n \"pages.admin.company_goals.search.options.view_published\": \"Publicado\",\n \"pages.admin.company_goals.search.options.view_status\": \"Estado\",\n \"pages.admin.company_goals.search.order.start_date_asc\": \"Fecha de inicio (asc)\",\n \"pages.admin.company_goals.search.order.start_date_desc\": \"Fecha de inicio (desc)\",\n \"pages.admin.company_goals.search.order.end_date_asc\": \"Fecha de finalización (asc)\",\n \"pages.admin.company_goals.search.order.end_date_desc\": \"Fecha de finalización (desc)\",\n \"pages.admin.company_goals.search.order.title_asc\": \"Título (asc)\",\n \"pages.admin.company_goals.search.order.title_desc\": \"Título (desc)\",\n \"pages.admin.company_goals.new_goal\": \"Agregar nuevo objetivo\",\n \"pages.admin.company_goals.last_updated\": \"Última actualización, {date}\",\n \"pages.admin.company_goals.goal_dates\": \"Fechas de gol: {start} - {end}\",\n \"pages.admin.company_goals.goal\": \"Equipo de gol\",\n \"pages.admin.company_goals.save\": \"Salvar equipo y gol\",\n \"pages.admin.company_goals.skills\": \"{number} habilidades\",\n \"pages.admin.company_goals.education\": \"{number} educación\",\n \"pages.admin.company_goals.languages\": \"{number} lenguajes\",\n \"pages.admin.company_goals.delete_goal.title\": \"Eliminar objetivo: {name}\",\n \"pages.admin.company_goals.delete_goal.description\": \"Va a eliminar el objetivo seleccionado \\\"{name}\\\". Todo el progreso y la información sobre este desaparecerá y esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?\",\n \"pages.admin.company_goals.delete_goal.successfully_deleted\": \"El objetivo se eliminó correctamente\",\n \"pages.admin.company_goals.add_new_goal.title\": \"Nuevo objetivo\",\n \"pages.admin.company_goals.add_new_goal.fields.title.label\": \"Título\",\n \"pages.admin.company_goals.add_new_goal.fields.title.placeholder\": \"Introduce el título del objetivo o desafío\",\n \"pages.admin.company_goals.add_new_goal.fields.description.label\": \"Descripción del objetivo\",\n \"pages.admin.company_goals.add_new_goal.fields.description.placeholder\": \"Escriba aquí una breve descripción\",\n \"pages.admin.company_goals.add_new_goal.fields.link.label\": \"Enlace con más información\",\n \"pages.admin.company_goals.add_new_goal.fields.link.placeholder\": \"Agregar un enlace con más información\",\n \"pages.admin.company_goals.add_new_goal.fields.number_of_people_needed.label\": \"Número de personas necesarias\",\n \"pages.admin.company_goals.add_new_goal.fields.country.label\": \"País\",\n \"pages.admin.company_goals.add_new_goal.fields.country.placeholder\": \"Introduce el país\",\n \"pages.admin.company_goals.add_new_goal.fields.city.label\": \"Ciudad\",\n \"pages.admin.company_goals.add_new_goal.fields.city.placeholder\": \"Introducir ciudad\",\n \"pages.admin.company_goals.add_new_goal.fields.application_closing.label\": \"Cierre de la aplicación\",\n \"pages.admin.company_goals.add_new_goal.fields.is_open.label\": \"Objetivo abierto para aplicaciones\",\n \"pages.admin.company_goals.add_new_goal.fields.start.label\": \"Iniciar\",\n \"pages.admin.company_goals.add_new_goal.fields.end.label\": \"fin\",\n \"pages.admin.company_goals.add_new_goal.fields.status.label\": \"Objetivo abierto para aplicaciones\",\n \"pages.admin.company_goals.add_new_goal.fields.picture.label\": \"Elige una imagen para la portada\",\n \"pages.admin.company_goals.add_new_goal.fields.picture.upload\": \"Subir imagen\",\n \"pages.admin.company_goals.add_new_goal.fields.skills_needed\": \"Habilidades necesarias\",\n \"pages.admin.company_goals.add_new_goal.path.overview\": \"Información general\",\n \"pages.admin.company_goals.add_new_goal.path.general_skills\": \"Habilidades generales\",\n \"pages.admin.company_goals.add_new_goal.path.general_skills.description\": \"Elige las habilidades generales requeridas para el objetivo\",\n \"pages.admin.company_goals.add_new_goal.path.language_skills\": \"Habilidades lingüísticas\",\n \"pages.admin.company_goals.add_new_goal.path.language_skills.description\": \"Por favor, elige las habilidades lingüísticas necesarias para el objetivo\",\n \"pages.admin.company_goals.add_new_goal.save\": \"Publicar\",\n \"pages.admin.company_goals.add_new_goal.successfully_created\": \"El objetivo se ha creado correctamente\",\n \"pages.admin.company_goals.add_new_goal.successfully_updated\": \"El objetivo se ha actualizado correctamente\",\n \"pages.admin.company_goals.add_new_goal.confirm_publish.title\": \"Confirmar publicación\",\n \"pages.admin.company_goals.add_new_goal.confirm_publish.description\": \"Vas a publicar el objetivo. Después de este punto, no podrá editar algunos de los campos. Por favor, continúe solo si está seguro de que el objetivo está listo.\",\n \"pages.admin.company_goals.edit_goal.fields.title.label\": \"Título\",\n \"pages.admin.company_goals.edit_goal.fields.title.placeholder\": \"Introduce el título del objetivo o desafío\",\n \"pages.admin.company_goals.edit_goal.fields.description.label\": \"Descripción del objetivo\",\n \"pages.admin.company_goals.edit_goal.fields.description.placeholder\": \"Escribe aquí una breve descripción\",\n \"pages.admin.company_goals.edit_goal.fields.number_of_people_needed.label\": \"Número de personas necesarias\",\n \"pages.admin.company_goals.edit_goal.fields.country.label\": \"País\",\n \"pages.admin.company_goals.edit_goal.fields.city.label\": \"Ciudad\",\n \"pages.admin.company_goals.edit_goal.fields.link.label\": \"Enlace con más información\",\n \"pages.admin.company_goals.edit_goal.fields.link.placeholder\": \"Agregar un enlace con más información\",\n \"pages.admin.company_goals.edit_goal.fields.application_closing.label\": \"Cierre de la aplicación\",\n \"pages.admin.company_goals.edit_goal.fields.is_open.label\": \"El objetivo está abierto para aplicaciones\",\n \"pages.admin.company_goals.edit_goal.fields.is_not_open.label\": \"El objetivo no está abierto para aplicaciones\",\n \"pages.admin.company_goals.edit_goal.fields.start.label\": \"Iniciar\",\n \"pages.admin.company_goals.edit_goal.fields.end.label\": \"Fin\",\n \"pages.admin.company_goals.edit_goal.save\": \"Guardar\",\n \"pages.admin.company_goals.edit_goal.successfully_edited\": \"El objetivo se ha editado correctamente\",\n \"pages.admin.company_goals.detail_goals.more_information\": \"Más información\",\n \"pages.admin.company_goals.detail_goals.progress\": \"Progreso del objetivo del equipo\",\n \"pages.admin.company_goals.detail_goals.team_skills.title\": \"Porcentaje de adaptación al objetivo\",\n \"pages.admin.company_goals.detail_goals.team_skills.skills\": \"Habilidades\",\n \"pages.admin.company_goals.detail_goals.team_skills.skills.description\": \"Más del 80% de las habilidades se considera un buen ratio para alcanzar los objetivos propuestos. Por debajo del 50% es aconsejable reclutar o reemplazar miembros con otros con las habilidades específicas necesarias.\",\n \"pages.admin.company_goals.goal_detail.add_team_member\": \"Agregar un miembro del equipo de la lista de solicitantes\",\n \"pages.admin.company_goals.goal_detail.ai_selected_candidate\": \"La IA ha elegido un equipo automáticamente, pero puedes editarlo manualmente. El objetivo no comenzará hasta que valides al equipo.\",\n \"pages.admin.company_goals.goal_detail.ai_will_filter_candidates\": \"Recién finalizada la fecha de solicitud, el motor de IA filtrará a los solicitantes automáticamente para seleccionar los que sean la mejor opción. Entonces, solo verás el número de solicitantes necesarios para crear el equipo para el objetivo.\",\n \"pages.admin.company_goals.goal_detail.application_phase.tag.closed\": \"Cerrado\",\n \"pages.admin.company_goals.goal_detail.application_phase.tag.draft\": \"Borrador\",\n \"pages.admin.company_goals.goal_detail.application_phase.tag.open\": \"Permanece abierto\",\n \"pages.admin.company_goals.goal_detail.city\": \"Ciudad\",\n \"pages.admin.company_goals.goal_detail.confirm_launch.description\": \"Vas a lanzar el objetivo. Por favor, continúa solo si está seguro de que el objetivo está listo para ser lanzado.\",\n \"pages.admin.company_goals.goal_detail.confirm_launch.title\": \"Confirmar lanzamiento\",\n \"pages.admin.company_goals.goal_detail.confirm_set_result.description\": \"Vas a establecer el resultado del objetivo. Por favor, continúa solo si está seguro de que el resultado es el correcto.\",\n \"pages.admin.company_goals.goal_detail.confirm_set_result.title\": \"Confirmar {result} resultado\",\n \"pages.admin.company_goals.goal_detail.country\": \"País\",\n \"pages.admin.company_goals.goal_detail.dates_candidates_application\": \"Fechas para la solicitud de candidatos\",\n \"pages.admin.company_goals.goal_detail.dates.application\": \"Aplicar\",\n \"pages.admin.company_goals.goal_detail.dates.end\": \"Objetivo {title} fecha final\",\n \"pages.admin.company_goals.goal_detail.dates.start\": \"Objetivo {title} fecha de inicio\",\n \"pages.admin.company_goals.goal_detail.dates.tag.closed\": \"Cerrado\",\n \"pages.admin.company_goals.goal_detail.dates.tag.draft\": \"Borrador\",\n \"pages.admin.company_goals.goal_detail.dates.tag.in_progress\": \"En curso\",\n \"pages.admin.company_goals.goal_detail.dates.tag.stand_by\": \"Stand by\",\n \"pages.admin.company_goals.goal_detail.dates.tag.waiting_candidates\": \"Esperando candidatos\",\n \"pages.admin.company_goals.goal_detail.dates\": \"Fechas para el logro del objetivo\",\n \"pages.admin.company_goals.goal_detail.description\": \"Descripción\",\n \"pages.admin.company_goals.goal_detail.edit_goal\": \"Editar objetivo\",\n \"pages.admin.company_goals.goal_detail.employee_full_name\": \"{firstName} {lastName}\",\n \"pages.admin.company_goals.goal_detail.employees_applying\": \"Candidatos que están solicitando\",\n \"pages.admin.company_goals.goal_detail.employees_modal.applicants\": \"{number} candidatos\",\n \"pages.admin.company_goals.goal_detail.employees_modal.list_title.employee\": \"Empleado\",\n \"pages.admin.company_goals.goal_detail.employees_modal.list_title.match_with_goal\": \"Coincidiendo con el objetivo\",\n \"pages.admin.company_goals.goal_detail.employees_modal.search.placeholder\": \"Buscar objetivos y desafíos\",\n \"pages.admin.company_goals.goal_detail.employees_modal.title\": \"Encuentra personas para el objetivo\",\n \"pages.admin.company_goals.goal_detail.employees_on_charge\": \"Empleados a cargo de este objetivo\",\n \"pages.admin.company_goals.goal_detail.employees_selected\": \"Empleados seleccionados\",\n \"pages.admin.company_goals.goal_detail.employees.delete.content\": \"Vas a eliminar a este empleado del equipo del objetivo. Puede seleccionarlo para otro objetivo o agregarlo nuevamente más tarde. ¿Estás seguro de que quieres continuar?\",\n \"pages.admin.company_goals.goal_detail.employees.delete.title\": \"Eliminar empleado\",\n \"pages.admin.company_goals.goal_detail.employees\": \"Empleados\",\n \"pages.admin.company_goals.goal_detail.launch_goal\": \"Objetivo de lanzamiento\",\n \"pages.admin.company_goals.goal_detail.launched_goal\": \"Lanzado\",\n \"pages.admin.company_goals.goal_detail.link\": \"Más información\",\n \"pages.admin.company_goals.goal_detail.no_assigned_yet\": \"No hay empleados asignados todavía\",\n \"pages.admin.company_goals.goal_detail.open_for_applications\": \"Objetivo abierto para aplicaciones\",\n \"pages.admin.company_goals.goal_detail.people_needed\": \"Número de personas necesarias\",\n \"pages.admin.company_goals.goal_detail.progress.label\": \"Progreso del objetivo del equipo\",\n \"pages.admin.company_goals.goal_detail.progress.no_progression.application_open\": \"Sigue abierta la fase de solicitud de candidatos\",\n \"pages.admin.company_goals.goal_detail.progress.no_progression.draft\": \"El objetivo todavía está en fase de borrador\",\n \"pages.admin.company_goals.goal_detail.progress.no_progression.team_built\": \"El equipo está creado pero la meta aún no ha comenzado\",\n \"pages.admin.company_goals.goal_detail.progress.no_progression.team_not_built\": \"El equipo todavía no se ha creado\",\n \"pages.admin.company_goals.goal_detail.progress.title\": \"Progreso\",\n \"pages.admin.company_goals.goal_detail.published_for_applicants\": \"Publicado para candidatos\",\n \"pages.admin.company_goals.goal_detail.result_failed\": \"El objetivo fue un fracaso\",\n \"pages.admin.company_goals.goal_detail.result_not_set\": \"El objetivo ha finalizado. Seleccione la evaluación global que mejor se ajuste al resultado final del objetivo.\",\n \"pages.admin.company_goals.goal_detail.result_succeeded\": \"El objetivo fue un éxito\",\n \"pages.admin.company_goals.goal_detail.skills_needed.no_content_yet\": \"Todavía no has proporcionado información\",\n \"pages.admin.company_goals.goal_detail.skills_needed\": \"Habilidades necesarias\",\n \"pages.admin.company_goals.goal_detail.successfully_launched\": \"El objetovo se ha lanzado correctamente\",\n \"pages.admin.company_goals.goal_detail.successfully_result_set\": \"El resultado del objetivo se ha establecido correctamente\",\n \"pages.admin.company_goals.goal_detail.team_skills\": \"Habilidades de equipo\",\n \"pages.admin.internal_promotions.title\": \"Promociones internas\",\n \"pages.admin.company_settings.title\": \"Configuración de la empresa\",\n \"pages.admin.company_settings.save\": \"Guardar perfil\",\n \"pages.admin.company_settings.general_info.title\": \"Información general\",\n \"pages.admin.company_settings.general_info.form.name\": \"Nombre\",\n \"pages.admin.company_settings.general_info.form.description\": \"Descripción\",\n \"pages.admin.company_settings.general_info.form.feedbackEmail\": \"Email de feedback\",\n \"pages.admin.company_settings.general_info.successfully_updated\": \"Información general de la empresa actualizada correctamente\",\n \"pages.admin.company_settings.general_info.chatbot.step\": \"Paso\",\n \"pages.admin.company_settings.general_info.chatbot.teams.title\": \"Mr. Fleebe en Teams\",\n \"pages.admin.company_settings.general_info.chatbot.teams.download.label\": \"Mr. Chatbot\",\n \"pages.admin.company_settings.general_info.chatbot.teams.download.text\": \"Descargar\",\n \"pages.admin.company_settings.general_info.chatbot.teams.step.1\": \"Ir a Administración de Teams\",\n \"pages.admin.company_settings.general_info.chatbot.teams.step.2\": \"Subir la aplicación descargada\",\n \"pages.admin.company_settings.general_info.chatbot.teams.step.3\": \"Asignar permisos\",\n \"pages.admin.company_settings.general_info.chatbot.teams.step.4\": \"Tómalo con calma... El chatbot necesita tiempo para refrescar y estar disponible.\",\n \"pages.admin.company_settings.general_info.chatbot.slack.title\": \"Mr. Fleebe en Slack\",\n \"pages.admin.company_settings.general_info.chatbot.slack.add\": \"Añadir a Slack\",\n \"pages.admin.company_settings.general_info.chatbot.slack.step.1\": \"Hacer click en el botón 'Añadir a Slack'\",\n \"pages.admin.company_settings.general_info.chatbot.slack.step.2\": \"Si se muestra el desplegable de espacio de trabajo de slack, seleccionar el deseado\",\n \"pages.admin.company_settings.general_info.chatbot.slack.step.3\": \"Aceptar las condiciones\",\n \"pages.admin.company_settings.azure_info.title\": \"Información de Azure\",\n \"pages.admin.company_settings.azure_info.form.service_principal_id\": \"Id. de entidad de servicio\",\n \"pages.admin.company_settings.azure_info.form.service_principal_secret\": \"Secreto de entidad de servicio\",\n \"pages.admin.company_settings.azure_info.form.service_principal_secret.placeholder\": \"*****************\",\n \"pages.admin.company_settings.azure_info.form.tenant_id\": \"Id. de inquilino\",\n \"pages.admin.company_settings.azure_info.form.purchase_subscription_id\": \"ID de suscripción de compra\",\n \"pages.admin.company_settings.azure_info.successfully_updated\": \"Información de la compañía de Azure actualizada correctamente\",\n \"pages.admin.skills.grid.name\": \"Nombre\",\n \"pages.admin.skills.grid.description\": \"Descripción\",\n \"pages.admin.skills.grid.status\": \"Estado\",\n \"pages.admin.skills.grid.type\": \"Tipo\",\n \"pages.admin.skill_management.search_placeholder\": \"Habilidades de búsqueda\",\n \"pages.admin.skill_management.new_skill\": \"Agregar nueva habilidad\",\n \"pages.admin.skill_management.filters.status.all\": \"Todos\",\n \"pages.admin.skill_management.filters.status.Pending\": \"Moderación pendiente\",\n \"pages.admin.skill_management.filters.status.Approved\": \"Aprobado\",\n \"pages.admin.skill_management.filters.type.all\": \"Todos\",\n \"pages.admin.skill_management.filters.type.General\": \"General\",\n \"pages.admin.skill_management.filters.type.Language\": \"Idioma\",\n \"pages.admin.skill_management.search_show_all_skills\": \"Todos\",\n \"pages.admin.skill_management.skill_requester_name\": \"Solicitante\",\n \"pages.admin.skill_management.skill_moderator_name\": \"Moderador\",\n \"pages.admin.skill_management.grid.no_results\": \"No hay habilidades con este filtro\",\n \"pages.admin.skill_management.skill_status.Pending\": \"Pendiente de moderación\",\n \"pages.admin.skill_management.skill_status.Approved\": \"Aprobado\",\n \"pages.admin.skill_management.edit_skill\": \"Editar habilidad\",\n \"pages.admin.skill_management.delete\": \"Eliminar habilidad\",\n \"pages.admin.skill_management.moderate\": \"Moderar\",\n \"pages.admin.skill_management.confirm_to_delete\": \"Si elimina la habilidad, se eliminará la habilidad y la solicitud del empleado. ¿Quieres continuar?\",\n \"pages.admin.skill_management.validated_effects.title\": \"Habilidad validada\",\n \"pages.admin.skill_management.validated_effects.text\": \"La habilidad ha sido validada. A partir de ahora, los empleados pueden seleccionarlo para completar su currículum\",\n \"pages.admin.skill_management.noContentYet\": \"Aún no hay contenido\",\n \"pages.admin.talent_detection.chart.no_content\": \"No tenemos suficiente información para crear el gráfico\",\n \"pages.admin.talent_detection.chart.by_age\": \"Por edad\",\n \"pages.admin.talent_detection.chart.by_group\": \"Por grupo\",\n \"pages.admin.talent_detection.employee_motivation.search.placeholder\": \"Búsqueda\",\n \"pages.admin.talent_detection.employee_motivation.title.employee\": \"Empleado\",\n \"pages.admin.talent_detection.employee_motivation.title.motivation\": \"Motivación\",\n \"pages.admin.talent_detection.employee_motivation.title\": \"Rango de motivación de los empleados\",\n \"pages.admin.talent_detection.employees.no_content\": \"Todavía no hay contenido seleccionado\",\n \"pages.admin.talent_detection.employees_group.title\": \"{n} empleado {group} en {category} | {n} empleados {group} en {category}\",\n \"pages.admin.talent_detection.employees_age.title.age_from\": \"{n} empleado en {category} (desde {from} años) | {n} empleados en {category} (desde {from} años)\",\n \"pages.admin.talent_detection.employees_age.title.age_to\": \"{n} empleado en {category} (desde {to} años) | {n} empleados en {category} (desde {to} años)\",\n \"pages.admin.talent_detection.employees_age.title.age_range\": \"{n} empleado en {category} (desde {from} a {to} años) | {n} empleados en {category} (desde {from} a {to} años)\",\n \"pages.admin.talent_detection.employees_age.title.age_all\": \"{n} empleado en {category} | {n} empleados en {category}\",\n \"pages.admin.talent_detection.search\": \"Busca un hobby\",\n \"pages.admin.talent_detection.tip.content\": \"Cuando finalmente se construya el gráfico, haga clic en las áreas coloreadas para ver cómo los empleados se relacionan con los hobbies seleccionados.\",\n \"pages.admin.talent_detection.tip.title\": \"Principales hobbies ocultos\",\n \"pages.admin.talent_detection.title\": \"Detección de talento\",\n \"pages.admin.talent_detection.view_motivation\": \"Ver todos los empleados\",\n \"pages.admin.learning.title\": \"Aprendizaje en la empresa\",\n \"pages.admin.learning.title.short\": \"Aprendizaje\",\n \"pages.admin.learning.search_placeholder\": \"Buscar formaciones\",\n \"pages.admin.learning.create_new_learning_form.title\": \"Cree la formación que su empresa necesita\",\n \"pages.admin.learning.create_new_learning_form.description\": \"Si es necesario, también puede crear cursos que se adapten a las necesidades de su empresa.\",\n \"pages.admin.learning.create_new_learning_form.new_learning\": \"Añadir formación\",\n \"pages.admin.learning.create_new_learning_form.successfully_created\": \"La formación se ha creado correctamente\",\n \"pages.admin.learning.form.create\": \"Agregar nueva formación\",\n \"pages.admin.learning.form.edit\": \"Editar formación\",\n \"pages.admin.learning.form.fields.title.label\": \"Título\",\n \"pages.admin.learning.form.fields.title.placeholder\": \"Título de la formación\",\n \"pages.admin.learning.form.fields.description.label\": \"Descripción\",\n \"pages.admin.learning.form.fields.description.placeholder\": \"Escriba aquí\",\n \"pages.admin.learning.form.fields.startDate.label\": \"Fecha de inicio\",\n \"pages.admin.learning.form.fields.endDate.label\": \"Fecha de finalización\",\n \"pages.admin.learning.form.fields.level.label\": \"Nivel\",\n \"pages.admin.learning.form.fields.duration.label\": \"Duración (horas)\",\n \"pages.admin.learning.form.fields.topics.label\": \"Temas (separados por comas)\",\n \"pages.admin.learning.form.fields.topics.placeholder\": \"Escriba temas\",\n \"pages.admin.learning.form.fields.onsiteInformation.label\": \"Información in situ\",\n \"pages.admin.learning.form.fields.onsiteCountry.label\": \"País\",\n \"pages.admin.learning.form.fields.onsiteCountry.placeholder\": \"Introduzca el país\",\n \"pages.admin.learning.form.fields.onsiteCity.label\": \"Ciudad\",\n \"pages.admin.learning.form.fields.onsiteCity.placeholder\": \"Introducir ciudad\",\n \"pages.admin.learning.form.fields.onsiteAddress.label\": \"Dirección\",\n \"pages.admin.learning.form.fields.onsiteAddress.placeholder\": \"Introduzca la dirección\",\n \"pages.admin.learning.form.fields.onsiteFloor.label\": \"Piso\",\n \"pages.admin.learning.form.fields.onsiteFloor.placeholder\": \"Introducir piso\",\n \"pages.admin.learning.form.fields.onsiteRoom.label\": \"Sala\",\n \"pages.admin.learning.form.fields.onsiteRoom.placeholder\": \"Entrar en la sala\",\n \"pages.admin.learning.form.fields.onsiteSchedule.label\": \"Programación\",\n \"pages.admin.learning.form.fields.onsiteSchedule.placeholder\": \"Introducir programación\",\n \"pages.admin.learning.form.fields.onsiteStartTime.label\": \"Hora inicio\",\n \"pages.admin.learning.form.fields.onsiteEndTime.label\": \"Hora fin\",\n \"pages.admin.learning.form.fields.attachment.label\": \"Adjuntar portada de imagen\",\n \"pages.admin.learning.form.fields.courseUrl.title\": \"Escriba aquí la URL del curso\",\n \"pages.admin.learning.form.fields.courseUrl.description\": \"Póngase en contacto con el proveedor para obtener un enlace válido para el curso.\",\n \"pages.admin.learning.form.fields.courseUrl.label\": \"URL de la formación\",\n \"pages.admin.learning.form.fields.courseUrl.placeholder\": \"Por ejemplo, https://www.training.com/course/name-of-the-course/\",\n \"pages.admin.learning.form.save\": \"Crear formación\",\n \"pages.admin.learning.form.fields.language.label\": \"Idioma\",\n \"pages.admin.learning.form.languages.english\": \"Inglés\",\n \"pages.admin.learning.form.languages.spanish\": \"Español\",\n \"pages.admin.learning.prompt.delete.title\": \"Eliminar curso\",\n \"pages.admin.learning.prompt.delete.description\": \"Vas a eliminar este curso. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?\",\n \"shared.close\": \"Cerrar\",\n \"shared.languages.english\": \"Inglés\",\n \"shared.languages.en\": \"Inglés\",\n \"shared.languages.spanish\": \"Español\",\n \"shared.languages.es\": \"Español\",\n \"shared.languages.french\": \"Francés\",\n \"shared.languages.fr\": \"Francés\",\n \"shared.languages.german\": \"Alemán\",\n \"shared.languages.italian\": \"Italiano\",\n \"shared.languages.portuguese\": \"Portugués\",\n \"shared.app_tag.no_content_yet\": \"Aún no ha proporcionado información\",\n \"shared.today\": \"Hoy\",\n \"shared.yesterday\": \"Ayer\",\n \"shared.lastUpdate\": \"Última actualización\",\n \"shared.not_available\": \"N/A\",\n \"shared.yes\": \"Sí\",\n \"shared.no\": \"No\",\n \"shared.back\": \"Atrás\",\n \"shared.results\": \"{n} resultado | {n} resultados\",\n \"shared.resultsFor\": \"{n} Resultado para '{name}' | {n} Resultados para '{name}'\",\n \"shared.applicants\": \"{n} solicitante | {n} solicitantes\",\n \"shared.assigned\": \"{n} empleado asignado | {n} empleados asignados\",\n \"shared.attachment.label\": \"Elija un archivo para cargar\",\n \"shared.time.minutes\": \"{time} min\",\n \"shared.time.hours\": \"{time} h\",\n \"shared.are_you_sure\": \"¿Estás seguro de querer continuar?\",\n \"pages.admin.employee_roles.search_placeholder\": \"Buscar por Nombre, Apellido y Email\",\n \"pages.admin.admin_roles.roles.grid.email\": \"Correo electrónico\",\n \"pages.admin.admin_roles.roles.grid.name\": \"Nombre\",\n \"pages.admin.admin_roles.roles.grid.surname\": \"Apellido\",\n \"pages.admin.admin_roles.roles.grid.role\": \"Rol\",\n \"pages.admin.admin_roles.roles.grid.role.Administrator\": \"Administrador\",\n \"pages.admin.admin_roles.roles.grid.role.ITManager\": \"IT Mánager\",\n \"pages.admin.admin_roles.roles.grid.role.User\": \"Usuario\",\n \"pages.admin.admin_roles.roles.grid.role.all\": \"Todos\",\n \"pages.goals_challenges.details.is_open.label\": \"Objetivo abierto para aplicaciones\",\n \"pages.goals_challenges.details.people_needed.label\": \"Se necesita gente\",\n \"pages.goals_challenges.details.country.label\": \"País\",\n \"pages.goals_challenges.details.city.label\": \"Ciudad\",\n \"pages.goals_challenges.details.start_date.label\": \"Fecha de inicio del objetivo\",\n \"pages.goals_challenges.details.end_date.label\": \"Fecha de finalización del objetivo\",\n \"pages.goals_challenges.details.my_progress.label\": \"Progreso de objetivos\",\n \"pages.goals_challenges.details.coworkers_with_this_goal.label\": \"Coworker con este objetivo | Coworkers con este objetivo\",\n \"pages.goals_challenges.details.participate\": \"Participar\",\n \"pages.goals_challenges.details.reject\": \"Reject\",\n \"pages.goals_challenges.details.reject_application\": \"Rechazar mi solicitud\",\n \"pages.goals_challenges.details.colleagues_registered\": \"{n} colega registrado | {n} colegas registrados\",\n \"pages.my_groups.title\": \"Mis Grupos\",\n \"pages.my_groups.search.placeholder\": \"Buscar empleados...\",\n \"pages.my_groups.grid.actions.view_profile\": \"Ver perfil\",\n \"pages.my_groups.view_questions\": \"Ver preguntas\",\n \"shared.company_groups_questions.title\": \"Preguntas\",\n \"shared.company_groups_questions.subtitle\": \"Preguntas del formulario\",\n \"shared.company_groups_questions.created_questions\": \"Preguntas creadas\",\n \"shared.company_groups_questions.sent_questions\": \"Preguntas enviadas\",\n \"shared.company_groups_questions.search.placeholder\": \"Buscar preguntas\",\n \"shared.company_groups_questions.add_new_question\": \"Agregar nueva pregunta\",\n \"shared.company_groups_questions.remove\": \"Borrar preguntas\",\n \"shared.company_groups_questions.send\": \"Enviar preguntas\",\n \"shared.company_groups_questions.tip.title\": \"Nuevas preguntas\",\n \"shared.company_groups_questions.tip.content\": \"Tus empleados tienen talento por lo que su opinión es valiosa. Crea desde aquí un formulario para recibir sus comentarios.\",\n \"shared.company_groups_questions.grid.field.question\": \"Pregunta\",\n \"shared.company_groups_questions.grid.field.answeredPercentage\": \"Participación (%)\",\n \"shared.company_groups_questions.grid.field.send_date\": \"Enviada\",\n \"shared.company_groups_questions.view_kpis\": \"Ver KPIs\",\n \"shared.company_groups_questions.view_questions\": \"Ver Preguntas\",\n \"shared.company_groups_questions.grid.actions.remove\": \"Eliminar pregunta del grupo\",\n \"shared.company_groups_questions.grid.actions.preview\": \"Vista previa de la pregunta\",\n \"shared.company_groups_questions.grid.actions.edit\": \"Editar pregunta\",\n \"shared.company_groups_questions.send_to_groups.title\": \"Enviar preguntas a grupos\",\n \"shared.company_groups_questions.send_to_groups.content\": \"Selecciona los grupos de destinatarios a los que deseas enviar la encuesta. Solo un administrador puede crear un grupo de destinatarios. Si no puedes encontrar el grupo que buscas, por favor ponte en contacto con tu administrador de Recursos Humanos.\",\n \"shared.company_groups_questions.send_to_groups.search.placeholder\": \"Buscar\",\n \"shared.company_groups_questions.send_to_groups.buttons.send\": \"Enviar\",\n \"shared.company_groups_questions.send_to_groups.fields.group_name\": \"Nombre del grupo\",\n \"shared.company_groups_questions.send_to_groups.fields.people\": \"Miembros\",\n \"shared.question_answers.title\": \"Respuestas a '{text}'\",\n \"shared.question_answers.search.placeholder\": \"Buscar\",\n \"shared.question_answers.no_answer\": \"Sin respuesta\",\n \"shared.question_answers.action.show\": \"Mostrar respuestas\",\n \"shared.question_answers.statistics.metric\": \"{count} de {total}\",\n \"shared.question_answers.statistics.copy\": \"Personas han respondido\",\n \"shared.question_kpi.pin\": \"Anclar esta gráfica para verla en el panel\",\n \"shared.question_kpi.unpin\": \"Desanclar esta gráfica del panel\",\n \"shared.question_kpi.action.show\": \"Ver KPI\",\n \"shared.question_kpi.no_answers\": \"Esta pregunta aún no ha sido respondida\",\n \"shared.employee.full_name\": \"{firstName} {lastName}\",\n \"shared.company-groups.grid.full_name\": \"Nombre\",\n \"shared.company-groups.grid.email\": \"Email\",\n \"shared.agree_share_information\": \"Acepto compartir mi información con la empresa\",\n \"shared.skillEditor.newSkill.skill.title\": \"¿No encuentras la habilidad?\",\n \"shared.skillEditor.newSkill.skill.addNewButton\": \"Agregar nueva habilidad\",\n \"shared.skillEditor.newSkill.language.title\": \"¿No encuentras el idioma?\",\n \"shared.skillEditor.newSkill.language.addNewButton\": \"Agregar nuevo idioma\",\n \"shared.skillEditor.skill.search\": \"Buscar una habilidad\",\n \"shared.skillEditor.language.search\": \"Buscar un idioma\",\n \"shared.skillEditor.skill.pendingArea\": \"Pendiente de habilidades de aprobación:\",\n \"shared.skillEditor.language.pendingArea\": \"Idiomas pendientes de aprobación:\",\n \"shared.skillCreator.skill.title\": \"Crear nueva habilidad\",\n \"shared.skillCreator.language.title\": \"Crear nuevo idioma\",\n \"shared.skillCreator.skill.hrMessage\": \"La nueva habilidad debe ser validada por el administrador de recursos humanos.\",\n \"shared.skillCreator.language.hrMessage\": \"El nuevo idioma debe ser validado por el administrador de recursos humanos.\",\n \"shared.skillCreator.form.skill_type_label\": \"Tipo de habilidad\",\n \"shared.skillCreator.form.description\": \"Descripción\",\n \"shared.skillCreator.form.name\": \"Nombre\",\n \"shared.skillCreator.form.skill.createButton\": \"Crear habilidad\",\n \"shared.skillCreator.form.language.createButton\": \"Crear idioma\",\n \"shared.table.rows_per_page\": \"Filas por página\",\n \"shared.table.go_to_first_page\": \"Ir a la primera página\",\n \"shared.table.go_to_previous_page\": \"Ir a la página anterior\",\n \"shared.table.go_to_next_page\": \"Ir a la página siguiente\",\n \"shared.table.go_to_last_page\": \"Ir a la última página\",\n \"shared.tips.title\": \"Consejo\",\n \"shared.tips.dismiss\": \"Entendido\",\n \"shared.reminder.title\": \"Amable recordatorio\",\n \"shared.feedback-sender.feedback-button\": \"Feedback\",\n \"shared.feedback-sender.bug-button\": \"Bug\",\n \"shared.feedback-sender.feedback-message\": \"Por favor, escriba aquí el feedback. Muchas gracias.\",\n \"shared.feedback-sender.bug-message\": \"Por favor, especifique como reproducir este bug o incluya un pantallazo.\",\n \"entities.goals_challenges.has_not_started\": \"El objetivo aún no ha comenzado\",\n \"entities.goals_challenges.has_finished\": \"El objetivo está terminado\",\n \"entities.goals_challenges.no_goals_yet\": \"Todavía no tienes ningún objetivo\",\n \"entities.goals_challenges.employee_no_goals_yet\": \"El empleado aún no tiene ningún objetivo\",\n \"entities.learning.language\": \"Idioma\",\n \"entities.learning.duration\": \"Duración\",\n \"entities.learning.level\": \"Nivel\",\n \"entities.learning.topics\": \"Temas\",\n \"entities.learning.more_information\": \"Más información\",\n \"entities.my_ideal_job.title\": \"Mi trabajo ideal\",\n \"entities.my_ideal_job.tab.learning_path\": \"Ruta de aprendizaje\",\n \"entities.my_ideal_job.tab.my_training\": \"Mi entrenamiento\",\n \"entities.my_ideal_job.tab.company_training\": \"Entrenamiento de la compañía\",\n \"entities.my_ideal_job.general_skills\": \"Habilidades\",\n \"entities.my_ideal_job.languages\": \"Idiomas\",\n \"entities.my_ideal_job.tip.content\": \"¿Cuál sería tu trabajo ideal en este momento? ¡Complétalo aquí para ser guiado en el logro de tus metas!\",\n \"entities.my_ideal_job.add_job\": \"Agregar trabajo ideal\",\n \"entities.my_ideal_job.update_job\": \"Actualiza tu trabajo ideal\",\n \"entities.my_ideal_job.fields.title\": \"Título\",\n \"entities.my_ideal_job.fields.title.placeholder\": \"Añade un título para tu trabajo ideal\",\n \"entities.my_ideal_job.fields.description\": \"Descripción\",\n \"entities.my_ideal_job.fields.description.placeholder\": \"Añade una descripción para tu trabajo ideal\",\n \"entities.my_ideal_job.recommended_learning\": \"Aprendizaje recomendado\",\n \"entities.my_interests.hobbies\": \"Hobbies\",\n \"entities.my_interests.add-hobbies\": \"Editar pasatiempos\",\n \"entities.my_interests.hobbies.category\": \"Categoría\",\n \"entities.my_interests.hobbies.edit-modal.title\": \"Hobbies\",\n \"entities.my_interests.hobbies.edit-modal.search\": \"Busca un hobby\",\n \"entities.my_interests.hobbies.edit-modal.needNew\": \"¿No encuentras el hobby?\",\n \"entities.my_interests.hobbies.edit-modal.newButton\": \"Añadir nuevo hobby\",\n \"entities.my_interests.hobbies.hobbies-creator.title\": \"Crear nuevo hobby\",\n \"entities.my_interests.hobbies.hobbies-creator.createButton\": \"Crear hobby\",\n \"entities.my_interests.hobbies.hobbies-creator.form.name\": \"Nombre\",\n \"entities.my_interests.hobbies.category.sport\": \"Deportes\",\n \"entities.my_interests.hobbies.category.music\": \"Música\",\n \"entities.my_interests.hobbies.category.culture\": \"Cultura\",\n \"entities.my_interests.hobbies.category.technology\": \"Tecnología\",\n \"entities.my_interests.hobbies.category.others\": \"Otros\",\n \"entities.my_interests.hobbies.no_hobbies\": \"No hay hobbies definidos\",\n \"entities.my_interests.hobbies.age\": \"Edad\",\n \"entities.skills.Low\": \"Bajo\",\n \"entities.skills.Medium\": \"Medio\",\n \"entities.skills.High\": \"Alto\",\n \"entities.courses.level.empty\": \"--\",\n \"entities.courses.level.1\": \"Principiante\",\n \"entities.courses.level.2\": \"Avanzado\",\n \"entities.courses.level.3\": \"Experto\",\n \"level_KPI.x.title\": \"Votos\",\n \"pages.admin.company_settings.employee_groups.title\": \"Grupos de empleados\",\n \"pages.admin.company_settings.role_management.title\": \"Roles\",\n \"pages.admin.company_settings.skill_management.title\": \"Competencias\",\n \"pages.admin.company_settings.chatbot.title\": \"Mr. Fleebe\",\n \"pages.admin.company_settings.employee_groups.search_placeholder\": \"Buscar grupos de empleados\",\n \"pages.admin.company_settings.employee_groups.new_group\": \"Añadir nuevo grupo\",\n \"pages.admin.company_settings.employee_groups.fields.name\": \"Nombre\",\n \"pages.admin.company_settings.employee_groups.fields.description\": \"Descripción\",\n \"pages.admin.company_settings.employee_groups.fields.people\": \"Miembros\",\n \"pages.admin.company_settings.employee_groups.fields.courses\": \"Cursos\",\n \"pages.admin.company_settings.employee_groups.fields.employee-count\": \"sin personas | {n} persona | {n} personas\",\n \"pages.admin.company_settings.employee_groups.fields.course-count\": \"sin cursos | {n} curso | {n} cursos\",\n \"pages.admin.company_settings.employee_groups.no_results\": \"No hay grupos con estos filtros\",\n \"pages.admin.company_settings.employee_groups.delete.title\": \"Eliminar grupo de empleados\",\n \"pages.admin.company_settings.employee_groups.delete.description\": \"Vas a eliminar este grupo de empleados. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?\",\n \"pages.admin.company_settings.employee_groups.editor.title\": \"Editar grupo de empleados\",\n \"pages.admin.company_settings.employee_groups.editor.new_group\": \"Nuevo grupo\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.title\": \"Importar lista de empleados\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.tip.title\": \"Cómo importar un grupo.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.tip.description\": \"Importa un fichero con un formato válido. La primera columna debe denominarse 'Email' y contener los emails de los empleados que quieres añadir al grupo.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.no_email_column_error.title\": \"No existe la columna 'Email'.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.no_email_column_error.description\": \"Debe exisitir una columna denominada 'Email'.
Para nombrar la columna, el texto de la primera fila de la columna debe ser 'Email'. Por favor, importa un nuevo fichero que incluya esta columna.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.not_all_are_emails_error.title\": \"Ninguno de los valores es un email válido.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.not_all_are_emails_error.description\": \"No todos los valores de la columna 'Email' son emails válidos:

{notValidEmails}

Por favor, revisa el formato.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.emails_not_matched.title\": \"No se han encontrado los emails.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.emails_not_matched.description\": \"Los siguientes emails no se han encontrado entre los empleados:

{notFoundEmails}

El resto de emails han sido añadidos al grupo.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.all_emails_matched.title\": \"Empleados añadidos al grupo.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.all_emails_matched.description\": \"Todos los empleados han sido añadidos al grupo.\",\n \"pages.admin.company_settings.employee_groups.editor.search_placeholder\": \"Buscar empleados\",\n \"pages.admin.company_settings.employee_groups.editor.selected_employees\": \"Seleccionados {n} empleados de {count}\",\n \"pages.admin.company_settings.employee_groups.editor.grid.actions.manage\": \"Gestionar\",\n \"pages.admin.company_settings.employee_groups.role.Manager\": \"Mánager\",\n \"pages.admin.company_settings.employee_groups.role.Viewer\": \"Usuario\",\n \"pages.admin.company_settings.employee_groups.role.all\": \"Todos\",\n \"pages.admin.company_settings.employee_groups.tabs.employees\": \"Empleados\",\n \"pages.admin.company_settings.employee_groups.tabs.questions\": \"Preguntas\",\n \"pages.admin.company_settings.employee_groups.tabs.learning\": \"Cursos\",\n \"pages.admin.company_settings.employee_groups.manage.title.Employees\": \"Empleados y roles\",\n \"pages.admin.company_settings.employee_groups.manage.title.Questions\": \"Gestión de preguntas\",\n \"pages.admin.company_settings.employee_groups.manage.title.Learning\": \"Cursos asignados a este grupo\",\n \"pages.admin.company_settings.employee_groups.manage.learning.select_training\": \"Seleccionar curso\",\n \"pages.admin.company_settings.employee_groups.manage.learning.add_training\": \"Añadir nuevo curso\",\n \"pages.admin.company_settings.employee_groups.manage.learning.no_content\": \"Sin conctenido de momento\",\n \"pages.admin.company_settings.employee_groups.manage.learning.search.placeholder\": \"Buscar cursos para este grupo\",\n \"pages.admin.company_settings.employees-with-groups.title\": \"Gestión de Permisos\",\n \"pages.admin.company_settings.employees-with-groups.search_placeholder\": \"Buscar empleados\",\n \"pages.admin.company_settings.employees-with-groups.fields.first-name\": \"Nombre\",\n \"pages.admin.company_settings.employees-with-groups.fields.last-name\": \"Apellidos\",\n \"pages.admin.company_settings.employees-with-groups.fields.email\": \"Email\",\n \"pages.admin.company_settings.employees-with-groups.fields.group-count\": \"Grupos\",\n \"pages.admin.company_settings.employees-with-groups.group-count\": \"{n} grupo | {n} grupos\",\n \"pages.admin.company_settings.employees-with-groups.actions.edit\": \"Editar grupo\",\n \"pages.admin.company_settings.employees-with-groups.actions.manage\": \"Gestionar grupo\"\n}","{\n \"buttons.next\": \"Suivant\",\n \"buttons.previous\": \"Précédent\",\n \"buttons.edit\": \"Modifier\",\n \"buttons.answer\": \"Réponse\",\n \"buttons.save\": \"Enregistrer\",\n \"buttons.delete\": \"Supprimer\",\n \"buttons.add\": \"Ajouter\",\n \"buttons.create\": \"Nouveau\",\n \"buttons.cancel\": \"Annuler\",\n \"buttons.continue\": \"Continuer\",\n \"buttons.save_draft\": \"Enregistrer en tant que brouillon\",\n \"buttons.publish\": \"Publier\",\n \"buttons.download\": \"Download\",\n \"actions.saved\": \"Informations sauvegardées avec succès\",\n \"avatar.initials\": \"{first}{last}\",\n \"skill_range.skill_names.low\": \"Faible\",\n \"skill_range.skill_names.medium\": \"Medium\",\n \"skill_range.skill_names.high\": \"High\",\n \"roles.user\": \"Employé\",\n \"roles.groupmanager\": \"Dirigeant de groupe, chef de groupe\",\n \"roles.administrator\": \"Administrateur\",\n \"roles.itmanager\": \"Responsable informatique\",\n \"errors.DateShouldBeGreaterThanOrEqualToToday\": \"La date doit être aujourd’hui ou plus tard\",\n \"errors.BirthDateOutOfRange\": \"Date non valide\",\n \"errors.CompanyEmployeeGroupCourseAlreadyAssigned\": \"Le cours a déjà été attribué à ce groupe\",\n \"errors.CompanyEmployeeGroupEmployeeNotFound\": \"Employé introuvable. Veuillez actualiser la page\",\n \"errors.CompanyEmployeeGroupExistsWithName\": \"Un groupe portant ce nom existe déjà.\",\n \"errors.CompanyEmployeeGroupNotFound\": \"Le groupe d'employés est introuvable. Veuillez actualiser la page\",\n \"errors.CompanyEmployeeGroupsNotFound\": \"Certains groupes d'employés sont introuvables\",\n \"errors.CompanyNotFound\": \"La société n'a pas été trouvée\",\n \"errors.CourseNotFound\": \"Cours introuvable\",\n \"errors.EmployeeAlreadyAssigned\": \"L’employé sélectionné est déjà affecté à l’objectif\",\n \"errors.EmployeesCannotBeAddedToAnEndedGoal\": \"Les employés ne peuvent pas être affectés à un objectif terminé\",\n \"errors.EmployeesCannotBeRemovedFromAnEndedGoal\": \"Les employés ne peuvent pas être désaffectés d’un objectif terminé\",\n \"errors.ErrorWhileConnectingToAzure\": \"La connexion à Azure avec les données fournies n’a pas pu être établie. Veuillez confirmer que l’ID client et le secret sont corrects.\",\n \"errors.ExpectedLinkedinFilesWereNotFound\": \"Les fichiers LinkedIn attendus n’ont pas été trouvés. S’il vous plaît, assurez-vous que les fichiers 'Education', 'Langues', 'Postes', 'Profil' ou 'Compétences' existent\",\n \"errors.FieldRequired\": \"Champ obligatoire\",\n \"errors.FileExtensionNotSupported\": \"L’extension de fichier n’est pas prise en charge\",\n \"errors.FileSizeExceeded\": \"Taille du fichier dépassée\",\n \"errors.GoalCannotBeLaunchedAfterItStarted\": \"Veuillez mettre à jour la 'Date de début de l’objectif' avec une date égale ou future à la date actuelle\",\n \"errors.GoalCannotBeLaunchedWhileApplicationIsOpen\": \"La phase d’application est toujours ouverte. S’il vous plaît, attendez la fin de la phase de candidature avant de lancer l’objectif\",\n \"errors.GoalCannotBeLaunchedWithFewerPeopleThanNeeded\": \"Le nombre de personnes affectées est inférieur aux besoins. S’il vous plaît, affectez plus de personnes avant de lancer l’objectif\",\n \"errors.GoalPeopleCannotBeGreaterThanTheNumberOfPeopleNeeded\": \"Le nombre de personnes nécessaires ne peut être dépassé\",\n \"errors.GoalResultCannotBeSetUntilItEnds\": \"Le résultat de l’objectif ne peut pas être défini tant qu’il n’est pas terminé\",\n \"errors.GoalResultCannotBeUpdated\": \"Le résultat de l’objectif a déjà été défini et ne peut pas être mis à jour\",\n \"errors.GoalsFinishedCannotBeUpdated\": \"Les objectifs terminés ne peuvent pas être mis à jour\",\n \"errors.GoalStartDateNotValid\": \"Date de début invalide\",\n \"errors.GoalEndDateNotValid\": \"Date de fin invalide\",\n \"errors.HobbyAlreadyExistWithName\": \"Un passe-temps portant ce nom existe déjà.\",\n \"errors.IdealLearningAlreadyExistsWithTitle\": \"Une formation portant ce titre existe déjà\",\n \"errors.InterestAlreadyExistsWithTitle\": \"Un intérêt portant ce titre existe déjà\",\n \"errors.LearningStartDateNotValid\": \"La date de début n’est pas valide\",\n \"errors.QuestionIsAlreadyPublished\": \"La question est déjà publiée\",\n \"errors.QuestionNotFound\": \"La question n’a pas été trouvée\",\n \"errors.QuestionNotFoundCannotBeAnswered\": \"La question n’a pas été trouvée. S’il vous plaît, rafraîchissez la page\",\n \"errors.QuestionsWithAnswersCannotBeUpdated\": \"Les questions avec réponses ne peuvent pas être mises à jour\",\n \"errors.QuestionsNotFound\": \"Certaines questions introuvables\",\n \"errors.RequestNotFound\": \"La compétence demandée est introuvable. S’il vous plaît, rafraîchissez la page\",\n \"errors.SkillAlreadyBeingCreatedWithName\": \"Une compétence portant ce nom est en cours de création.\",\n \"errors.SkillAlreadyExistWithName\": \"Une compétence portant ce nom existe déjà.\",\n \"errors.UnexpectedFileFormat\": \"Un format de fichier inattendu a été trouvé\",\n \"errors.UnknownError\": \"Erreur inconnue\",\n \"errors.UsersInAzureAdExceedsPurchasedUsers\": \"Le nombre d'utilisateurs trouvés dans Azure Active Directory dépasse le nombre d'utilisateurs achetés\",\n \"errors.EmployeeNotFound\": \"Employé introuvable\",\n \"inputs.a_date_has_to_be_after_another_date\": \"'{first}' date doit être postérieure à '{second}'\",\n \"inputs.date_less_than_or_equal_to_today\": \"La date doit être antérieure ou égale à aujourd’hui\",\n \"inputs.date_today_or_later\": \"La date doit être aujourd’hui ou plus tard\",\n \"inputs.DateNotValid\": \"Date non valide\",\n \"inputs.educationMode.label\": \"Mode\",\n \"inputs.educationMode.online.label\": \"En ligne\",\n \"inputs.educationMode.presence.label\": \"Sur site\",\n \"inputs.end_date\": \"Fin\",\n \"inputs.max_length_exceeded\": \"Le champ doit comporter au maximum {maxLength} caractères\",\n \"inputs.max_number_items_exceeded\": \"Le champ doit être au maximum {maxItems} items\",\n \"inputs.max_required\": \"Le champ doit être au maximum {maximum}\",\n \"inputs.min_required\": \"Le champ doit être au moins {minimum}\",\n \"inputs.options.required\": \"L’option {option} est obligatoire\",\n \"inputs.required\": \"Champ obligatoire\",\n \"inputs.start_date\": \"Démarrer\",\n \"inputs.tags.placeholder\": \"Tapez ici pour ajouter...\",\n \"inputs.to_date_has_to_be_after_from_date\": \"La date 'à' doit être postérieure à la date 'De'\",\n \"inputs.upload_document.invalid_extension\": \"Le fichier téléchargé a une extension non valide\",\n \"inputs.upload_document.maximum_size_MB\": \"{size} MB max size\",\n \"inputs.upload_document.no_document_uploaded\": \"Aucun document téléchargé encore\",\n \"inputs.upload_document.prompt.delete.description\": \"Vous allez supprimer ce fichier. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?\",\n \"inputs.upload_document.prompt.delete.title\": \"Supprimer le fichier\",\n \"inputs.upload_document.prompt.file_to_big.title\": \"Fichier trop gros\",\n \"inputs.upload_document.prompt.file_to_big.description\": \"Le fichier que vous essayez de télécharger est trop volumineux.\",\n \"inputs.upload_document.supported_types\": \"Types pris en charge: {types}\",\n \"inputs.url_not_valid\": \"Le champ doit être une URL valide\",\n \"pages.ai_assistant.title\": \"AI Assistant\",\n \"pages.ai_assistant.header.title\": \"Questions aux employés\",\n \"pages.ai_assistant.header.subtitle\": \"Bienvenue dans votre assistant IA. Votre assistant IA vous posera des questions via le chatbot, vos réponses lui donneront des informations pour vous donner le meilleur parcours d’apprentissage et l’expérience dans Fleebe. Si vous avez besoin de modifier vos réponses, vous pouvez le faire ici à tout moment.\",\n \"pages.ai_assistant.question.level\": \"Développez votre réponse ou partagez vos commentaires (positifs ou constructifs)\",\n \"pages.ai_assistant.question.tags\": \"Tapez vos options (séparées par des virgules ou entrée)\",\n \"pages.ai_assistant.no.questions\": \"Votre administration n’a pas encore configuré les questions\",\n \"pages.header.role\": \"Rôle\",\n \"pages.header.goToAdministratorArea\": \"Aller à la zone administrateur\",\n \"pages.header.goToEmployeeArea\": \"Aller à l’espace employé\",\n \"pages.header.logout\": \"Déconnexion\",\n \"pages.header.edit\": \"Modifier\",\n \"pages.header.picture-uploader.label\": \"Choisissez une image pour votre avatar\",\n \"pages.header.profile-editor.personal-information.title\": \"Informations personnelles\",\n \"pages.header.profile-editor.personal-information.birthDate\": \"Date de naissance\",\n \"pages.header.profile-editor.app-settings.title\": \"Paramètres de l’application\",\n \"pages.header.profile-editor.app-settings.languages.title\": \"Langue\",\n \"pages.header.profile-editor.app-settings.languages.english\": \"English\",\n \"pages.header.profile-editor.app-settings.languages.en\": \"English\",\n \"pages.header.profile-editor.app-settings.languages.spanish\": \"Español\",\n \"pages.header.profile-editor.app-settings.languages.es\": \"Español\",\n \"pages.header.profile-editor.app-settings.languages.french\": \"Français\",\n \"pages.header.profile-editor.app-settings.languages.fr\": \"Français\",\n \"pages.header.profile-editor.app-settings.languages.german\": \"Deutsch\",\n \"pages.header.profile-editor.app-settings.languages.italian\": \"Italiano\",\n \"pages.header.profile-editor.app-settings.languages.portuguese\": \"Português\",\n \"pages.goals_challenges.title\": \"Objectifs & Défis\",\n \"pages.goals_challenges.search.placeholder\": \"Objectifs et défis de recherche\",\n \"pages.goals_challenges.featured.title\": \"Objectifs et défis en vedette\",\n \"pages.goals_challenges.featured.vacant_positions\": \"Uniquement {vacantPositions} postes vacants\",\n \"pages.goals_challenges.featured.days_left\": \"{days} jours restants\",\n \"pages.goals_challenges.featured.dates\": \"De {start} à {end}\",\n \"pages.goals_challenges.my.title\": \"Mes objectifs et défis\",\n \"pages.goals_challenges.my.progress\": \"Progrès\",\n \"pages.goals_challenges.my.progress_amount\": \"{progress}%\",\n \"pages.goals_challenges.no.goals\": \"Votre administration n’a pas encore configuré les objectifs\",\n \"pages.learning.title\": \"Mon apprentissage\",\n \"pages.learning.learning.tab\": \"Apprentissage\",\n \"pages.learning.attachment.label\": \"Choisissez un certificat à télécharger\",\n \"pages.learning.search\": \"Rechercher\",\n \"pages.learning.search.no_results\": \"Il n’y a pas de cours avec ce filtre\",\n \"pages.learning.search.no_copy\": \"Nous ne copions ™pas vos recherches. Il s’agit d’un espace privé.\",\n \"pages.learning.search.title\": \"Résultats de recherche pour {searchTerm}\",\n \"pages.learning.featured.title\": \"Apprentissage sélectionné pour vous\",\n \"pages.learning.filter.type.title\": \"Type\",\n \"pages.learning.filter.type.all\": \"Tous\",\n \"pages.learning.filter.type.CourseCoursera\": \"Coursera\",\n \"pages.learning.filter.type.CourseEdX\": \"edX\",\n \"pages.learning.filter.type.CourseLinkedInLearning\": \"LinkedIn\",\n \"pages.learning.filter.type.CourseIntefi\": \"Intefi\",\n \"pages.learning.filter.type.CourseCompany\": \"Formation interne\",\n \"pages.learning.mode.online\": \"en ligne\",\n \"pages.learning.mode.onsite\": \"sur site\",\n \"pages.learning.rateTitle\": \"Évaluez cette formation\",\n \"pages.learning.rateObservations.placeHolder\": \"Il est très important pour nous d’obtenir ™des commentaires de votre part pour personnaliser notre plateforme d’apprentissage avec les meilleurs cours adaptés à vous.\",\n \"pages.learning.trainingComplete\": \"Formation terminée\",\n \"pages.learning.sendTraining\": \"Envoyer la formation\",\n \"pages.learning.confirmSetTrainingAsComplete.title\": \"Définir la formation comme terminée\",\n \"pages.learning.confirmSetTrainingAsComplete.text\": \"Vous allez définir une formation comme terminée. Cette action ne peut pas être annulée, alors assurez-vous d’avoir raison.\",\n \"pages.learning.goToTheTraining\": \"Aller à la formation\",\n \"pages.learning.certificateReminder\": \"Si vous avez un certificat ou un diplôme qui accède à une formation terminée, n’oubliez pas de l’ajouter à votre expérience actuelle.\",\n \"pages.learning.siteInformation.title\": \"Informations de la formation sur site\",\n \"pages.learning.tip.content\": \"Plus vous fournissez d’informations sur Fleebe, CV, intérêt, Emploi idéal... , plus la recommandation de votre assistant IA sera précise pour vous guider vers vos aspirations futures.\",\n \"pages.learning.my_learning_path.title\": \"Mon parcours d’apprentissage\",\n \"pages.learning.my_learning_path.tab\": \"Mon parcours d’apprentissage\",\n \"pages.learning.my_learning_path.introduction.title\": \"Parcours de formation à l’IA vers mon emploi idéal\",\n \"pages.learning.my_learning_path.introduction.explanation\": \"En suivant les paramètres établis dans la configuration de votre position idéale, notre IA a créé un itinéraire d’entraînement qui peut vous aider à atteindre votre objectif. Rappelez-vous que cette aide n’est fournie qu’à titre indicatif et que vous décidez en fin de compte de ce qui vous convient le mieux.\",\n \"pages.learning.my_learning_path.areas.skills\": \"Compétences\",\n \"pages.learning.my_learning_path.areas.languages\": \"Langues\",\n \"pages.learning.my_learning_path.areas.financial\": \"Éducation financière\",\n \"pages.learning.my_learning_path.levels.beginner\": \"Débutant\",\n \"pages.learning.my_learning_path.levels.advanced\": \"Avancé\",\n \"pages.learning.my_learning_path.levels.expert\": \"Expert\",\n \"pages.learning.my_learning_path.additional_learning\": \"Apprentissage supplémentaire\",\n \"pages.learning.my_learning_path.no_suggestions\": \"Aucune suggestion dans ce domaine/niveau\",\n \"pages.learning.my_learning_path.recalculate.title\": \"Je veux que mon parcours d'apprentissage soit recalculé\",\n \"pages.learning.my_learning_path.recalculate.activate_explanation\": \"Le recalcul sera effectué sans surveillance pendant la nuit\",\n \"pages.learning.my_training.title\": \"Ma formation\",\n \"pages.learning.my_training.tab\": \"Ma formation\",\n \"pages.learning.my_training.tip.content\": \"Votre parcours d’apprentissage ne changera pas si vous ne changez pas votre emploi idéal.\",\n \"pages.learning.my_training.no_completed\": \"Aucune formation n’est encore terminée\",\n \"pages.my_interests.form.idealLearning.create\": \"Ajouter une nouvelle formation\",\n \"pages.my_interests.form.idealLearning.create.title\": \"Nouvelle formation\",\n \"pages.my_interests.form.idealLearning.delete.content\": \"Vous allez supprimer la formation sélectionnée. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?\",\n \"pages.my_interests.form.idealLearning.delete.title\": \"Supprimer la formation\",\n \"pages.my_interests.form.idealLearning.edit.title\": \"Modifier la formation\",\n \"pages.my_interests.form.idealLearning.fields.description.label\": \"Description de la formation\",\n \"pages.my_interests.form.idealLearning.fields.description.placeholder\": \"Entrez une brève description\",\n \"pages.my_interests.form.idealLearning.fields.title.label\": \"Titre de la formation\",\n \"pages.my_interests.form.idealLearning.fields.title.placeholder\": \"Entrez un titre\",\n \"pages.my_interests.form.interests.create\": \"Ajouter un nouvel intérêt\",\n \"pages.my_interests.form.interests.create.title\": \"Nouvel intérêt\",\n \"pages.my_interests.form.interests.delete.content\": \"Vous allez supprimer l’intérêt sélectionné. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?\",\n \"pages.my_interests.form.interests.delete.title\": \"Supprimer l’intérêt\",\n \"pages.my_interests.form.interests.edit.title\": \"Modifier l’intérêt\",\n \"pages.my_interests.form.interests.fields.description.label\": \"Description de l’intérêt\",\n \"pages.my_interests.form.interests.fields.description.placeholder\": \"Entrez une brève description\",\n \"pages.my_interests.form.interests.fields.title.label\": \"Titre de l’intérêt\",\n \"pages.my_interests.form.interests.fields.title.placeholder\": \"Entrez un titre\",\n \"pages.my_interests.idealLearning\": \"Apprentissage\",\n \"pages.my_interests.interests\": \"Intérêts\",\n \"pages.my_interests.tip.content\": \"Dans cette section, nous vous invitons à compléter vos intérêts et vos loisirs. Aussi les apprentissages que vous avez faits et que vous trouvez intéressants à réfléchir.\",\n \"pages.my_interests.title\": \"Mes intérêts\",\n \"pages.my_profile.dashboards.successful_skills.title\": \"Compétences\",\n \"pages.my_profile.dashboards.certificates_courses.label\": \"5 derniers certificats et cours\",\n \"pages.my_profile.dashboards.certificates_courses.type_learning.online.label\": \"En ligne\",\n \"pages.my_profile.dashboards.certificates_courses.type_learning.presence.label\": \"Présence\",\n \"pages.my_profile.dashboards.company_goals.last_update.subtitle\": \"Dernière mise à jour, {date}\",\n \"pages.my_profile.dashboards.company_goals.graph\": \"Objectifs atteints\",\n \"pages.my_profile.dashboards.successful_skills.general\": \"Général\",\n \"pages.my_profile.dashboards.successful_skills.language\": \"Langues\",\n \"pages-my_profile.dashboards.general_skills.title\": \"Vos compétences générales\",\n \"pages-my_profile.dashboards.tips.introduction\": \"Ne vous inquiétez pas si vous ne voyez toujours rien ici. En complétant votre profil et avec le flux d’emploi au jour le jour, beaucoup d’informations apparaîtront.\",\n \"pages-my_profile.dashboards.tips.no-content\": \"Remplissez votre emploi actuel et idéal pour compléter le tableau ci-dessous montrant les compétences qui sont pertinentes pour vous.\",\n \"pages-my_profile.dashboards.tips.content\": \"Pour ajouter une nouvelle compétence ou modifier ses niveaux, veuillez visiter les sections Mon emploi actuel ou Mon emploi idéal. Si vous souhaitez remplacer une compétence par une autre, vous pouvez le faire en cliquant sur le bouton Modifier ci-dessous.\",\n \"pages-my_profile.dashboards.performance_graph.no_content_yet\": \"Nous n’avons pas assez d’informations pour créer le graphique\",\n \"pages-my_profile.dashboards.performance_graph.edit\": \"Modifier le graphique de performance\",\n \"pages-my-profile.profile_updating.tab\": \"Mise à jour du profil\",\n \"pages-my-profile.profile_updating.welcome_guide.title\": \"Bienvenue à Fleebe\",\n \"pages-my-profile.profile_updating.welcome_guide.subtitle\": \"Votre nouvel outil de développement professionnel\",\n \"pages-my-profile.profile_updating.welcome_guide.tip\": \"Les débuts sont difficiles. Suivez donc les prochaines étapes afin de compléter votre profil de manière rapide et conviviale.\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.title\": \"Tout d’abord...\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.1\": \"Complétez votre profil personnel : nom, âge, photo personnelle, emploi actuel, etc. Vous n’avez qu’à survoler l’icône de l’avatar dans le coin supérieur droit de l’application.\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.2\": \"Nous sommes assez audacieux et nous voulons visualiser dans un seul graphique non seulement votre degré d’adaptation à votre poste actuel mais aussi à une position idéale créée par vous. Pouvez-vous nous aider? Suivez les liens dans les cartes sur le côté droit.\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.3\": \"Pour cela, nous avons besoin de deux choses: premièrement, énumérez les compétences qui décrivent le mieux votre emploi actuel; Et deuxièmement, faites la même chose mais avec les compétences de votre emploi idéal, celui que vous aimeriez avoir à l’avenir. Facile, non?\",\n \"pages-my-profile.profile_updating.welcome_guide.steps.4\": \"Si vous importez votre profil depuis Linkedin, la plupart de ces compétences seront chargées automatiquement et vous n’aurez qu’à choisir celles qui correspondent le mieux aux emplois que vous avez décrits. Mais, si vous préférez, vous pouvez le faire manuellement.\",\n \"pages-my-profile.profile_updating.welcome_guide.summary.title\": \"Et c’est tout\",\n \"pages-my-profile.profile_updating.welcome_guide.summary.content\": \"Quand vous avez terminé, vous devriez voir quelque chose comme ça. Une façon assez intuitive de visualiser à la fois votre adéquation à votre emploi actuel et à votre emploi idéal.\",\n \"pages-my-profile.profile_updating.welcome_guide.summary.see_example\": \"Voir un exemple\",\n \"pages-my-profile.profile_updating.steps_guide.title_1\": \"Commencez ici en créant votre profil de compétences complet\",\n \"pages-my-profile.profile_updating.steps_guide.title_2\": \"Ou complétez-le en plusieurs parties\",\n \"pages-my-profile.profile_updating.steps_guide.skills_profile.title\": \"Profil de compétences\",\n \"pages-my-profile.profile_updating.steps_guide.skills_profile.content\": \"Sélectionnez les 12 compétences les plus pertinentes parmi toutes les compétences que vous avez ou que vous voudriez.\",\n \"pages-my-profile.profile_updating.steps_guide.skills_profile.select\": \"Sélectionner des compétences\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.title\": \"Emploi actuel\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.content_1\": \"Sélectionnez les 6 compétences les plus pertinentes dans votre expérience professionnelle actuelle.\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.content_2\": \"Sélectionnez parmi toutes les compétences qui définissent votre poste actuel les 6 plus pertinentes pour vous.\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.content_3\": \"Et si vous voulez que ce soit plus rapide...\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.select_current_job_skills\": \"Sélectionnez les compétences professionnelles actuelles\",\n \"pages-my-profile.profile_updating.steps_guide.current_job.get_linkedin_profile\": \"Obtenez votre profil LinkedIn\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.title\": \"Job idéal\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.content_1\": \"Sélectionnez les 6 compétences que vous souhaitez développer pour votre emploi idéal.\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.content_2\": \"Définissez votre position idéale et ajoutez toutes les compétences que vous jugez nécessaires pour l’exécuter. Ensuite, vous pouvez sélectionner les plus importants.\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.select_ideal_job_skills\": \"Sélectionnez les compétences professionnelles idéales\",\n \"pages-my-profile.profile_updating.steps_guide.ideal_job.go_to_my_ideal_job\": \"Aller à mon emploi idéal\",\n \"pages-my-profile.profile_updating.performance_graph.example.title\": \"Exemple de profil marketing\",\n \"pages-my-profile.profile_updating.performance_graph.example.subtitle\": \"Ici, vous pouvez voir les compétences de Megan.\",\n \"pages-my-profile.profile_updating.performance_graph.example.steps.1\": \"Les 6 compétences qui correspondent à son emploi actuel (violet)\",\n \"pages-my-profile.profile_updating.performance_graph.example.steps.2\": \"Les 6 compétences qu’elle aimerait développer (bleu)\",\n \"pages-my-profile.profile_updating.performance_graph.example.steps.3\": \"Les 12 compétences qui correspondent à son expérience actuelle (orange)\",\n \"pages-my-profile.profile_updating.performance_graph.example.content_1\": \"Que vous les importiez depuis Linkedin ou que vous les créiez manuellement, vous pouvez ensuite sélectionner les 6 compétences qui définissent le mieux votre position actuelle et souhaitée pour l’avenir.\",\n \"pages-my-profile.profile_updating.performance_graph.example.content_2\": \"Avec ce graphique, vous pouvez, en un coup d’œil, comparer vos talents actuels et futurs pour gérer votre formation et votre plan de carrière en conséquence. Cela aide également les responsables des ressources humaines à vous offrir les conditions de travail qui vous conviennent le mieux ou à détecter, par exemple, les employés sous-évalués ou insatisfaits.\",\n \"pages-my-profile.profile_updating.performance_graph.example.content_3\": \"Aidez-nous à vous aider.\",\n \"pages-my-profile.profile_updating.performance_graph.example.profile.first_name\": \"Megan\",\n \"pages-my-profile.profile_updating.performance_graph.example.profile.last_name\": \"Barney\",\n \"pages-my-profile.profile_updating.performance_graph.example.profile.experience\": \"Responsable marketing digital\",\n \"pages-my-profile.profile_updating.performance_graph.example.close\": \"J’ai compris\",\n \"pages-my-profile.profile_updating.performance_graph.graph.series.1\": \"Compétences professionnelles actuelles\",\n \"pages-my-profile.profile_updating.performance_graph.graph.series.2\": \"Compétences professionnelles idéales\",\n \"pages-my-profile.profile_updating.performance_graph.graph.series.3\": \"Compétences d’expérience actuelles\",\n \"pages-my-profile.profile_updating.performance_graph.graph.labels.0\": \"Aucun\",\n \"pages-my-profile.profile_updating.performance_graph.graph.labels.1\": \"Faible\",\n \"pages-my-profile.profile_updating.performance_graph.graph.labels.2\": \"Support\",\n \"pages-my-profile.profile_updating.performance_graph.graph.labels.3\": \"High\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.1\": \"Prendre l’initiative\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.2\": \"Langues\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.3\": \"Analytique\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.4\": \"Créatif\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.5\": \"Résolution de problèmes\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.6\": \"Attitude positive\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.7\": \"Supporting\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.8\": \"Faire preuve d’empathie\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.9\": \"Médias sociaux\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.10\": \"Gestion\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.11\": \"Marketing\",\n \"pages-my-profile.profile_updating.performance_graph.example.graph.categories.12\": \"Apprentissage\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.introduction\": \"Introduction\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.introduction.info_1\": \"Pour remplir votre tableau de profil, vous devez remplir les 2 sections principales vous concernant: Expérience actuelle et Emploi idéal. Une fois ces sections terminées, vous aurez à votre disposition toutes les compétences dont vous avez besoin pour évaluer et construire votre visualisation d’araignées.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.introduction.info_2\": \"* Rappelez-vous que vous serez toujours en mesure de modifier vos compétences et de les réviser pendant tout votre processus de croissance et d’apprentissage.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.current_job_skills\": \"Sélectionnez mes compétences professionnelles actuelles\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.current_job_skills.info\": \"Sélectionnez un min. de 3 compétences et un max. de 6 compétences les plus importantes dans mon emploi actuel.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.ideal_job_skills\": \"Sélectionnez mes compétences professionnelles idéales\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.step.ideal_job_skills.info\": \"Sélectionnez un min. de 3 compétences et un max. de 6 compétences que vous souhaitez développer pour votre emploi idéal.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.errors.skills_count\": \"Il est nécessaire que vous choisissiez entre 3 et 6 compétences pour construire votre graphique de performance.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.search.placeholder\": \"Rechercher une compétence\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.current_job_requirements\": \"Vous devez avoir un emploi actuel avec au moins 3 compétences pour pouvoir créer ce graphique.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.go_to_current_job\": \"Aller à l'emploi actuel\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.ideal_job_requirements\": \"Vous devez avoir un Job idéal avec au moins 3 compétences pour pouvoir créer ce graphique.\",\n \"pages-my-profile.profile_updating.performance_graph.configurer.go_to_ideal_job\": \"Aller à l'emploi idéal\",\n \"pages-my-profile.dashboard.tab\": \"Tableau de bord\",\n \"pages.my_profile.title\": \"Mon profil\",\n \"pages.my_profile.employee_groups.title\": \"Groupes\",\n \"pages.my_profile.previous_experiences.title\": \"Expériences précédentes\",\n \"pages.current_experience.title\": \"Mon emploi actuel\",\n \"pages.current_experience.about_me\": \"À propos de moi\",\n \"pages.current_experience.experience\": \"Autre expérience\",\n \"pages.current_experience.education\": \"Education\",\n \"pages.current_experience.languages\": \"Langues\",\n \"pages.current_experience.languages.edit\": \"Modifier les langues\",\n \"pages.current_experience.current_experience.title\": \"Position actuelle\",\n \"pages.current_experience.current_experience.general_skills\": \"Compétences générales\",\n \"pages.current_experience.current_experience.language_skills\": \"Compétences linguistiques\",\n \"pages.current_experience.goals_challenges.title\": \"Mes objectifs et défis\",\n \"pages.current_experience.linkedin.import\": \"Importer mon profil LinkedIn\",\n \"pages.current_experience.linkedin.title\": \"Importez votre profil LinkedIn\",\n \"pages.current_experience.linkedin.content.instructions.title\": \"Suivez les instructions ci-dessous pour importer votre profil LinkedIn.\",\n \"pages.current_experience.linkedin.content.instructions.step.1\": \"Cliquez sur ce lien pour accéder à votre profil LinkedIn (connectez-vous si nécessaire): \",\n \"pages.current_experience.linkedin.content.instructions.step.2\": \"Configurez le contenu que vous souhaitez importer. LinkedIn vous propose quelques alternatives.\",\n \"pages.current_experience.linkedin.content.instructions.step.3\": \"Cliquez sur le bouton Request file (le téléchargement sera prêt dans environ 24 hours).\",\n \"pages.current_experience.linkedin.content.instructions.step.4\": \"Two emails vous enverra les instructions que vous devez suivre. Le first one contient les informations que vous devez télécharger ici. Le second concerne votre activité LinkedIn et l’historique de votre compte, et nous n’en avons pas besoin.\",\n \"pages.current_experience.linkedin.content.instructions.step.5\": \"Download le fichier.\",\n \"pages.current_experience.linkedin.content.instructions.step.6\": \"Cliquez sur le bouton ci-dessous et sélectionnez le fichier .zip téléchargé depuis votre ordinateur.\",\n \"pages.current_experience.linkedin.content.instructions.step.7\": \"And that’s all. Si tout se passe bien, toutes vos données seront facturées ici. Vérifiez si votre expérience actuelle est correcte. Sinon, vous pouvez le modifier dans LinkedIn et répéter l’opération (recommandé) ou le modifier dans cette application en cliquant sur le bouton Modifier, à côté de chaque expérience.\",\n \"pages.current_experience.linkedin.content.upload\": \"Parcourir pour télécharger le profil LinkedIn\",\n \"pages.current_experience.linkedin.successfully_imported_profile\": \"Profil importé avec succès\",\n \"pages.current_experience.linkedin.reminder.content\": \"Vérifiez les dates de vos postes et présentez le niveau de vos compétences, et enfin définissez si vos formations ont été en ligne ou sur place.\",\n \"pages.current_experience.tip.content\": \"Dans cette section, il est important que vous téléchargiez votre programme, l’expérience sera plus personnalisée si nous connaissons le point de départ. D’autre part, vous devez faire la différence entre les compétences que vous avez générées au cours de votre vie professionnelle et les compétences acquises dans votre poste actuel lorsque vous remplissez les champs.\",\n \"pages.current_experience.skills\": \"Compétences\",\n \"pages.current_experience.skills.management\": \"Compétences en gestion\",\n \"pages.current_experience.skills.general\": \"Généralités\",\n \"pages.current_experience.skills.edit\": \"Modifier les compétences générales\",\n \"pages.current_experience.language.edit\": \"Modifier les compétences linguistiques\",\n \"pages.current_experience.confirm-delete-on-graph.title\": \"Supprimer la compétence utilisée sur le graphique de performances\",\n \"pages.current_experience.confirm-delete-on-graph.message\": \"Vous essayez de supprimer une compétence qui est utilisée sur le graphique de performance. Si après avoir supprimé cette compétence il y a moins de 3 compétences le graphique ne sera pas créé.\",\n \"pages.current_experience.present\": \"Présent\",\n \"pages.current_experience.edit.about.me\": \"Dis-moi quelque chose sur toi\",\n \"pages.current_experience.form.about.me.fields.name.label\": \"À propos de vous\",\n \"pages.current_experience.form.about.me.fields.name.placeholder\": \"Dites-moi quelque chose sur vous\",\n \"pages.current_experience.form.curriculum.upload\": \"Téléchargez votre curriculum\",\n \"pages.current_experience.form.curriculum.delete.prompt.title\": \"Supprimer le curriculum\",\n \"pages.current_experience.form.curriculum.delete.prompt.content\": \"Vous allez supprimer le curriculum. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?\",\n \"pages.current_experience.form.experience.edit_current\": \"Modifier votre position actuelle\",\n \"pages.current_experience.form.experience.edit_other\": \"Modifier votre poste\",\n \"pages.current_experience.form.experience.create_current\": \"Ajouter la tâche actuelle\",\n \"pages.current_experience.form.experience.create_other\": \"Ajouter une nouvelle expérience\",\n \"pages.current_experience.form.experience.fields.title.label\": \"Titre\",\n \"pages.current_experience.form.experience.fields.title.placeholder\": \"Entrez le poste\",\n \"pages.current_experience.form.experience.fields.description.label\": \"Description du poste\",\n \"pages.current_experience.form.experience.fields.description.placeholder\": \"Entrez la description du poste\",\n \"pages.current_experience.form.experience.fields.company.label\": \"Société\",\n \"pages.current_experience.form.experience.fields.company.placeholder\": \"Entrez dans la société\",\n \"pages.current_experience.form.experience.fields.location.label\": \"Emplacement\",\n \"pages.current_experience.form.experience.fields.location.placeholder\": \"Entrez l’emplacement de la tâche\",\n \"pages.current_experience.form.experience.fields.fromDate.label\": \"Démarrer\",\n \"pages.current_experience.form.experience.fields.toDate.label\": \"Fin\",\n \"pages.current_experience.form.experience.fields.currentJob.label\": \"Travail actuel\",\n \"pages.current_experience.form.experience.delete.title\": \"Supprimer l’expérience\",\n \"pages.current_experience.form.experience.delete.content\": \"Vous allez supprimer l’expérience sélectionnée. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?\",\n \"pages.current_experience.form.education.edit\": \"Modifier votre éducation\",\n \"pages.current_experience.form.education.create\": \"Ajouter une nouvelle éducation\",\n \"pages.current_experience.form.education.fields.title.label\": \"Titre de l’éducation\",\n \"pages.current_experience.form.education.fields.title.placeholder\": \"Entrez un titre\",\n \"pages.current_experience.form.education.fields.institution.label\": \"Institution\",\n \"pages.current_experience.form.education.fields.institution.placeholder\": \"Entrer dans un établissement\",\n \"pages.current_experience.form.education.fields.description.label\": \"Description\",\n \"pages.current_experience.form.education.fields.description.placeholder\": \"Entrez une description\",\n \"pages.current_experience.form.education.fields.location.label\": \"Emplacement\",\n \"pages.current_experience.form.education.fields.location.placeholder\": \"Entrez un emplacement\",\n \"pages.current_experience.form.education.fields.fromDate.label\": \"De\",\n \"pages.current_experience.form.education.fields.toDate.label\": \"À\",\n \"pages.current_experience.form.education.fields.inProgressEducation.label\": \"En cours\",\n \"pages.current_experience.form.education.delete.title\": \"Supprimer l’éducation\",\n \"pages.current_experience.form.education.delete.content\": \"Vous allez supprimer l’éducation sélectionnée. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?\",\n \"pages.guest.create_company_from_azure_ad.information.title\": \"Guide d’inscription à partir d’Azure Active Directory (Ad)\",\n \"pages.guest.create_company_from_azure_ad.information.content\": \"

Pour générer le principal de service, accédez à Azure Ad et suivez les étapes suivantes :

  1. Accédez à Azure Active Directory et créez une application dans App Registration.
  2. Entrez un nom dans le champ 'Nom'.\\n\\n
  3. Dans Types de comptes pris en charge, sélectionnez l’option 'Locataire unique' et cliquez sur le bouton 'Enregistrer'.
  4. Lorsque votre application est déjà créée, allez dans la section 'Autorisations API' et ajoutez-en une nouvelle de type 'User.Read.All'.
  5. Vous devez maintenant ajouter une clé secrète client, Nous recommandons 24 mois de date d’expiration. Copiez maintenant la clé secrète client.

Steps pour vous connecter avec Fleebe:

  1. Copiez l’ID du client d’application de l’étape précédente dans le champ 'ID client principal du service'.
  2. Copiez la 'Clé secrète client' dans le champ 'Clé secrète client principale de service'.
  3. Cliquez sur le bouton 'Valider' et vous devriez voir le nombre d’utilisateurs de votre AD.
\",\n \"pages.guest.create_company_from_azure_ad.form.fields.tenant_id.label\": \"ID de locataire\",\n \"pages.guest.create_company_from_azure_ad.form.fields.purchaseSubscriptionId.label\": \"ID d’abonnement\",\n \"pages.guest.create_company_from_azure_ad.form.fields.client_id.label\": \"ID client principal de service\",\n \"pages.guest.create_company_from_azure_ad.form.fields.client_id.placeholder\": \"Entrez l’ID principal du service\",\n \"pages.guest.create_company_from_azure_ad.form.fields.client_secret.label\": \"Secret client principal de service\",\n \"pages.guest.create_company_from_azure_ad.form.fields.client_secret.placeholder\": \"Entrez le secret principal du service\",\n \"pages.guest.create_company_from_azure_ad.form.fields.total_users.label\": \"Le nombre suivant d’utilisateurs sera importé à partir d’Azure Active Directory après le processus d’inscription\",\n \"pages.guest.create_company_from_azure_ad.form.buttons.validate\": \"Valider\",\n \"pages.guest.create_company_from_azure_ad.form.buttons.signup\": \"Chantez\",\n \"pages.guest.create_company_from_azure_ad.error_modal.title\": \"L'abonnement n'a pas pu être complété\",\n \"pages.guest.create_company_from_azure_ad.error_modal.description\": \"Nous sommes désolés, l'abonnement n'a pas pu être complété car le nombre d'utilisateurs achetés ({purchasedUsers}) ne correspond pas au nombre d'utilisateurs trouvés ({totalUsers}) dans Azure Active Directory. Veuillez relancer le processus d'achat.\",\n \"pages.guest.create_company_from_azure_ad.error_modal.button\": \"Redémarrer l'achat dans Microsoft AppSource\",\n \"pages.accounts.logout.title\": \"Votre session s’est terminée\",\n \"pages.accounts.logout.description\": \"Vous avez terminé votre session. Pour revenir, cliquez sur le bouton.\",\n \"pages.accounts.logout.signin\": \"Se connecter à Fleebe\",\n \"pages.accounts.admin_required.title\": \"Pas assez d’autorisations\",\n \"pages.accounts.admin_required.description\": \"Vous devez être administrateur pour accéder à la page demandée. Pour continuer à utiliser le site, cliquez sur le bouton.\",\n \"pages.accounts.admin_required.continue\": \"Retour à Fleebe\",\n \"pages.accounts.tenant_unauthorized.title\": \"Locataire non autorisé\",\n \"pages.accounts.tenant_unauthorized.description\": \"Le locataire que vous utilisez pour vous connecter n’est pas autorisé dans l’application. Veuillez confirmer que vous êtes inscrit pour utiliser Fleebe et continuer.\",\n \"pages.accounts.tenant_unauthorized.continue\": \"Retour à Fleebe\",\n \"pages.accounts.user_unauthorized.title\": \"Utilisateur non autorisé\",\n \"pages.accounts.user_unauthorized.description\": \"Le compte que vous utilisez pour vous connecter n’est pas autorisé dans l’application. Veuillez confirmer que vous êtes inscrit pour utiliser Fleebe et continuer. Si vous avez plusieurs comptes, essayez de vous déconnecter et reconnectez-vous.\",\n \"pages.accounts.user_unauthorized.logout\": \"Déconnexion\",\n \"pages.admin.dashboard.current_job.title\": \"Emploi actuel\",\n \"pages.admin.dashboard.ideal_job.title\": \"Emploi idéal\",\n \"pages.admin.dashboard.title\": \"Tableau de bord\",\n \"pages.admin.dashboard.percentage_employee_answered\": \"% d’employés répondus\",\n \"pages.admin.dashboard.welcome\": \"Bienvenue à Fleebe\",\n \"pages.admin.dashboard.welcome.tip.title\": \"Commencez où vous voulez\",\n \"pages.admin.dashboard.welcome.tip.content\": \"Commencez l’expérience avec votre assistant IA quand vous le souhaitez en remplissant les quatre cartes générales sous ces infobox.\",\n \"pages.admin.dashboard.welcome.shortcuts.profile.title\": \"Complétez le profil de votre organisation\",\n \"pages.admin.dashboard.welcome.shortcuts.profile.content\": \"Remplissez toutes les données d’entreprise de votre entreprise avec ses principales caractéristiques: Quelle est la taille de votre organisation? où est-il situé?\",\n \"pages.admin.dashboard.welcome.shortcuts.profile.button\": \"Profil complet de l’entreprise\",\n \"pages.admin.dashboard.welcome.shortcuts.skill.title\": \"Créez les compétences dont votre organisation a besoin\",\n \"pages.admin.dashboard.welcome.shortcuts.skill.content\": \"Votre organisation est différente et unique, par conséquent, elle a des besoins spécifiques que vous savez avoir un administrateur. Créez-les pour commencer à chercher des talents.\",\n \"pages.admin.dashboard.welcome.shortcuts.skill.button\": \"Créer des compétences\",\n \"pages.admin.dashboard.welcome.shortcuts.question.title\": \"Créer un formulaire pour obtenir les commentaires des employés\",\n \"pages.admin.dashboard.welcome.shortcuts.question.content\": \"Vos employés sont talentueux, donc leur opinion est précieuse. Créez ici un formulaire pour obtenir vos commentaires.\",\n \"pages.admin.dashboard.welcome.shortcuts.question.button\": \"Créer un formulaire\",\n \"pages.admin.dashboard.welcome.shortcuts.goal.title\": \"Créez des objectifs et des défis pour votre organisation\",\n \"pages.admin.dashboard.welcome.shortcuts.goal.content\": \"Gardez vos équipes et vos employés motivés, créez des objectifs communs et des buts apportant de la valeur à l’entreprise.\",\n \"pages.admin.dashboard.welcome.shortcuts.goal.button\": \"Créer des objectifs et des défis\",\n \"pages.admin.dashboard.search.introduction\": \"La nouvelle assistance IA pour aider vos employés à apprendre à leurs propres préférences et style de vie\",\n \"pages.admin.dashboard.search.placeholder\": \"Recherche d’employés...\",\n \"pages.admin.dashboard.current_experience.title\": \"Expérience actuelle\",\n \"pages.admin.dashboard.current_experience.about_me.curriculum\": \"Curriculum\",\n \"pages.admin.dashboard.current_experience.about_me.no_content_yet\": \"L’employé n’a pas encore fourni d’informations\",\n \"pages.admin.dashboard.current_experience.experience.no_content_yet\": \"L’employé n’a pas encore fourni d’informations sur l’expérience\",\n \"pages.admin.dashboard.current_experience.education.no_content_yet\": \"L’employé n’a pas encore fourni d’informations sur la formation\",\n \"pages.admin.dashboard.current_experience.languages.no_content_yet\": \"L’employé n’a pas encore fourni de langues\",\n \"pages.admin.dashboard.current_experience.general_skills.no_content_yet\": \"L’employé n’a pas encore fourni de compétences générales\",\n \"pages.admin.dashboard.my_ideal_job.no_content_yet\": \"L’employé n’a pas encore fourni les informations idéales sur le poste\",\n \"pages.admin.dashboard.ai_assistant.title\": \"AI Assistant\",\n \"pages.admin.dashboard.ai_assistant.description\": \"Ce sont les réponses fournies par le salarié\",\n \"pages.admin.dashboard.interests.title\": \"Intérêts\",\n \"pages.admin.dashboard.interests.interests.no_content_yet\": \"L’employé n’a pas encore fourni d’informations d’intérêt\",\n \"pages.admin.dashboard.interests.idealLearning.no_content_yet\": \"L’employé n’a pas encore fourni d’informations d’apprentissage\",\n \"pages.admin.dashboard.interests.hobbies.no_content_yet\": \"L’employé n’a pas encore fourni de passe-temps\",\n \"pages.admin.ai_assistant.title\": \"AI Assistant\",\n \"pages.admin.ai_assistant.create_new_survey_form.title\": \"Créer un nouveau formulaire d’enquête\",\n \"pages.admin.ai_assistant.create_new_survey_form.description\": \"Configurez les questions pour votre entreprise et choisissez celles qui doivent être visibles par vos employés\",\n \"pages.admin.ai_assistant.create_new_survey_form.new_question\": \"Ajouter une nouvelle question\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.level.title\": \"Niveau\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.level.description\": \"Utilisez ce composant pour que l’employé sélectionne rapidement un niveau d’éducation, d’expérience ou de talent, etc.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.level.guide\": \"Essayez de rendre la déclaration aussi simple que possible afin que les réponses ne soient pas ambiguës et que les informations fournies ajoutent vraiment de la valeur. Établissez des niveaux clairs et bien contrastés afin qu’il n’y ait aucun doute dans la réponse.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.level.input.title\": \"Entrez l’énoncé de la question\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.singleselection.title\": \"Sélection unique\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.singleselection.description\": \"Utilisez ce composant pour sélectionner une seule option parmi plusieurs options disponibles.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.singleselection.guide\": \"Essayez de rendre la déclaration aussi simple que possible afin que les réponses ne soient pas ambiguës et que les informations fournies ajoutent vraiment de la valeur. Établissez des options claires et bien contrastées afin qu’il n’y ait aucun doute dans la réponse.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.singleselection.input.title\": \"Entrez l’énoncé de la question\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.multipleselection.title\": \"Sélection multiple\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.multipleselection.description\": \"Utilisez ce composant pour sélectionner plusieurs options correctes.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.multipleselection.guide\": \"Essayez de rendre la déclaration aussi simple que possible afin que les réponses ne soient pas ambiguës et que les informations fournies ajoutent vraiment de la valeur. Établissez des options claires et bien contrastées afin qu’il n’y ait aucun doute dans la réponse.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.multipleselection.input.title\": \"Entrez l’énoncé de la question\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.longtext.title\": \"Réponse longue ouverte\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.longtext.description\": \"Utilisez ce type de composants pour les réponses ouvertes où l’employé peut faire des descriptions plus longues.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.longtext.guide\": \"Essayez de rendre la déclaration aussi claire et simple que possible afin que les réponses ne soient pas ambiguës et que les informations fournies apportent une réelle valeur ajoutée.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.longtext.input.title\": \"Entrez l’énoncé de la question\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.shorttext.title\": \"Réponse ouverte courte\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.shorttext.description\": \"Utilisez ce composant pour les réponses courtes.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.shorttext.guide\": \"Essayez de rendre la déclaration aussi claire et simple que possible afin que les réponses ne soient pas ambiguës et que les informations fournies ajoutent vraiment de la valeur.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.shorttext.input.title\": \"Entrez l’énoncé de la question\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.tags.title\": \"Tags\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.tags.description\": \"Utilisez ce composant lorsque l’employé doit saisir des réponses sous forme d’étiquettes.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.tags.guide\": \"Essayez de rendre la déclaration aussi simple que possible afin que les réponses ne soient pas ambiguës et que les informations fournies ajoutent vraiment de la valeur. Établissez des options claires et bien contrastées afin qu’il n’y ait aucun doute dans la réponse.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.tags.input.title\": \"Entrez l’énoncé de la question\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.path.select_question_type\": \"Sélectionnez le type de question\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.path.configure_question\": \"Configurer la question\",\n \"pages.admin.ai_assistant.create_new_survey_form.question.path.save_question\": \"Enregistrer la question\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.options.title\": \"Entrez les options de réponse\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.options.description\": \"Vous avez besoin d’au moins deux options mais vous pouvez ajouter toutes celles dont vous avez besoin.\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.option.title\": \"Option {optionIndex}\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.option.placeholder\": \"Titre de l’option\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.title\": \"Entrez les niveaux de réponse\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.low_level\": \"Niveau bas\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.medium_level\": \"Niveau moyen\",\n \"pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.high_level\": \"Haut niveau\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.title\": \"Aperçu\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.description\": \"La question comporte des erreurs de configuration. Passez à l’étape précédente et configurez-le correctement.\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.tag_samples.sample1\": \"balise 1\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.tag_samples.sample2\": \"balise 2\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.option_samples.sample1\": \"option 1\",\n \"pages.admin.ai_assistant.create_new_survey_form.preview.option_samples.sample2\": \"option 2\",\n \"pages.admin.ai_assistant.kpi_tip.title\": \"Créer des KPI\",\n \"pages.admin.ai_assistant.kpi_tip.subtitle\": \"Vous pouvez créer des KPI des questionnaires envoyés afin de visualiser l'éventail des réponses. Sélectionnez l'icône du graphique pour voir les résultats pour chaque question que vous recherchez.\",\n \"pages.admin.ai_assistant.questions.title\": \"Questions d’enquête\",\n \"pages.admin.ai_assistant.questions.seeAllQuestions\": \"Voir toutes les questions\",\n \"pages.admin.ai_assistant.questions.search\": \"Recherche dans les questions\",\n \"pages.admin.ai_assistant.questions.created_questions\": \"Questions créées\",\n \"pages.admin.ai_assistant.questions.sent_questions\": \"Questions envoyées\",\n \"pages.admin.ai_assistant.questions.send_questions\": \"Envoyer des questions\",\n \"pages.admin.ai_assistant.questions.do_not_send_questions\": \"N’envoyez pas de questions\",\n \"pages.admin.ai_assistant.questions.add_new_question\": \"Ajouter une nouvelle question\",\n \"pages.admin.ai_assistant.questions.preview\": \"Aperçu des questions\",\n \"pages.admin.ai_assistant.questions.grid.number\": \"#\",\n \"pages.admin.ai_assistant.questions.grid.answeredPercentage\": \"Participation(%)\",\n \"pages.admin.ai_assistant.questions.grid.groups\": \"Groupes\",\n \"pages.admin.ai_assistant.questions.grid.groups.tooltip.more_groups\": \"{n} de plus\",\n \"pages.admin.ai_assistant.questions.grid.groups.tooltip.groups\": \"{n} groupe | {n} groupes\",\n \"pages.admin.ai_assistant.questions.grid.question\": \"Question\",\n \"pages.admin.ai_assistant.questions.grid.date\": \"Date\",\n \"pages.admin.ai_assistant.questions.grid.no_results\": \"Il n’y a pas de questions avec ce filtre\",\n \"pages.admin.ai_assistant.questions.grid.delete.title\": \"Supprimer la question\",\n \"pages.admin.ai_assistant.questions.grid.delete.description\": \"Vous allez supprimer la question '{question}'. Êtes-vous sûr?\",\n \"pages.admin.ai_assistant.questions.grid.show_in_dashboard\": \"Afficher dans le tableau de bord\",\n \"pages.admin.ai_assistant.questions.grid.remove__from_dashboard\": \"Supprimer du tableau de bord\",\n \"pages.admin.ai_assistant.questions.grid.descend\": \"Descendre\",\n \"pages.admin.ai_assistant.questions.grid.ascend\": \"Ascender\",\n \"pages.admin.ai_assistant.questions.questions_with_no_answers\": \"Cette question n’a pas encore reçu de réponse\",\n \"pages.admin.ai_assistant.questions.employee_answered\": \"Participation\",\n \"pages.admin.ai_assistant.questions.othersSummary\": \"Autres\",\n \"pages.admin.ai_assistant.questions.noContentYet\": \"Pas encore de contenu\",\n \"pages.admin.ai_assistant.questions.allQuestionsPublished\": \"Toutes les questions définies sont publiques\",\n \"pages.admin.company_goals.application_closed\": \"Candidatures fermées\",\n \"pages.admin.company_goals.draft\": \"Draft\",\n \"pages.admin.company_goals.application_open\": \"Ouvrir à l’application\",\n \"pages.admin.company_goals.title\": \"Objectifs de l’entreprise\",\n \"pages.admin.company_goals.create.public\": \"Créer un objectif public pour les candidats\",\n \"pages.admin.company_goals.create.public.description\": \"Nous avons lancé ce nouvel objectif dans le but de développer le plein potentiel de chacun de nos employés tout en se concentrant sur leurs besoins et leurs capacités. Soyez celui qui élabore le plan de transformation en fonction de vos objectifs personnels et professionnels.\",\n \"pages.admin.company_goals.create.new_public_goal\": \"Créer un objectif public\",\n \"pages.admin.company_goals.create.private\": \"Créer un objectif privé et sélectionner une équipe\",\n \"pages.admin.company_goals.create.private.description\": \"Nous avons identifié les compétences dont vous avez besoin pour faire progresser votre carrière. Cet objectif proposé vous permettra de les développer ou de les renforcer. La transformation continue est essentielle à l’évolution de votre carrière professionnelle.\",\n \"pages.admin.company_goals.create.new_private_goal\": \"Créer un objectif privé\",\n \"pages.admin.company_goals.search.introduction\": \"Nouveaux objectifs et défis\",\n \"pages.admin.company_goals.search.placeholder\": \"Objectifs de recherche pour l’équipe\",\n \"pages.admin.company_goals.search.options.view_all\": \"Tous\",\n \"pages.admin.company_goals.search.options.view_visibility\": \"Visibilité\",\n \"pages.admin.company_goals.search.options.view_public\": \"Public\",\n \"pages.admin.company_goals.search.options.view_private\": \"Privé\",\n \"pages.admin.company_goals.search.options.view_application_phase\": \"Phase d’application\",\n \"pages.admin.company_goals.search.options.view_application_phase_open\": \"Ouvrir\",\n \"pages.admin.company_goals.search.options.view_application_phase_closed\": \"Fermé\",\n \"pages.admin.company_goals.search.options.view_finished\": \"Terminé\",\n \"pages.admin.company_goals.search.options.view_draft\": \"Brouillon\",\n \"pages.admin.company_goals.search.options.view_launched\": \"Lancé\",\n \"pages.admin.company_goals.search.options.view_published\": \"Publié\",\n \"pages.admin.company_goals.search.options.view_status\": \"Statut\",\n \"pages.admin.company_goals.search.order.start_date_asc\": \"Date de début (asc)\",\n \"pages.admin.company_goals.search.order.start_date_desc\": \"Date de début (desc)\",\n \"pages.admin.company_goals.search.order.end_date_asc\": \"Date de fin (asc)\",\n \"pages.admin.company_goals.search.order.end_date_desc\": \"Date de fin (desc)\",\n \"pages.admin.company_goals.search.order.title_asc\": \"Titre (asc)\",\n \"pages.admin.company_goals.search.order.title_desc\": \"Titre (desc)\",\n \"pages.admin.company_goals.new_goal\": \"Ajouter un nouvel objectif\",\n \"pages.admin.company_goals.last_updated\": \"Dernière mise à jour, {date}\",\n \"pages.admin.company_goals.goal_dates\": \"Dates des buts: {start} - {end}\",\n \"pages.admin.company_goals.goal\": \"Équipe de but\",\n \"pages.admin.company_goals.save\": \"Sauver l’équipe et le but\",\n \"pages.admin.company_goals.skills\": \"{number} compétences\",\n \"pages.admin.company_goals.education\": \"{number} education\",\n \"pages.admin.company_goals.languages\": \"{number} langues\",\n \"pages.admin.company_goals.delete_goal.title\": \"Supprimer l’objectif: {name}\",\n \"pages.admin.company_goals.delete_goal.description\": \"Vous allez supprimer l’objectif sélectionné \\\"{name}\\\". Tous les progrès et les informations sur celui-ci disparaîtront et cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?\",\n \"pages.admin.company_goals.delete_goal.successfully_deleted\": \"L’objectif a été supprimé avec succès\",\n \"pages.admin.company_goals.add_new_goal.title\": \"Nouvel objectif\",\n \"pages.admin.company_goals.add_new_goal.fields.title.label\": \"Titre\",\n \"pages.admin.company_goals.add_new_goal.fields.title.placeholder\": \"Entrez le titre de l’objectif ou du défi\",\n \"pages.admin.company_goals.add_new_goal.fields.description.label\": \"Description de l’objectif\",\n \"pages.admin.company_goals.add_new_goal.fields.description.placeholder\": \"Tapez ici une brève description\",\n \"pages.admin.company_goals.add_new_goal.fields.link.label\": \"Lien avec plus d’informations\",\n \"pages.admin.company_goals.add_new_goal.fields.link.placeholder\": \"Ajouter un lien avec plus d’informations\",\n \"pages.admin.company_goals.add_new_goal.fields.number_of_people_needed.label\": \"Nombre de personnes nécessaires\",\n \"pages.admin.company_goals.add_new_goal.fields.country.label\": \"Pays\",\n \"pages.admin.company_goals.add_new_goal.fields.country.placeholder\": \"Entrez le pays\",\n \"pages.admin.company_goals.add_new_goal.fields.city.label\": \"Ville\",\n \"pages.admin.company_goals.add_new_goal.fields.city.placeholder\": \"Entrez la ville\",\n \"pages.admin.company_goals.add_new_goal.fields.application_closing.label\": \"Fermeture de l’application\",\n \"pages.admin.company_goals.add_new_goal.fields.is_open.label\": \"Objectif ouvert aux candidatures\",\n \"pages.admin.company_goals.add_new_goal.fields.start.label\": \"Démarrer\",\n \"pages.admin.company_goals.add_new_goal.fields.end.label\": \"Fin\",\n \"pages.admin.company_goals.add_new_goal.fields.status.label\": \"Objectif ouvert aux candidatures\",\n \"pages.admin.company_goals.add_new_goal.fields.picture.label\": \"Choisissez une image pour la couverture\",\n \"pages.admin.company_goals.add_new_goal.fields.picture.upload\": \"Télécharger l’image\",\n \"pages.admin.company_goals.add_new_goal.fields.skills_needed\": \"Compétences requises\",\n \"pages.admin.company_goals.add_new_goal.path.overview\": \"Vue d’ensemble\",\n \"pages.admin.company_goals.add_new_goal.path.general_skills\": \"Compétences générales\",\n \"pages.admin.company_goals.add_new_goal.path.general_skills.description\": \"Veuillez choisir les compétences générales requises pour l’objectif\",\n \"pages.admin.company_goals.add_new_goal.path.language_skills\": \"Compétences linguistiques\",\n \"pages.admin.company_goals.add_new_goal.path.language_skills.description\": \"Veuillez choisir les compétences linguistiques requises pour l’objectif\",\n \"pages.admin.company_goals.add_new_goal.save\": \"Publier\",\n \"pages.admin.company_goals.add_new_goal.successfully_created\": \"L’objectif a été créé avec succès\",\n \"pages.admin.company_goals.add_new_goal.successfully_updated\": \"L’objectif a été mis à jour avec succès\",\n \"pages.admin.company_goals.add_new_goal.confirm_publish.title\": \"Confirmer la publication\",\n \"pages.admin.company_goals.add_new_goal.confirm_publish.description\": \"Vous allez publier l’objectif. Après ce point, vous ne pourrez plus modifier certains champs. Veuillez continuer uniquement si vous êtes sûr que l’objectif est prêt.\",\n \"pages.admin.company_goals.edit_goal.fields.title.label\": \"Titre\",\n \"pages.admin.company_goals.edit_goal.fields.title.placeholder\": \"Entrez le titre de l’objectif ou du défi\",\n \"pages.admin.company_goals.edit_goal.fields.description.label\": \"Description de l’objectif\",\n \"pages.admin.company_goals.edit_goal.fields.description.placeholder\": \"Tapez ici une brève description\",\n \"pages.admin.company_goals.edit_goal.fields.number_of_people_needed.label\": \"Nombre de personnes nécessaires\",\n \"pages.admin.company_goals.edit_goal.fields.country.label\": \"Pays\",\n \"pages.admin.company_goals.edit_goal.fields.city.label\": \"Ville\",\n \"pages.admin.company_goals.edit_goal.fields.link.label\": \"Lien avec plus d’informations\",\n \"pages.admin.company_goals.edit_goal.fields.link.placeholder\": \"Ajouter un lien avec plus d’informations\",\n \"pages.admin.company_goals.edit_goal.fields.application_closing.label\": \"Fermeture de l’application\",\n \"pages.admin.company_goals.edit_goal.fields.is_open.label\": \"L’objectif est ouvert aux candidatures\",\n \"pages.admin.company_goals.edit_goal.fields.is_not_open.label\": \"L’objectif n’est pas ouvert aux applications\",\n \"pages.admin.company_goals.edit_goal.fields.start.label\": \"Démarrer\",\n \"pages.admin.company_goals.edit_goal.fields.end.label\": \"Fin\",\n \"pages.admin.company_goals.edit_goal.save\": \"Enregistrer\",\n \"pages.admin.company_goals.edit_goal.successfully_edited\": \"L’objectif a été modifié avec succès\",\n \"pages.admin.company_goals.detail_goals.more_information\": \"Plus d’informations\",\n \"pages.admin.company_goals.detail_goals.progress\": \"Progression de l’objectif de l’équipe\",\n \"pages.admin.company_goals.detail_goals.team_skills.title\": \"Pourcentage d’adaptation à l’objectif\",\n \"pages.admin.company_goals.detail_goals.team_skills.skills\": \"Compétences\",\n \"pages.admin.company_goals.detail_goals.team_skills.skills.description\": \"Plus de 80% des compétences sont considérées comme un bon ratio pour atteindre les objectifs proposés. En dessous de 50%, il est conseillé de recruter ou de remplacer des membres par d’autres personnes ayant les compétences spécifiques requises.\",\n \"pages.admin.company_goals.goal_detail.add_team_member\": \"Ajouter un membre de l’équipe à partir de la liste des candidats\",\n \"pages.admin.company_goals.goal_detail.ai_selected_candidate\": \"L’IA a choisi une équipe automatiquement mais vous pouvez la modifier manuellement. L’objectif ne commencera pas tant que vous n’aurez pas validé l’équipe.\",\n \"pages.admin.company_goals.goal_detail.ai_will_filter_candidates\": \"Vient de terminer la date de candidature, le moteur d’IA filtrera automatiquement les candidats pour sélectionner ceux qui sont le meilleur choix. Ainsi, vous ne verrez que le nombre de candidats nécessaires pour créer l’équipe pour l’objectif.\",\n \"pages.admin.company_goals.goal_detail.application_phase.tag.closed\": \"Fermé\",\n \"pages.admin.company_goals.goal_detail.application_phase.tag.draft\": \"Brouillon\",\n \"pages.admin.company_goals.goal_detail.application_phase.tag.open\": \"Toujours ouvert\",\n \"pages.admin.company_goals.goal_detail.city\": \"Ville\",\n \"pages.admin.company_goals.goal_detail.confirm_launch.description\": \"Vous allez lancer l’objectif. Veuillez continuer uniquement si vous êtes sûr que l’objectif est prêt à être lancé.\",\n \"pages.admin.company_goals.goal_detail.confirm_launch.title\": \"Confirmer le lancement\",\n \"pages.admin.company_goals.goal_detail.confirm_set_result.description\": \"Vous allez définir le résultat de l’objectif. S’il vous plaît, continuez seulement si vous êtes sûr que le résultat est le bon.\",\n \"pages.admin.company_goals.goal_detail.confirm_set_result.title\": \"Confirmer {result} result\",\n \"pages.admin.company_goals.goal_detail.country\": \"Pays\",\n \"pages.admin.company_goals.goal_detail.dates_candidates_application\": \"Dates de candidature des candidats\",\n \"pages.admin.company_goals.goal_detail.dates.application\": \"application\",\n \"pages.admin.company_goals.goal_detail.dates.end\": \"Date de fin de l’objectif {title}\",\n \"pages.admin.company_goals.goal_detail.dates.start\": \"Date de début de l’objectif {title}\",\n \"pages.admin.company_goals.goal_detail.dates.tag.closed\": \"Fermé\",\n \"pages.admin.company_goals.goal_detail.dates.tag.draft\": \"Brouillon\",\n \"pages.admin.company_goals.goal_detail.dates.tag.in_progress\": \"En cours\",\n \"pages.admin.company_goals.goal_detail.dates.tag.stand_by\": \"Standby\",\n \"pages.admin.company_goals.goal_detail.dates.tag.waiting_candidates\": \"En attente de candidats\",\n \"pages.admin.company_goals.goal_detail.dates\": \"Dates de réalisation des objectifs\",\n \"pages.admin.company_goals.goal_detail.description\": \"Description\",\n \"pages.admin.company_goals.goal_detail.edit_goal\": \"Modifier l’objectif\",\n \"pages.admin.company_goals.goal_detail.employee_full_name\": \"{firstName} {lastName}\",\n \"pages.admin.company_goals.goal_detail.employees_applying\": \"Candidats qui postulent\",\n \"pages.admin.company_goals.goal_detail.employees_modal.applicants\": \"{number} candidats\",\n \"pages.admin.company_goals.goal_detail.employees_modal.list_title.employee\": \"Employé\",\n \"pages.admin.company_goals.goal_detail.employees_modal.list_title.match_with_goal\": \"Correspondance avec l’objectif\",\n \"pages.admin.company_goals.goal_detail.employees_modal.search.placeholder\": \"Objectifs et défis de recherche\",\n \"pages.admin.company_goals.goal_detail.employees_modal.title\": \"Trouver des personnes pour l’objectif\",\n \"pages.admin.company_goals.goal_detail.employees_on_charge\": \"Employés en charge de cet objectif\",\n \"pages.admin.company_goals.goal_detail.employees_selected\": \"Employés sélectionnés\",\n \"pages.admin.company_goals.goal_detail.employees.delete.content\": \"Vous allez supprimer cet employé pour l’équipe de l’objectif. Vous pouvez le sélectionner pour un autre objectif ou l’ajouter à nouveau plus tard. Êtes-vous sûr de vouloir continuer?\",\n \"pages.admin.company_goals.goal_detail.employees.delete.title\": \"Supprimer l’employé\",\n \"pages.admin.company_goals.goal_detail.employees\": \"Employés\",\n \"pages.admin.company_goals.goal_detail.launch_goal\": \"Objectif de lancement\",\n \"pages.admin.company_goals.goal_detail.launched_goal\": \"Lancé\",\n \"pages.admin.company_goals.goal_detail.link\": \"Plus d’informations\",\n \"pages.admin.company_goals.goal_detail.no_assigned_yet\": \"Aucun employé encore affecté\",\n \"pages.admin.company_goals.goal_detail.open_for_applications\": \"Objectif ouvert aux candidatures\",\n \"pages.admin.company_goals.goal_detail.people_needed\": \"Nombre de personnes nécessaires\",\n \"pages.admin.company_goals.goal_detail.progress.label\": \"Progression de l’objectif de l’équipe\",\n \"pages.admin.company_goals.goal_detail.progress.no_progression.application_open\": \"La phase de candidature est toujours ouverte\",\n \"pages.admin.company_goals.goal_detail.progress.no_progression.draft\": \"L’objectif est encore en phase de brouillon\",\n \"pages.admin.company_goals.goal_detail.progress.no_progression.team_built\": \"L’équipe est construite mais l’objectif n’a pas encore commencé\",\n \"pages.admin.company_goals.goal_detail.progress.no_progression.team_not_built\": \"L’équipe n’a pas encore été construite\",\n \"pages.admin.company_goals.goal_detail.progress.title\": \"Progression\",\n \"pages.admin.company_goals.goal_detail.published_for_applicants\": \"Publié pour les candidats\",\n \"pages.admin.company_goals.goal_detail.result_failed\": \"L’objectif a été un échec\",\n \"pages.admin.company_goals.goal_detail.result_not_set\": \"L’objectif est terminé. Veuillez sélectionner l’évaluation globale qui correspond le mieux au résultat final de l’objectif.\",\n \"pages.admin.company_goals.goal_detail.result_succeeded\": \"L’objectif a été un succès\",\n \"pages.admin.company_goals.goal_detail.skills_needed.no_content_yet\": \"Vous n’avez pas encore fourni d’informations\",\n \"pages.admin.company_goals.goal_detail.skills_needed\": \"Compétences requises\",\n \"pages.admin.company_goals.goal_detail.successfully_launched\": \"L’objectif a été lancé avec succès\",\n \"pages.admin.company_goals.goal_detail.successfully_result_set\": \"Le résultat de l’objectif a été défini avec succès\",\n \"pages.admin.company_goals.goal_detail.team_skills\": \"Compétences d’équipe\",\n \"pages.admin.internal_promotions.title\": \"Promotions internes\",\n \"pages.admin.company_settings.title\": \"Paramètres de l’entreprise\",\n \"pages.admin.company_settings.save\": \"Enregistrer le profil\",\n \"pages.admin.company_settings.general_info.title\": \"Informations générales\",\n \"pages.admin.company_settings.general_info.form.name\": \"Nom\",\n \"pages.admin.company_settings.general_info.form.description\": \"Description\",\n \"pages.admin.company_settings.general_info.form.feedbackEmail\": \"E-mail de commentaires\",\n \"pages.admin.company_settings.general_info.successfully_updated\": \"Informations générales sur l’entreprise mises à jour avec succès\",\n \"pages.admin.company_settings.general_info.chatbot.step\": \"Pas\",\n \"pages.admin.company_settings.general_info.chatbot.teams.title\": \"M. Fleebe en MsTeams\",\n \"pages.admin.company_settings.general_info.chatbot.teams.download.label\": \"M. Chatbot\",\n \"pages.admin.company_settings.general_info.chatbot.teams.download.text\": \"Télécharger\",\n \"pages.admin.company_settings.general_info.chatbot.teams.step.1\": \"Accédez à Administration des équipes\",\n \"pages.admin.company_settings.general_info.chatbot.teams.step.2\": \"Télécharger l'application téléchargée\",\n \"pages.admin.company_settings.general_info.chatbot.teams.step.3\": \"attribuer des autorisations\",\n \"pages.admin.company_settings.general_info.chatbot.teams.step.4\": \"Allez-y doucement... Le chatbot a besoin de temps pour se rafraîchir et devenir disponible.\",\n \"pages.admin.company_settings.general_info.chatbot.slack.title\": \"M. Fleebe sur Slack\",\n \"pages.admin.company_settings.general_info.chatbot.slack.add\": \"Ajouter à Slack\",\n \"pages.admin.company_settings.general_info.chatbot.slack.step.1\": \"Cliquez sur le bouton 'Ajouter à Slack'\",\n \"pages.admin.company_settings.general_info.chatbot.slack.step.2\": \"Si la liste déroulante de l'espace de travail lâche s'affiche, sélectionnez celle que vous souhaitez\",\n \"pages.admin.company_settings.general_info.chatbot.slack.step.3\": \"Acceptez les conditions\",\n \"pages.admin.company_settings.azure_info.title\": \"Informations Azure\",\n \"pages.admin.company_settings.azure_info.form.service_principal_id\": \"ID principal de service\",\n \"pages.admin.company_settings.azure_info.form.service_principal_secret\": \"Secret principal de service\",\n \"pages.admin.company_settings.azure_info.form.service_principal_secret.placeholder\": \"**************************\",\n \"pages.admin.company_settings.azure_info.form.tenant_id\": \"ID de locataire\",\n \"pages.admin.company_settings.azure_info.form.purchase_subscription_id\": \"ID d’abonnement\",\n \"pages.admin.company_settings.azure_info.successfully_updated\": \"Informations sur la société Azure mises à jour avec succès\",\n \"pages.admin.skills.grid.name\": \"Nom\",\n \"pages.admin.skills.grid.description\": \"Description\",\n \"pages.admin.skills.grid.status\": \"Statut\",\n \"pages.admin.skills.grid.type\": \"Type\",\n \"pages.admin.skill_management.search_placeholder\": \"Compétences de recherche\",\n \"pages.admin.skill_management.new_skill\": \"Ajouter une nouvelle compétence\",\n \"pages.admin.skill_management.filters.status.all\": \"Tous\",\n \"pages.admin.skill_management.filters.status.Pending\": \"Modération en attente\",\n \"pages.admin.skill_management.filters.status.Approved\": \"Approuvé\",\n \"pages.admin.skill_management.filters.type.all\": \"Tous\",\n \"pages.admin.skill_management.filters.type.General\": \"Général\",\n \"pages.admin.skill_management.filters.type.Language\": \"Langue\",\n \"pages.admin.skill_management.search_show_all_skills\": \"Toutes\",\n \"pages.admin.skill_management.skill_requester_name\": \"Demandeur\",\n \"pages.admin.skill_management.skill_moderator_name\": \"modérateur\",\n \"pages.admin.skill_management.grid.no_results\": \"Il n’y a pas de compétences avec ce filtre\",\n \"pages.admin.skill_management.skill_status.Pending\": \"En attente de modération\",\n \"pages.admin.skill_management.skill_status.Approved\": \"Approuvé\",\n \"pages.admin.skill_management.edit_skill\": \"Modifier la compétence\",\n \"pages.admin.skill_management.delete\": \"Supprimer la compétence\",\n \"pages.admin.skill_management.moderate\": \"Modéré\",\n \"pages.admin.skill_management.confirm_to_delete\": \"Si vous supprimez la compétence, il sera supprimé la compétence et la demande de l’employé. Voulez-vous continuer?\",\n \"pages.admin.skill_management.validated_effects.title\": \"Compétence validée\",\n \"pages.admin.skill_management.validated_effects.text\": \"La compétence a été validée. Désormais, les employés peuvent le sélectionner pour compléter leur cursus\",\n \"pages.admin.skill_management.noContentYet\": \"Pas encore de contenu\",\n \"pages.admin.talent_detection.chart.no_content\": \"Nous n’avons pas assez d’informations pour créer le graphique\",\n \"pages.admin.talent_detection.chart.by_age\": \"Par âge\",\n \"pages.admin.talent_detection.chart.by_group\": \"Par groupe\",\n \"pages.admin.talent_detection.employee_motivation.search.placeholder\": \"Rechercher\",\n \"pages.admin.talent_detection.employee_motivation.title.employee\": \"Employé(e)\",\n \"pages.admin.talent_detection.employee_motivation.title.motivation\": \"Motivation\",\n \"pages.admin.talent_detection.employee_motivation.title\": \"Gamme motivationnelle des employés\",\n \"pages.admin.talent_detection.employees.no_content\": \"Il n’y a pas encore de contenu sélectionné\",\n \"pages.admin.talent_detection.employees_group.title\": \"{n} employé {group} dans {category} | {n} employés {group} dans {category}\",\n \"pages.admin.talent_detection.employees_age.title.age_from\": \"{n} employé dans {category} (depuis {from} ans) | {n} employés dans {category} (depuis {from} ans)\",\n \"pages.admin.talent_detection.employees_age.title.age_to\": \"{n} employé dans {category} (pour {to} ans) | {n} employés dans {category} (pour {to} ans)\",\n \"pages.admin.talent_detection.employees_age.title.age_range\": \"{n} employé dans {category} (depuis {from} to {to} ans) | {n} employés dans {category} (depuis {from} to {to} ans)\",\n \"pages.admin.talent_detection.employees_age.title.age_all\": \"{n} employé dans {category} | {n} employés dans {category}\",\n \"pages.admin.talent_detection.search\": \"Rechercher un passe-temps\",\n \"pages.admin.talent_detection.tip.content\": \"Lorsque le graphique est enfin construit, cliquez sur les zones colorées pour voir comment les employés se rapportent aux passe-temps sélectionnés.\",\n \"pages.admin.talent_detection.tip.title\": \"Principaux passe-temps cachés\",\n \"pages.admin.talent_detection.title\": \"Détection des talents\",\n \"pages.admin.talent_detection.view_motivation\": \"Voir tous les employés\",\n \"pages.admin.learning.title\": \"Apprendre dans l’entreprise\",\n \"pages.admin.learning.title.short\": \"Apprentissage\",\n \"pages.admin.learning.search_placeholder\": \"Rechercher\",\n \"pages.admin.learning.create_new_learning_form.title\": \"Créez la formation dont votre entreprise a besoin\",\n \"pages.admin.learning.create_new_learning_form.description\": \"Si nécessaire, vous pouvez également créer des cours adaptés aux besoins de votre entreprise.\",\n \"pages.admin.learning.create_new_learning_form.new_learning\": \"Ajouter une formation\",\n \"pages.admin.learning.create_new_learning_form.successfully_created\": \"La formation a été créée avec succès\",\n \"pages.admin.learning.form.create\": \"Ajouter une nouvelle formation\",\n \"pages.admin.learning.form.edit\": \"Modifier la formation\",\n \"pages.admin.learning.form.fields.title.label\": \"Titre\",\n \"pages.admin.learning.form.fields.title.placeholder\": \"Titre de la formation\",\n \"pages.admin.learning.form.fields.description.label\": \"Description\",\n \"pages.admin.learning.form.fields.description.placeholder\": \"Tapez ici\",\n \"pages.admin.learning.form.fields.startDate.label\": \"Date de début\",\n \"pages.admin.learning.form.fields.endDate.label\": \"Date de fin\",\n \"pages.admin.learning.form.fields.level.label\": \"Niveau\",\n \"pages.admin.learning.form.fields.duration.label\": \"Durée (heures)\",\n \"pages.admin.learning.form.fields.topics.label\": \"Sujets (séparés par des virgules)\",\n \"pages.admin.learning.form.fields.topics.placeholder\": \"Type topics\",\n \"pages.admin.learning.form.fields.onsiteInformation.label\": \"Informations sur site\",\n \"pages.admin.learning.form.fields.onsiteCountry.label\": \"Pays\",\n \"pages.admin.learning.form.fields.onsiteCountry.placeholder\": \"Entrez le pays\",\n \"pages.admin.learning.form.fields.onsiteCity.label\": \"Ville\",\n \"pages.admin.learning.form.fields.onsiteCity.placeholder\": \"Entrez la ville\",\n \"pages.admin.learning.form.fields.onsiteAddress.label\": \"Adresse\",\n \"pages.admin.learning.form.fields.onsiteAddress.placeholder\": \"Entrez l’adresse\",\n \"pages.admin.learning.form.fields.onsiteFloor.label\": \"Étage\",\n \"pages.admin.learning.form.fields.onsiteFloor.placeholder\": \"Enter floor\",\n \"pages.admin.learning.form.fields.onsiteRoom.label\": \"Salle\",\n \"pages.admin.learning.form.fields.onsiteRoom.placeholder\": \"Entrer dans la salle\",\n \"pages.admin.learning.form.fields.onsiteSchedule.label\": \"Planification\",\n \"pages.admin.learning.form.fields.onsiteSchedule.placeholder\": \"Entrer la planification\",\n \"pages.admin.learning.form.fields.onsiteStartTime.label\": \"Heure de début\",\n \"pages.admin.learning.form.fields.onsiteEndTime.label\": \"Heure de fin\",\n \"pages.admin.learning.form.fields.attachment.label\": \"Joindre la couverture de l’image\",\n \"pages.admin.learning.form.fields.courseUrl.title\": \"Tapez ici l’URL du cours\",\n \"pages.admin.learning.form.fields.courseUrl.description\": \"Contactez le fournisseur pour obtenir un lien valide pour le cours.\",\n \"pages.admin.learning.form.fields.courseUrl.label\": \"URL de la formation\",\n \"pages.admin.learning.form.fields.courseUrl.placeholder\": \"Par exemple https://www.training.com/course/name-of-the-course/\",\n \"pages.admin.learning.form.save\": \"Créer une formation\",\n \"pages.admin.learning.form.fields.language.label\": \"Langue\",\n \"pages.admin.learning.form.languages.english\": \"Anglais\",\n \"pages.admin.learning.form.languages.spanish\": \"espagnol\",\n \"pages.admin.learning.prompt.delete.title\": \"Supprimer le cours\",\n \"pages.admin.learning.prompt.delete.description\": \"Vous allez supprimer ce cours. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?\",\n \"shared.close\": \"Fermer\",\n \"shared.languages.english\": \"Anglais\",\n \"shared.languages.en\": \"Anglais\",\n \"shared.languages.spanish\": \"Espagnol\",\n \"shared.languages.es\": \"Espagnol\",\n \"shared.languages.french\": \"Français\",\n \"shared.languages.fr\": \"Français\",\n \"shared.languages.german\": \"Allemand\",\n \"shared.languages.italian\": \"Italien\",\n \"shared.languages.portuguese\": \"Portugais\",\n \"shared.app_tag.no_content_yet\": \"Vous n’avez pas encore fourni d’informations\",\n \"shared.today\": \"Aujourd’hui\",\n \"shared.yesterday\": \"Hier\",\n \"shared.lastUpdate\": \"Dernière mise à jour\",\n \"shared.not_available\": \"N/A\",\n \"shared.yes\": \"Oui\",\n \"shared.no\": \"Non\",\n \"shared.back\": \"Retour\",\n \"shared.results\": \"{n} result | {n} résultats\",\n \"shared.resultsFor\": \"{n} Result For '{name}' | {n} Résultats pour '{name}'\",\n \"shared.applicants\": \"{n} demandeur | {n} demandeurs\",\n \"shared.assigned\": \"{n} employé affecté | {n} employés affectés\",\n \"shared.attachment.label\": \"Choisissez un fichier à télécharger\",\n \"shared.time.minutes\": \"{time} min\",\n \"shared.time.hours\": \"{time} h\",\n \"shared.are_you_sure\": \"Êtes-vous sûr de vouloir continuer?\",\n \"pages.admin.employee_roles.search_placeholder\": \"Recherche par nom, prénom et e-mail\",\n \"pages.admin.admin_roles.roles.grid.email\": \"Email\",\n \"pages.admin.admin_roles.roles.grid.name\": \"Nom\",\n \"pages.admin.admin_roles.roles.grid.surname\": \"Nom\",\n \"pages.admin.admin_roles.roles.grid.role\": \"Rôle\",\n \"pages.admin.admin_roles.roles.grid.role.Administrator\": \"Administrateur\",\n \"pages.admin.admin_roles.roles.grid.role.ITManager\": \"Responsable informatique\",\n \"pages.admin.admin_roles.roles.grid.role.User\": \"Utilisateur\",\n \"pages.admin.admin_roles.roles.grid.role.all\": \"Tous\",\n \"pages.goals_challenges.details.is_open.label\": \"Objectif ouvert aux candidatures\",\n \"pages.goals_challenges.details.people_needed.label\": \"Personnes recherchées\",\n \"pages.goals_challenges.details.country.label\": \"Pays\",\n \"pages.goals_challenges.details.city.label\": \"Ville\",\n \"pages.goals_challenges.details.start_date.label\": \"Date de début de l’objectif\",\n \"pages.goals_challenges.details.end_date.label\": \"Date de fin de but\",\n \"pages.goals_challenges.details.my_progress.label\": \"Progression de l’objectif\",\n \"pages.goals_challenges.details.coworkers_with_this_goal.label\": \"Collaborateur avec cet objectif | Collaborateurs avec cet objectif\",\n \"pages.goals_challenges.details.participate\": \"Participer\",\n \"pages.goals_challenges.details.reject\": \"Rejeter\",\n \"pages.goals_challenges.details.reject_application\": \"Rejeter ma demande\",\n \"pages.goals_challenges.details.colleagues_registered\": \"{n} collègue inscrit | {n} collègues inscrits\",\n \"pages.my_groups.title\": \"Mes groupes\",\n \"pages.my_groups.search.placeholder\": \"Recherche d'employés\",\n \"pages.my_groups.grid.actions.view_profile\": \"Voir le profil\",\n \"pages.my_groups.view_questions\": \"Afficher les questions\",\n \"shared.company_groups_questions.title\": \"Des questions\",\n \"shared.company_groups_questions.subtitle\": \"Questions de l'enquête\",\n \"shared.company_groups_questions.created_questions\": \"Questions créées\",\n \"shared.company_groups_questions.sent_questions\": \"Questions envoyées\",\n \"shared.company_groups_questions.search.placeholder\": \"Questions de recherche\",\n \"shared.company_groups_questions.add_new_question\": \"Ajouter une nouvelle question\",\n \"shared.company_groups_questions.remove\": \"Supprimer des questions\",\n \"shared.company_groups_questions.send\": \"Envoyer des questions\",\n \"shared.company_groups_questions.tip.title\": \"Nouvelles questions\",\n \"shared.company_groups_questions.tip.content\": \"Vos employés sont talentueux, donc leur avis est précieux. Créez ici un formulaire pour obtenir vos commentaires.\",\n \"shared.company_groups_questions.grid.field.question\": \"Question\",\n \"shared.company_groups_questions.grid.field.answeredPercentage\": \"Participation (%)\",\n \"shared.company_groups_questions.grid.field.send_date\": \"Envoyer la date\",\n \"shared.company_groups_questions.view_kpis\": \"Voir les KPI\",\n \"shared.company_groups_questions.view_questions\": \"Afficher les questions\",\n \"shared.company_groups_questions.grid.actions.remove\": \"Supprimer la question du groupe\",\n \"shared.company_groups_questions.grid.actions.preview\": \"Aperçu des questions\",\n \"shared.company_groups_questions.grid.actions.edit\": \"Modifier la question\",\n \"shared.company_groups_questions.send_to_groups.title\": \"Envoyer des questions aux groupes\",\n \"shared.company_groups_questions.send_to_groups.content\": \"Sélectionnez les destinataires auxquels vous souhaitez envoyer l'enquête. Seul un administrateur peut créer un groupe de destinataires. Si vous ne trouvez pas le groupe dont vous avez besoin, veuillez contacter votre administrateur des ressources humaines.\",\n \"shared.company_groups_questions.send_to_groups.search.placeholder\": \"Rechercher\",\n \"shared.company_groups_questions.send_to_groups.buttons.send\": \"Envoyer\",\n \"shared.company_groups_questions.send_to_groups.fields.group_name\": \"Nom de groupe\",\n \"shared.company_groups_questions.send_to_groups.fields.people\": \"Personnes\",\n \"shared.question_answers.title\": \"Réponses à '{text}'\",\n \"shared.question_answers.search.placeholder\": \"Recherche\",\n \"shared.question_answers.no_answer\": \"Pas encore de réponse\",\n \"shared.question_answers.action.show\": \"Afficher les réponses aux questions\",\n \"shared.question_answers.statistics.metric\": \"{count} sur {total}\",\n \"shared.question_answers.statistics.copy\": \"Les gens ont répondu\",\n \"shared.question_kpi.pin\": \"Épinglez ce graphique pour l'afficher dans le tableau de bord\",\n \"shared.question_kpi.unpin\": \"Retirer ce graphique du tableau de bord\",\n \"shared.question_kpi.action.show\": \"Afficher la question KPI\",\n \"shared.question_kpi.no_answers\": \"Cette question n’a pas encore reçu de réponse\",\n \"shared.employee.full_name\": \"{firstName} {lastName}\",\n \"shared.company-groups.grid.full_name\": \"Nom\",\n \"shared.company-groups.grid.email\": \"Email\",\n \"shared.agree_share_information\": \"J’accepte de partager mes informations avec l’entreprise\",\n \"shared.skillEditor.newSkill.skill.title\": \"Vous ne trouvez pas la compétence?\",\n \"shared.skillEditor.newSkill.skill.addNewButton\": \"Ajouter une nouvelle compétence\",\n \"shared.skillEditor.newSkill.language.title\": \"Vous ne trouvez pas la langue?\",\n \"shared.skillEditor.newSkill.language.addNewButton\": \"Ajouter une nouvelle langue\",\n \"shared.skillEditor.skill.search\": \"Rechercher une compétence\",\n \"shared.skillEditor.language.search\": \"Recherche d’une langue\",\n \"shared.skillEditor.skill.pendingArea\": \"En attente d’approbation compétences:\",\n \"shared.skillEditor.language.pendingArea\": \"En attente d’approbation langues:\",\n \"shared.skillCreator.skill.title\": \"Créer une nouvelle compétence\",\n \"shared.skillCreator.language.title\": \"Créer une nouvelle langue\",\n \"shared.skillCreator.skill.hrMessage\": \"La nouvelle compétence doit être validée par l’administrateur RH.\",\n \"shared.skillCreator.language.hrMessage\": \"La nouvelle langue doit être validée par l’administrateur RH.\",\n \"shared.skillCreator.form.skill_type_label\": \"Type de compétence\",\n \"shared.skillCreator.form.description\": \"Description\",\n \"shared.skillCreator.form.name\": \"Nom\",\n \"shared.skillCreator.form.skill.createButton\": \"Créer une compétence\",\n \"shared.skillCreator.form.language.createButton\": \"Créer une langue\",\n \"shared.table.rows_per_page\": \"Lignes par page\",\n \"shared.table.go_to_first_page\": \"Aller à la première page\",\n \"shared.table.go_to_previous_page\": \"Aller à la page précédente\",\n \"shared.table.go_to_next_page\": \"Aller à la page suivante\",\n \"shared.table.go_to_last_page\": \"Aller à la dernière page\",\n \"shared.tips.title\": \"Tip\",\n \"shared.tips.dismiss\": \"J’ai compris\",\n \"shared.reminder.title\": \"Gentil rappel\",\n \"shared.feedback-sender.feedback-button\": \"Feedback\",\n \"shared.feedback-sender.bug-button\": \"Bug\",\n \"shared.feedback-sender.feedback-message\": \"Veuillez écrire vos commentaires ici. Merci beaucoup.\",\n \"shared.feedback-sender.bug-message\": \"Veuillez préciser comment reproduire ce bogue ou inclure une capture d'écran.\",\n \"entities.goals_challenges.has_not_started\": \"L’objectif n’a pas encore commencé\",\n \"entities.goals_challenges.has_finished\": \"L’objectif est terminé\",\n \"entities.goals_challenges.no_goals_yet\": \"Vous n’avez pas encore d’objectifs\",\n \"entities.goals_challenges.employee_no_goals_yet\": \"L’employé n’a pas encore d’objectifs\",\n \"entities.learning.language\": \"Langue\",\n \"entities.learning.duration\": \"Durée\",\n \"entities.learning.level\": \"Niveau\",\n \"entities.learning.topics\": \"Topics\",\n \"entities.learning.more_information\": \"Plus d’informations\",\n \"entities.my_ideal_job.title\": \"Mon métier idéal\",\n \"entities.my_ideal_job.tab.learning_path\": \"Parcours d’apprentissage\",\n \"entities.my_ideal_job.tab.my_training\": \"Ma formation\",\n \"entities.my_ideal_job.tab.company_training\": \"Formation en entreprise\",\n \"entities.my_ideal_job.general_skills\": \"Compétences\",\n \"entities.my_ideal_job.languages\": \"Langues\",\n \"entities.my_ideal_job.tip.content\": \"Quel serait votre travail idéal en ce moment? Complétez-le ici pour être guidé dans l’atteinte de vos objectifs !\",\n \"entities.my_ideal_job.add_job\": \"Ajouter un emploi idéal\",\n \"entities.my_ideal_job.update_job\": \"Mettez à jour votre emploi idéal\",\n \"entities.my_ideal_job.fields.title\": \"Titre\",\n \"entities.my_ideal_job.fields.title.placeholder\": \"Ajoutez un titre pour votre emploi idéal\",\n \"entities.my_ideal_job.fields.description\": \"Description\",\n \"entities.my_ideal_job.fields.description.placeholder\": \"Ajouter une description pour votre emploi idéal\",\n \"entities.my_ideal_job.recommended_learning\": \"Apprentissage recommandé\",\n \"entities.my_interests.hobbies\": \"Hobbies\",\n \"entities.my_interests.add-hobbies\": \"Modifier les passe-temps\",\n \"entities.my_interests.hobbies.category\": \"Catégorie\",\n \"entities.my_interests.hobbies.edit-modal.title\": \"Loisirs\",\n \"entities.my_interests.hobbies.edit-modal.search\": \"Recherche d’un passe-temps\",\n \"entities.my_interests.hobbies.edit-modal.needNew\": \"Vous ne trouvez pas le passe-temps?\",\n \"entities.my_interests.hobbies.edit-modal.newButton\": \"Ajouter un nouveau passe-temps\",\n \"entities.my_interests.hobbies.hobbies-creator.title\": \"Créer un nouveau passe-temps\",\n \"entities.my_interests.hobbies.hobbies-creator.createButton\": \"Créer un passe-temps\",\n \"entities.my_interests.hobbies.hobbies-creator.form.name\": \"Nom\",\n \"entities.my_interests.hobbies.category.sport\": \"Sport\",\n \"entities.my_interests.hobbies.category.music\": \"Musique\",\n \"entities.my_interests.hobbies.category.culture\": \"Culture\",\n \"entities.my_interests.hobbies.category.technology\": \"Technologie\",\n \"entities.my_interests.hobbies.category.others\": \"Autre\",\n \"entities.my_interests.hobbies.no_hobbies\": \"Aucun passe-temps défini\",\n \"entities.my_interests.hobbies.age\": \"Âge\",\n \"entities.skills.Low\": \"Faible\",\n \"entities.skills.Medium\": \"Medium\",\n \"entities.skills.High\": \"High\",\n \"entities.courses.level.empty\": \"--\",\n \"entities.courses.level.1\": \"Principiante\",\n \"entities.courses.level.2\": \"Avanzado\",\n \"entities.courses.level.3\": \"Experto\",\n \"level_KPI.x.title\": \"Vote os\",\n \"pages.admin.company_settings.employee_groups.title\": \"Groupes d'employés\",\n \"pages.admin.company_settings.role_management.title\": \"Rôles\",\n \"pages.admin.company_settings.skill_management.title\": \"Compétences\",\n \"pages.admin.company_settings.chatbot.title\": \"Mr. Fleebe\",\n \"pages.admin.company_settings.employee_groups.search_placeholder\": \"Rechercher des groupes d'employés\",\n \"pages.admin.company_settings.employee_groups.new_group\": \"Ajouter un nouveau groupe\",\n \"pages.admin.company_settings.employee_groups.fields.name\": \"Nom\",\n \"pages.admin.company_settings.employee_groups.fields.description\": \"Description\",\n \"pages.admin.company_settings.employee_groups.fields.people\": \"Personnes\",\n \"pages.admin.company_settings.employee_groups.fields.courses\": \"Apprentissage\",\n \"pages.admin.company_settings.employee_groups.fields.employee-count\": \"{n} personnes\",\n \"pages.admin.company_settings.employee_groups.fields.course-count\": \"{n} cours\",\n \"pages.admin.company_settings.employee_groups.no_results\": \"Il n'y a aucun groupe avec ce filtre\",\n \"pages.admin.company_settings.employee_groups.delete.title\": \"Supprimer le groupe d'employés\",\n \"pages.admin.company_settings.employee_groups.delete.description\": \"Vous allez supprimer ce groupe d'employés. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer ?\",\n \"pages.admin.company_settings.employee_groups.editor.title\": \"Modifier le groupe d'employés\",\n \"pages.admin.company_settings.employee_groups.editor.new_group\": \"Nouveau groupe\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.title\": \"Importer la liste des employés\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.tip.title\": \"Comment importer un groupe.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.tip.description\": \"Importer un document d'un format valide. La première colonne doit être 'Email' et les suivantes les emails des employés que vous voulez dans le groupe.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.no_email_column_error.title\": \"Aucune colonne nommée Email.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.no_email_column_error.description\": \"Il doit y avoir une colonne nommée 'Email'.
Pour nommer une colonne, la première ligne de la colonne doit être 'Email'. Veuillez télécharger un nouveau document avec ce nom de colonne.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.not_all_are_emails_error.title\": \"Toutes les valeurs ne sont pas des e-mails.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.not_all_are_emails_error.description\": \"Toutes les valeurs de la colonne 'E-mail' ne correspondent pas à une adresse e-mail valide :

{notValidEmails}

Veuillez vérifier le format.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.emails_not_matched.title\": \"E-mails introuvables.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.emails_not_matched.description\": \"Les e-mails suivants n'ont pas été trouvés entre les employés :

{notFoundEmails}

D'autres e-mails ont été ajoutés au groupe.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.all_emails_matched.title\": \"Employés ajoutés au groupe.\",\n \"pages.admin.company_settings.employee_groups.editor.import_group_from_excel.all_emails_matched.description\": \"Tous les employés ont été ajoutés au groupe.\",\n \"pages.admin.company_settings.employee_groups.editor.search_placeholder\": \"Recherche d'employés\",\n \"pages.admin.company_settings.employee_groups.editor.selected_employees\": \"Employés sélectionnés {n} sur {count}\",\n \"pages.admin.company_settings.employee_groups.editor.grid.actions.manage\": \"Gérer\",\n \"pages.admin.company_settings.employee_groups.role.Manager\": \"Directeur\",\n \"pages.admin.company_settings.employee_groups.role.Viewer\": \"Téléspectateur\",\n \"pages.admin.company_settings.employee_groups.role.all\": \"Tous\",\n \"pages.admin.company_settings.employee_groups.tabs.employees\": \"Employés\",\n \"pages.admin.company_settings.employee_groups.tabs.questions\": \"Des questions\",\n \"pages.admin.company_settings.employee_groups.tabs.learning\": \"Apprentissage\",\n \"pages.admin.company_settings.employee_groups.manage.title.Employees\": \"Employés et rôles actuels du groupe\",\n \"pages.admin.company_settings.employee_groups.manage.title.Questions\": \"Gestion des questions\",\n \"pages.admin.company_settings.employee_groups.manage.title.Learning\": \"Apprentissage attribué à ce groupe\",\n \"pages.admin.company_settings.employee_groups.manage.learning.select_training\": \"Sélectionnez la formation\",\n \"pages.admin.company_settings.employee_groups.manage.learning.add_training\": \"Ajouter une nouvelle formation\",\n \"pages.admin.company_settings.employee_groups.manage.learning.no_content\": \"Pas encore de contenu\",\n \"pages.admin.company_settings.employee_groups.manage.learning.search.placeholder\": \"Rechercher des cours pour ce groupe\",\n \"pages.admin.company_settings.employees-with-groups.title\": \"Gestion des autorisations\",\n \"pages.admin.company_settings.employees-with-groups.search_placeholder\": \"Recherche d'employés\",\n \"pages.admin.company_settings.employees-with-groups.fields.first-name\": \"Nom\",\n \"pages.admin.company_settings.employees-with-groups.fields.last-name\": \"Nom de famille\",\n \"pages.admin.company_settings.employees-with-groups.fields.email\": \"E-mail\",\n \"pages.admin.company_settings.employees-with-groups.fields.group-count\": \"Groupes\",\n \"pages.admin.company_settings.employees-with-groups.group-count\": \"{n} groupe| {n} groupes\",\n \"pages.admin.company_settings.employees-with-groups.actions.edit\": \"Modifier le groupe\",\n \"pages.admin.company_settings.employees-with-groups.actions.manage\": \"Gérer le groupep\"\n}","import { createI18n, type IntlDateTimeFormats, type IntlNumberFormats } from \"vue-i18n\";\nimport { STORES, useStorageService } from \"@/services/infrastructure/storageService\";\nimport en from \"@/locales/en.json\";\nimport es from \"@/locales/es.json\";\nimport fr from \"@/locales/fr.json\";\n\nconst { getFromStore } = useStorageService(STORES.language_key);\n\nconst dateTimesFormatsConfig: IntlDateTimeFormats = {\n en: {\n onlyMonth: {\n month: \"short\",\n },\n },\n es: {\n onlyMonth: {\n month: \"short\",\n },\n },\n fr: {\n onlyMonth: {\n month: \"short\",\n },\n },\n};\nconst numberFormats: IntlNumberFormats = {\n en: {\n percent: {\n style: \"percent\",\n useGrouping: false,\n },\n },\n es: {\n percent: {\n style: \"percent\",\n useGrouping: false,\n },\n },\n fr: {\n percent: {\n style: \"percent\",\n useGrouping: false,\n },\n },\n};\n\nconst getLocale = (intent?: string): string => intent ?? \"en\";\n\nexport default createI18n({\n legacy: false,\n locale: getLocale(getFromStore() ?? import.meta.env.VITE_APP_I18N_LOCALE),\n fallbackLocale: getLocale(import.meta.env.VITE_APP_I18N_FALLBACK_LOCALE),\n globalInjection: true,\n datetimeFormats: dateTimesFormatsConfig,\n numberFormats: numberFormats,\n messages: {\n es,\n en,\n fr,\n },\n});\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\n const isStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else {\n requestHeaders.setContentType('multipart/form-data;', false); // mobile/desktop app frameworks\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.4.0\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","export default \"__VITE_ASSET__e2ec541f__\"","export const fleebeAppUrl = import.meta.env.VITE_APP_API_URL ?? \"\";\nimport courseNoImage from \"@/assets/images/goals/no_image.svg\";\nexport const imageDefaultForCourses = courseNoImage;\n","const ISODateFormat = /^\\d{4}-\\d{2}-\\d{2}(?:\\.\\d*)?$/;\nconst isISODateString = (value: unknown): boolean => !!value && typeof value === \"string\" && ISODateFormat.test(value);\n\nconst parseISO = (date: string): Date => {\n const dateParsed = new Date(date);\n return new Date(dateParsed.getUTCFullYear(), dateParsed.getUTCMonth(), dateParsed.getUTCDate());\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport const interceptIsoDates = (body: any): void => {\n if (!body || typeof body !== \"object\") {\n return;\n }\n\n for (const key of Object.keys(body)) {\n const value = body[key];\n if (isISODateString(value)) {\n body[key] = parseISO(value);\n }\n interceptIsoDates(value);\n }\n};\n","const ISODateTimeFormat = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d*)?$/;\n\nconst isISODateTimeString = (value: unknown) => !!value && typeof value === \"string\" && ISODateTimeFormat.test(value);\nconst parseISO = (date: string) => new Date(date);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport const interceptIsoDateTimes = (body: any): void => {\n if (!body || typeof body !== \"object\") {\n return;\n }\n\n for (const key of Object.keys(body)) {\n const value = body[key];\n if (isISODateTimeString(value)) {\n body[key] = parseISO(value);\n }\n interceptIsoDateTimes(value);\n }\n};\n","import { fleebeAppUrl } from \"@/constants/urls\";\n\nexport const openUrl = (url: string): void => {\n const newTab = window.open();\n if (newTab) {\n newTab.opener = null;\n newTab.location = url;\n }\n};\nconst accountBaseUrl = `${fleebeAppUrl}/api/accounts`;\nexport const getSignInUrl = (redirectUrl: string): string => `${accountBaseUrl}/signin?redirectUrl=${redirectUrl}`;\nexport const logOutUrl = `${accountBaseUrl}/logout`;\n","import { getSignInUrl } from \"@/utils/urlHelper\";\n\nexport const handleNonAuthentication = (): void => redirectToLogin(window.location.pathname);\nexport const redirectToLogin = (returnUrl: string): void => redirectTo(getSignInUrl(returnUrl));\nexport const redirectTo = (targetUrl: string): void => {\n window.location.href = targetUrl;\n};\n","import useToaster from \"@/components/toaster/useToaster\";\nimport { handleNonAuthentication } from \"@/utils/redirectUtil\";\nimport i18n from \"@/i18n\";\nimport axios, { type AxiosResponse } from \"axios\";\n\ntype HostProblemDetailsItem = {\n field: string;\n fieldValue?: string;\n errorCode: string;\n};\ntype HostProblemDetails = {\n status: number;\n title: string;\n detail: string;\n type: string;\n items: HostProblemDetailsItem[];\n};\n\nexport const showErrorIfNeeded = (value: AxiosResponse | undefined): void => {\n if (value && value.status === 403) {\n handleNonAuthentication();\n return;\n }\n if (value === undefined || value.status >= 300) {\n const { openToaster } = useToaster();\n openToaster(\"error\", value?.data.details || \"Unknown error\");\n }\n};\nexport const showError = (exception: unknown): void => {\n const axiosError = axios.isAxiosError(exception) ? exception : undefined;\n if (axiosError && (axiosError.code === \"ERR_NETWORK\" || axiosError.response?.status === 403)) {\n handleNonAuthentication();\n return;\n }\n const problemDetails = axiosError?.response?.data as HostProblemDetails;\n\n if (problemDetails) {\n showErrorProblemDetails(problemDetails);\n return;\n }\n showUnknownError();\n};\nconst showErrorProblemDetails = (problemDetails: HostProblemDetails) => {\n const { openToaster } = useToaster();\n let errorMessages = \"\";\n\n if (problemDetails.items) {\n problemDetails.items.forEach((i) => {\n const errorMessage = i18n.global.t(`errors.${i.errorCode}`, { field: i.field, value: i.fieldValue });\n errorMessages += errorMessage;\n });\n } else {\n errorMessages = problemDetails.detail;\n }\n\n openToaster(\"error\", errorMessages);\n};\nconst showUnknownError = () => {\n const { openToaster } = useToaster();\n const errorMessage = i18n.global.t(\"errors.UnknownError\");\n openToaster(\"error\", errorMessage);\n};\n","import { reactive, readonly } from \"vue\";\n\nexport type NetworkState = {\n numberOfCallsActives: number;\n};\n\nconst state = reactive({\n numberOfCallsActives: 0,\n});\n\nconst incrementCallCount = (): void => {\n state.numberOfCallsActives = state.numberOfCallsActives + 1;\n};\nconst decrementCallCount = (): void => {\n state.numberOfCallsActives = state.numberOfCallsActives - 1;\n};\n\nexport const networkStateStore = { state: readonly(state), incrementCallCount, decrementCallCount };\n","export const DEBOUNCE_SEARCH_TIMEOUT = 500;\nexport const DEBOUNCE_GET_AS_LOADING = 100;\n","import { ref, type Ref } from \"vue\";\nimport { networkStateStore } from \"@/services/shared/networkStateStore\";\nimport { DEBOUNCE_GET_AS_LOADING } from \"@/constants/debounce\";\n\ninterface UseLoadingReturn {\n startLoading: (delayed: boolean, loading: Ref) => () => void;\n}\n\nexport default (): UseLoadingReturn => {\n const setLoading = (loadingInService: Ref, loadingInCall: Ref, callFinished: Ref) => {\n if (callFinished.value) {\n return;\n }\n loadingInService.value = true;\n loadingInCall.value = true;\n networkStateStore.incrementCallCount();\n };\n const endLoading = (\n timeOut: number | void,\n loadingInService: Ref,\n loadingInCall: Ref,\n callFinished: Ref\n ): void => {\n callFinished.value = true;\n if (timeOut) {\n window.clearTimeout(timeOut);\n }\n loadingInService.value = false;\n if (!loadingInCall.value) {\n return;\n }\n loadingInCall.value = false;\n networkStateStore.decrementCallCount();\n };\n const startLoading = (delayed: boolean, loadingInService: Ref) => {\n const loadingInCall = ref(false);\n const callFinished = ref(false);\n const setLoadingCaller = () => setLoading(loadingInService, loadingInCall, callFinished);\n const timeOut = delayed ? window.setTimeout(setLoadingCaller, DEBOUNCE_GET_AS_LOADING) : setLoadingCaller();\n\n return () => endLoading(timeOut, loadingInService, loadingInCall, callFinished);\n };\n\n return { startLoading };\n};\n","import type { Ref } from \"vue\";\nimport { ref } from \"vue\";\nimport type { AxiosInstance, AxiosResponse } from \"axios\";\nimport axios from \"axios\";\nimport { fleebeAppUrl } from \"@/constants/urls\";\nimport { interceptIsoDates } from \"@/services/shared/dateConverterInterceptor\";\nimport { interceptIsoDateTimes } from \"@/services/shared/dateTimeConverterInterceptor\";\nimport { showError, showErrorIfNeeded } from \"@/utils/apiErrorsUtil\";\nimport useLoading from \"@/services/shared/useLoading\";\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\ninterface HttpClientRequest {}\ninterface UseHttpClientReturn {\n loading: Ref;\n get: (url: string, params?: { [key: string]: unknown }) => Promise;\n post: (url: string, data?: HttpClientRequest) => Promise;\n put: (url: string, data?: HttpClientRequest) => Promise;\n patch: (url: string, data: HttpClientRequest) => Promise;\n httpDelete: (url: string, data?: HttpClientRequest) => Promise;\n appBaseUrl: string | undefined;\n}\n\nexport default (): UseHttpClientReturn => {\n const loading = ref(false);\n\n const api: AxiosInstance = axios.create({\n baseURL: fleebeAppUrl,\n withCredentials: true,\n headers: {\n \"X-CSRF\": \"1\",\n },\n });\n\n api.interceptors.response.use((originalResponse: AxiosResponse) => {\n interceptIsoDateTimes(originalResponse.data);\n interceptIsoDates(originalResponse.data);\n return originalResponse;\n });\n\n const get = (url: string, params?: { [key: string]: unknown }) => invokeApi(() => api.get(url, { params }), true);\n const post = (url: string, data?: HttpClientRequest) => invokeApi(() => api.post(url, data));\n const put = (url: string, data?: HttpClientRequest) => invokeApi(() => api.put(url, data));\n const patch = (url: string, data: HttpClientRequest) => invokeApi(() => api.patch(url, data));\n const httpDelete = (url: string, data?: HttpClientRequest) => invokeApi(() => api.delete(url, { data }));\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const invokeApi = async (caller: () => Promise>, delayLoading = false): Promise => {\n const { startLoading } = useLoading();\n const endLoading = startLoading(delayLoading, loading);\n try {\n const response = await caller();\n showErrorIfNeeded(response);\n return response.data;\n } catch (exception) {\n showError(exception);\n throw exception;\n } finally {\n endLoading();\n }\n };\n\n const { baseURL: appBaseUrl } = api.defaults;\n\n return { loading, appBaseUrl, get, post, put, patch, httpDelete };\n};\n","import { readonly, ref, type Ref } from \"vue\";\nimport type { SpaConfiguration } from \"@/models/spaConfiguration\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\n\nconst BASE_URL = \"/api/spa-configuration\";\nconst { get, loading } = useHttpClient();\n\ninterface UseSpaConfigurationServiceReturn {\n getSpaConfiguration: () => Promise>;\n getFeatureFlags: () => Readonly | undefined>;\n loading: Ref;\n}\n\nconst spaConfig: Ref = ref({});\nexport default (): UseSpaConfigurationServiceReturn => {\n const fetchConfiguration = async (): Promise => {\n spaConfig.value = await get(BASE_URL);\n };\n\n const getSpaConfiguration = async (): Promise> => {\n if (!spaConfig.value.instrumentationKey || !spaConfig.value.featureManagementOptions) {\n await fetchConfiguration();\n }\n return readonly(spaConfig.value);\n };\n\n const getFeatureFlags = (): Readonly | undefined> => spaConfig.value.featureManagementOptions;\n return { getSpaConfiguration, getFeatureFlags, loading };\n};\n","\n\n\n","import type { Directive, DirectiveBinding } from \"vue\";\n\nexport const AppFocus: Directive = {\n mounted: (el: HTMLElement, binding: DirectiveBinding): void => {\n if (binding.value === undefined || binding.value) {\n el.focus();\n }\n },\n};\n","import type { Directive, DirectiveBinding } from \"vue\";\n\nconst scrollToTop = (el: HTMLElement): void => el.scrollTo(0, 0);\n\nexport const AppScrollTop: Directive = {\n mounted: (el: HTMLElement, _binding: DirectiveBinding, _vnode): void => {\n scrollToTop(el);\n },\n updated: (el: HTMLElement, binding: DirectiveBinding): void => {\n if (binding.oldValue !== binding.value) {\n scrollToTop(el);\n }\n },\n};\n","import type { Directive, DirectiveBinding } from \"vue\";\n\nconst scrollTo = (el: HTMLElement, bindingValue: boolean | undefined): void => {\n if (bindingValue !== false && !isVisible(el)) {\n el.scrollIntoView(false);\n }\n};\nconst isVisible = (el: HTMLElement): boolean => {\n const position = el.getBoundingClientRect();\n return !el.parentElement || (position.top >= 0 && position.bottom <= el.parentElement.clientHeight);\n};\n\nexport const AppScrollTo: Directive = {\n mounted: (el: HTMLElement, binding: DirectiveBinding, _vnode): void => {\n scrollTo(el, binding.value);\n },\n updated: (el: HTMLElement, binding: DirectiveBinding): void => {\n scrollTo(el, binding.value);\n },\n};\n","import type { DirectiveBinding, Directive } from \"vue\";\n\nlet clickOutsideEvent: (event: Event) => void;\nexport const clickOutside: Directive = {\n beforeMount: (el: HTMLElement, binding: DirectiveBinding) => {\n clickOutsideEvent = (event: Event) => {\n if (!(el === event.target || el.contains(event.target as Node))) {\n binding.value();\n }\n };\n document.addEventListener(\"click\", clickOutsideEvent);\n },\n unmounted: (_el: HTMLElement) => {\n document.removeEventListener(\"click\", clickOutsideEvent);\n },\n};\n","import { AppFocus } from \"@/directives/AppFocus\";\nimport { AppScrollTop } from \"@/directives/AppScrollTop\";\nimport { AppScrollTo } from \"@/directives/AppScrollTo\";\nimport type { App } from \"vue\";\nimport { clickOutside } from \"@/directives/ClickOutside\";\n\nexport const loadDirectives = (app: App): void => {\n app.directive(\"app-focus\", AppFocus);\n app.directive(\"app-scroll-top\", AppScrollTop);\n app.directive(\"app-scroll-to\", AppScrollTo);\n app.directive(\"click-outside\", clickOutside);\n};\n","/*!\n * vue-router v4.2.2\n * (c) 2023 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction isESModule(obj) {\r\n return obj.__esModule || obj[Symbol.toStringTag] === 'Module';\r\n}\r\nconst assign = Object.assign;\r\nfunction applyToParams(fn, params) {\r\n const newParams = {};\r\n for (const key in params) {\r\n const value = params[key];\r\n newParams[key] = isArray(value)\r\n ? value.map(fn)\r\n : fn(value);\r\n }\r\n return newParams;\r\n}\r\nconst noop = () => { };\r\n/**\r\n * Typesafe alternative to Array.isArray\r\n * https://github.com/microsoft/TypeScript/pull/48228\r\n */\r\nconst isArray = Array.isArray;\n\nfunction warn(msg) {\r\n // avoid using ...args as it breaks in older Edge builds\r\n const args = Array.from(arguments).slice(1);\r\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\r\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\r\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\r\n/**\r\n * Transforms a URI into a normalized history location\r\n *\r\n * @param parseQuery\r\n * @param location - URI to normalize\r\n * @param currentLocation - current absolute location. Allows resolving relative\r\n * paths. Must start with `/`. Defaults to `/`\r\n * @returns a normalized history location\r\n */\r\nfunction parseURL(parseQuery, location, currentLocation = '/') {\r\n let path, query = {}, searchString = '', hash = '';\r\n // Could use URL and URLSearchParams but IE 11 doesn't support it\r\n // TODO: move to new URL()\r\n const hashPos = location.indexOf('#');\r\n let searchPos = location.indexOf('?');\r\n // the hash appears before the search, so it's not part of the search string\r\n if (hashPos < searchPos && hashPos >= 0) {\r\n searchPos = -1;\r\n }\r\n if (searchPos > -1) {\r\n path = location.slice(0, searchPos);\r\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\r\n query = parseQuery(searchString);\r\n }\r\n if (hashPos > -1) {\r\n path = path || location.slice(0, hashPos);\r\n // keep the # character\r\n hash = location.slice(hashPos, location.length);\r\n }\r\n // no search and no query\r\n path = resolveRelativePath(path != null ? path : location, currentLocation);\r\n // empty path means a relative query or hash `?foo=f`, `#thing`\r\n return {\r\n fullPath: path + (searchString && '?') + searchString + hash,\r\n path,\r\n query,\r\n hash,\r\n };\r\n}\r\n/**\r\n * Stringifies a URL object\r\n *\r\n * @param stringifyQuery\r\n * @param location\r\n */\r\nfunction stringifyURL(stringifyQuery, location) {\r\n const query = location.query ? stringifyQuery(location.query) : '';\r\n return location.path + (query && '?') + query + (location.hash || '');\r\n}\r\n/**\r\n * Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\r\n *\r\n * @param pathname - location.pathname\r\n * @param base - base to strip off\r\n */\r\nfunction stripBase(pathname, base) {\r\n // no base or base is not found at the beginning\r\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\r\n return pathname;\r\n return pathname.slice(base.length) || '/';\r\n}\r\n/**\r\n * Checks if two RouteLocation are equal. This means that both locations are\r\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\r\n * parameters and `hash` are the same\r\n *\r\n * @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\r\n * @param a - first {@link RouteLocation}\r\n * @param b - second {@link RouteLocation}\r\n */\r\nfunction isSameRouteLocation(stringifyQuery, a, b) {\r\n const aLastIndex = a.matched.length - 1;\r\n const bLastIndex = b.matched.length - 1;\r\n return (aLastIndex > -1 &&\r\n aLastIndex === bLastIndex &&\r\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\r\n isSameRouteLocationParams(a.params, b.params) &&\r\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\r\n a.hash === b.hash);\r\n}\r\n/**\r\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\r\n * considered equal to the `RouteRecord` they are aliasing.\r\n *\r\n * @param a - first {@link RouteRecord}\r\n * @param b - second {@link RouteRecord}\r\n */\r\nfunction isSameRouteRecord(a, b) {\r\n // since the original record has an undefined value for aliasOf\r\n // but all aliases point to the original record, this will always compare\r\n // the original record\r\n return (a.aliasOf || a) === (b.aliasOf || b);\r\n}\r\nfunction isSameRouteLocationParams(a, b) {\r\n if (Object.keys(a).length !== Object.keys(b).length)\r\n return false;\r\n for (const key in a) {\r\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction isSameRouteLocationParamsValue(a, b) {\r\n return isArray(a)\r\n ? isEquivalentArray(a, b)\r\n : isArray(b)\r\n ? isEquivalentArray(b, a)\r\n : a === b;\r\n}\r\n/**\r\n * Check if two arrays are the same or if an array with one single entry is the\r\n * same as another primitive value. Used to check query and parameters\r\n *\r\n * @param a - array of values\r\n * @param b - array of values or a single value\r\n */\r\nfunction isEquivalentArray(a, b) {\r\n return isArray(b)\r\n ? a.length === b.length && a.every((value, i) => value === b[i])\r\n : a.length === 1 && a[0] === b;\r\n}\r\n/**\r\n * Resolves a relative path that starts with `.`.\r\n *\r\n * @param to - path location we are resolving\r\n * @param from - currentLocation.path, should start with `/`\r\n */\r\nfunction resolveRelativePath(to, from) {\r\n if (to.startsWith('/'))\r\n return to;\r\n if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\r\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\r\n return to;\r\n }\r\n if (!to)\r\n return from;\r\n const fromSegments = from.split('/');\r\n const toSegments = to.split('/');\r\n const lastToSegment = toSegments[toSegments.length - 1];\r\n // make . and ./ the same (../ === .., ../../ === ../..)\r\n // this is the same behavior as new URL()\r\n if (lastToSegment === '..' || lastToSegment === '.') {\r\n toSegments.push('');\r\n }\r\n let position = fromSegments.length - 1;\r\n let toPosition;\r\n let segment;\r\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\r\n segment = toSegments[toPosition];\r\n // we stay on the same position\r\n if (segment === '.')\r\n continue;\r\n // go up in the from array\r\n if (segment === '..') {\r\n // we can't go below zero, but we still need to increment toPosition\r\n if (position > 1)\r\n position--;\r\n // continue\r\n }\r\n // we reached a non-relative path, we stop here\r\n else\r\n break;\r\n }\r\n return (fromSegments.slice(0, position).join('/') +\r\n '/' +\r\n toSegments\r\n // ensure we use at least the last element in the toSegments\r\n .slice(toPosition - (toPosition === toSegments.length ? 1 : 0))\r\n .join('/'));\r\n}\n\nvar NavigationType;\r\n(function (NavigationType) {\r\n NavigationType[\"pop\"] = \"pop\";\r\n NavigationType[\"push\"] = \"push\";\r\n})(NavigationType || (NavigationType = {}));\r\nvar NavigationDirection;\r\n(function (NavigationDirection) {\r\n NavigationDirection[\"back\"] = \"back\";\r\n NavigationDirection[\"forward\"] = \"forward\";\r\n NavigationDirection[\"unknown\"] = \"\";\r\n})(NavigationDirection || (NavigationDirection = {}));\r\n/**\r\n * Starting location for Histories\r\n */\r\nconst START = '';\r\n// Generic utils\r\n/**\r\n * Normalizes a base by removing any trailing slash and reading the base tag if\r\n * present.\r\n *\r\n * @param base - base to normalize\r\n */\r\nfunction normalizeBase(base) {\r\n if (!base) {\r\n if (isBrowser) {\r\n // respect tag\r\n const baseEl = document.querySelector('base');\r\n base = (baseEl && baseEl.getAttribute('href')) || '/';\r\n // strip full URL origin\r\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\r\n }\r\n else {\r\n base = '/';\r\n }\r\n }\r\n // ensure leading slash when it was removed by the regex above avoid leading\r\n // slash with hash because the file could be read from the disk like file://\r\n // and the leading slash would cause problems\r\n if (base[0] !== '/' && base[0] !== '#')\r\n base = '/' + base;\r\n // remove the trailing slash so all other method can just do `base + fullPath`\r\n // to build an href\r\n return removeTrailingSlash(base);\r\n}\r\n// remove any character before the hash\r\nconst BEFORE_HASH_RE = /^[^#]+#/;\r\nfunction createHref(base, location) {\r\n return base.replace(BEFORE_HASH_RE, '#') + location;\r\n}\n\nfunction getElementPosition(el, offset) {\r\n const docRect = document.documentElement.getBoundingClientRect();\r\n const elRect = el.getBoundingClientRect();\r\n return {\r\n behavior: offset.behavior,\r\n left: elRect.left - docRect.left - (offset.left || 0),\r\n top: elRect.top - docRect.top - (offset.top || 0),\r\n };\r\n}\r\nconst computeScrollPosition = () => ({\r\n left: window.pageXOffset,\r\n top: window.pageYOffset,\r\n});\r\nfunction scrollToPosition(position) {\r\n let scrollToOptions;\r\n if ('el' in position) {\r\n const positionEl = position.el;\r\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\r\n /**\r\n * `id`s can accept pretty much any characters, including CSS combinators\r\n * like `>` or `~`. It's still possible to retrieve elements using\r\n * `document.getElementById('~')` but it needs to be escaped when using\r\n * `document.querySelector('#\\\\~')` for it to be valid. The only\r\n * requirements for `id`s are them to be unique on the page and to not be\r\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\r\n * be properly escaped for it to work with `querySelector`. We could check\r\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\r\n * would make things inconsistent since they are valid characters for an\r\n * `id` but would need to be escaped when using `querySelector`, breaking\r\n * their usage and ending up in no selector returned. Selectors need to be\r\n * escaped:\r\n *\r\n * - `#1-thing` becomes `#\\31 -thing`\r\n * - `#with~symbols` becomes `#with\\\\~symbols`\r\n *\r\n * - More information about the topic can be found at\r\n * https://mathiasbynens.be/notes/html5-id-class.\r\n * - Practical example: https://mathiasbynens.be/demo/html5-id\r\n */\r\n if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\r\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\r\n try {\r\n const foundEl = document.querySelector(position.el);\r\n if (isIdSelector && foundEl) {\r\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n catch (err) {\r\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n }\r\n const el = typeof positionEl === 'string'\r\n ? isIdSelector\r\n ? document.getElementById(positionEl.slice(1))\r\n : document.querySelector(positionEl)\r\n : positionEl;\r\n if (!el) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\r\n return;\r\n }\r\n scrollToOptions = getElementPosition(el, position);\r\n }\r\n else {\r\n scrollToOptions = position;\r\n }\r\n if ('scrollBehavior' in document.documentElement.style)\r\n window.scrollTo(scrollToOptions);\r\n else {\r\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);\r\n }\r\n}\r\nfunction getScrollKey(path, delta) {\r\n const position = history.state ? history.state.position - delta : -1;\r\n return position + path;\r\n}\r\nconst scrollPositions = new Map();\r\nfunction saveScrollPosition(key, scrollPosition) {\r\n scrollPositions.set(key, scrollPosition);\r\n}\r\nfunction getSavedScrollPosition(key) {\r\n const scroll = scrollPositions.get(key);\r\n // consume it so it's not used again\r\n scrollPositions.delete(key);\r\n return scroll;\r\n}\r\n// TODO: RFC about how to save scroll position\r\n/**\r\n * ScrollBehavior instance used by the router to compute and restore the scroll\r\n * position when navigating.\r\n */\r\n// export interface ScrollHandler {\r\n// // returns a scroll position that can be saved in history\r\n// compute(): ScrollPositionEntry\r\n// // can take an extended ScrollPositionEntry\r\n// scroll(position: ScrollPosition): void\r\n// }\r\n// export const scrollHandler: ScrollHandler = {\r\n// compute: computeScroll,\r\n// scroll: scrollToPosition,\r\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\r\n/**\r\n * Creates a normalized history location from a window.location object\r\n * @param base - The base path\r\n * @param location - The window.location object\r\n */\r\nfunction createCurrentLocation(base, location) {\r\n const { pathname, search, hash } = location;\r\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\r\n const hashPos = base.indexOf('#');\r\n if (hashPos > -1) {\r\n let slicePos = hash.includes(base.slice(hashPos))\r\n ? base.slice(hashPos).length\r\n : 1;\r\n let pathFromHash = hash.slice(slicePos);\r\n // prepend the starting slash to hash so the url starts with /#\r\n if (pathFromHash[0] !== '/')\r\n pathFromHash = '/' + pathFromHash;\r\n return stripBase(pathFromHash, '');\r\n }\r\n const path = stripBase(pathname, base);\r\n return path + search + hash;\r\n}\r\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\r\n let listeners = [];\r\n let teardowns = [];\r\n // TODO: should it be a stack? a Dict. Check if the popstate listener\r\n // can trigger twice\r\n let pauseState = null;\r\n const popStateHandler = ({ state, }) => {\r\n const to = createCurrentLocation(base, location);\r\n const from = currentLocation.value;\r\n const fromState = historyState.value;\r\n let delta = 0;\r\n if (state) {\r\n currentLocation.value = to;\r\n historyState.value = state;\r\n // ignore the popstate and reset the pauseState\r\n if (pauseState && pauseState === from) {\r\n pauseState = null;\r\n return;\r\n }\r\n delta = fromState ? state.position - fromState.position : 0;\r\n }\r\n else {\r\n replace(to);\r\n }\r\n // console.log({ deltaFromCurrent })\r\n // Here we could also revert the navigation by calling history.go(-delta)\r\n // this listener will have to be adapted to not trigger again and to wait for the url\r\n // to be updated before triggering the listeners. Some kind of validation function would also\r\n // need to be passed to the listeners so the navigation can be accepted\r\n // call all listeners\r\n listeners.forEach(listener => {\r\n listener(currentLocation.value, from, {\r\n delta,\r\n type: NavigationType.pop,\r\n direction: delta\r\n ? delta > 0\r\n ? NavigationDirection.forward\r\n : NavigationDirection.back\r\n : NavigationDirection.unknown,\r\n });\r\n });\r\n };\r\n function pauseListeners() {\r\n pauseState = currentLocation.value;\r\n }\r\n function listen(callback) {\r\n // set up the listener and prepare teardown callbacks\r\n listeners.push(callback);\r\n const teardown = () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n teardowns.push(teardown);\r\n return teardown;\r\n }\r\n function beforeUnloadListener() {\r\n const { history } = window;\r\n if (!history.state)\r\n return;\r\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\r\n }\r\n function destroy() {\r\n for (const teardown of teardowns)\r\n teardown();\r\n teardowns = [];\r\n window.removeEventListener('popstate', popStateHandler);\r\n window.removeEventListener('beforeunload', beforeUnloadListener);\r\n }\r\n // set up the listeners and prepare teardown callbacks\r\n window.addEventListener('popstate', popStateHandler);\r\n // TODO: could we use 'pagehide' or 'visibilitychange' instead?\r\n // https://developer.chrome.com/blog/page-lifecycle-api/\r\n window.addEventListener('beforeunload', beforeUnloadListener, {\r\n passive: true,\r\n });\r\n return {\r\n pauseListeners,\r\n listen,\r\n destroy,\r\n };\r\n}\r\n/**\r\n * Creates a state object\r\n */\r\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\r\n return {\r\n back,\r\n current,\r\n forward,\r\n replaced,\r\n position: window.history.length,\r\n scroll: computeScroll ? computeScrollPosition() : null,\r\n };\r\n}\r\nfunction useHistoryStateNavigation(base) {\r\n const { history, location } = window;\r\n // private variables\r\n const currentLocation = {\r\n value: createCurrentLocation(base, location),\r\n };\r\n const historyState = { value: history.state };\r\n // build current history entry as this is a fresh navigation\r\n if (!historyState.value) {\r\n changeLocation(currentLocation.value, {\r\n back: null,\r\n current: currentLocation.value,\r\n forward: null,\r\n // the length is off by one, we need to decrease it\r\n position: history.length - 1,\r\n replaced: true,\r\n // don't add a scroll as the user may have an anchor, and we want\r\n // scrollBehavior to be triggered without a saved position\r\n scroll: null,\r\n }, true);\r\n }\r\n function changeLocation(to, state, replace) {\r\n /**\r\n * if a base tag is provided, and we are on a normal domain, we have to\r\n * respect the provided `base` attribute because pushState() will use it and\r\n * potentially erase anything before the `#` like at\r\n * https://github.com/vuejs/router/issues/685 where a base of\r\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\r\n * there is no host, the `` tag makes no sense and if there isn't a\r\n * base tag we can just use everything after the `#`.\r\n */\r\n const hashIndex = base.indexOf('#');\r\n const url = hashIndex > -1\r\n ? (location.host && document.querySelector('base')\r\n ? base\r\n : base.slice(hashIndex)) + to\r\n : createBaseLocation() + base + to;\r\n try {\r\n // BROWSER QUIRK\r\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\r\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\r\n historyState.value = state;\r\n }\r\n catch (err) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Error with push/replace State', err);\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n // Force the navigation, this also resets the call count\r\n location[replace ? 'replace' : 'assign'](url);\r\n }\r\n }\r\n function replace(to, data) {\r\n const state = assign({}, history.state, buildState(historyState.value.back, \r\n // keep back and forward entries but override current position\r\n to, historyState.value.forward, true), data, { position: historyState.value.position });\r\n changeLocation(to, state, true);\r\n currentLocation.value = to;\r\n }\r\n function push(to, data) {\r\n // Add to current entry the information of where we are going\r\n // as well as saving the current position\r\n const currentState = assign({}, \r\n // use current history state to gracefully handle a wrong call to\r\n // history.replaceState\r\n // https://github.com/vuejs/router/issues/366\r\n historyState.value, history.state, {\r\n forward: to,\r\n scroll: computeScrollPosition(),\r\n });\r\n if ((process.env.NODE_ENV !== 'production') && !history.state) {\r\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\r\n `history.replaceState(history.state, '', url)\\n\\n` +\r\n `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\r\n }\r\n changeLocation(currentState.current, currentState, true);\r\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\r\n changeLocation(to, state, false);\r\n currentLocation.value = to;\r\n }\r\n return {\r\n location: currentLocation,\r\n state: historyState,\r\n push,\r\n replace,\r\n };\r\n}\r\n/**\r\n * Creates an HTML5 history. Most common history for single page applications.\r\n *\r\n * @param base -\r\n */\r\nfunction createWebHistory(base) {\r\n base = normalizeBase(base);\r\n const historyNavigation = useHistoryStateNavigation(base);\r\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\r\n function go(delta, triggerListeners = true) {\r\n if (!triggerListeners)\r\n historyListeners.pauseListeners();\r\n history.go(delta);\r\n }\r\n const routerHistory = assign({\r\n // it's overridden right after\r\n location: '',\r\n base,\r\n go,\r\n createHref: createHref.bind(null, base),\r\n }, historyNavigation, historyListeners);\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => historyNavigation.location.value,\r\n });\r\n Object.defineProperty(routerHistory, 'state', {\r\n enumerable: true,\r\n get: () => historyNavigation.state.value,\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\r\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\r\n *\r\n * @param base - Base applied to all urls, defaults to '/'\r\n * @returns a history object that can be passed to the router constructor\r\n */\r\nfunction createMemoryHistory(base = '') {\r\n let listeners = [];\r\n let queue = [START];\r\n let position = 0;\r\n base = normalizeBase(base);\r\n function setLocation(location) {\r\n position++;\r\n if (position === queue.length) {\r\n // we are at the end, we can simply append a new entry\r\n queue.push(location);\r\n }\r\n else {\r\n // we are in the middle, we remove everything from here in the queue\r\n queue.splice(position);\r\n queue.push(location);\r\n }\r\n }\r\n function triggerListeners(to, from, { direction, delta }) {\r\n const info = {\r\n direction,\r\n delta,\r\n type: NavigationType.pop,\r\n };\r\n for (const callback of listeners) {\r\n callback(to, from, info);\r\n }\r\n }\r\n const routerHistory = {\r\n // rewritten by Object.defineProperty\r\n location: START,\r\n // TODO: should be kept in queue\r\n state: {},\r\n base,\r\n createHref: createHref.bind(null, base),\r\n replace(to) {\r\n // remove current entry and decrement position\r\n queue.splice(position--, 1);\r\n setLocation(to);\r\n },\r\n push(to, data) {\r\n setLocation(to);\r\n },\r\n listen(callback) {\r\n listeners.push(callback);\r\n return () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n },\r\n destroy() {\r\n listeners = [];\r\n queue = [START];\r\n position = 0;\r\n },\r\n go(delta, shouldTrigger = true) {\r\n const from = this.location;\r\n const direction = \r\n // we are considering delta === 0 going forward, but in abstract mode\r\n // using 0 for the delta doesn't make sense like it does in html5 where\r\n // it reloads the page\r\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\r\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\r\n if (shouldTrigger) {\r\n triggerListeners(this.location, from, {\r\n direction,\r\n delta,\r\n });\r\n }\r\n },\r\n };\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => queue[position],\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\r\n * handle any URL is not possible.\r\n *\r\n * @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\r\n * in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\r\n * calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\r\n * after the `#`).\r\n *\r\n * @example\r\n * ```js\r\n * // at https://example.com/folder\r\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\r\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\r\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\r\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\r\n * // you should avoid doing this because it changes the original url and breaks copying urls\r\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\r\n *\r\n * // at file:///usr/etc/folder/index.html\r\n * // for locations with no `host`, the base is ignored\r\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\r\n * ```\r\n */\r\nfunction createWebHashHistory(base) {\r\n // Make sure this implementation is fine in terms of encoding, specially for IE11\r\n // for `file://`, directly use the pathname and ignore the base\r\n // location.pathname contains an initial `/` even at the root: `https://example.com`\r\n base = location.host ? base || location.pathname + location.search : '';\r\n // allow the user to provide a `#` in the middle: `/base/#/app`\r\n if (!base.includes('#'))\r\n base += '#';\r\n if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\r\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\r\n }\r\n return createWebHistory(base);\r\n}\n\nfunction isRouteLocation(route) {\r\n return typeof route === 'string' || (route && typeof route === 'object');\r\n}\r\nfunction isRouteName(name) {\r\n return typeof name === 'string' || typeof name === 'symbol';\r\n}\n\n/**\r\n * Initial route location where the router is. Can be used in navigation guards\r\n * to differentiate the initial navigation.\r\n *\r\n * @example\r\n * ```js\r\n * import { START_LOCATION } from 'vue-router'\r\n *\r\n * router.beforeEach((to, from) => {\r\n * if (from === START_LOCATION) {\r\n * // initial navigation\r\n * }\r\n * })\r\n * ```\r\n */\r\nconst START_LOCATION_NORMALIZED = {\r\n path: '/',\r\n name: undefined,\r\n params: {},\r\n query: {},\r\n hash: '',\r\n fullPath: '/',\r\n matched: [],\r\n meta: {},\r\n redirectedFrom: undefined,\r\n};\n\nconst NavigationFailureSymbol = Symbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : '');\r\n/**\r\n * Enumeration with all possible types for navigation failures. Can be passed to\r\n * {@link isNavigationFailure} to check for specific failures.\r\n */\r\nvar NavigationFailureType;\r\n(function (NavigationFailureType) {\r\n /**\r\n * An aborted navigation is a navigation that failed because a navigation\r\n * guard returned `false` or called `next(false)`\r\n */\r\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\r\n /**\r\n * A cancelled navigation is a navigation that failed because a more recent\r\n * navigation finished started (not necessarily finished).\r\n */\r\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\r\n /**\r\n * A duplicated navigation is a navigation that failed because it was\r\n * initiated while already being at the exact same location.\r\n */\r\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\r\n})(NavigationFailureType || (NavigationFailureType = {}));\r\n// DEV only debug messages\r\nconst ErrorTypeMessages = {\r\n [1 /* ErrorTypes.MATCHER_NOT_FOUND */]({ location, currentLocation }) {\r\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\r\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\r\n : ''}`;\r\n },\r\n [2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\r\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\r\n },\r\n [4 /* ErrorTypes.NAVIGATION_ABORTED */]({ from, to }) {\r\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\r\n },\r\n [8 /* ErrorTypes.NAVIGATION_CANCELLED */]({ from, to }) {\r\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\r\n },\r\n [16 /* ErrorTypes.NAVIGATION_DUPLICATED */]({ from, to }) {\r\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\r\n },\r\n};\r\nfunction createRouterError(type, params) {\r\n // keep full error messages in cjs versions\r\n if ((process.env.NODE_ENV !== 'production') || !true) {\r\n return assign(new Error(ErrorTypeMessages[type](params)), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n else {\r\n return assign(new Error(), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n}\r\nfunction isNavigationFailure(error, type) {\r\n return (error instanceof Error &&\r\n NavigationFailureSymbol in error &&\r\n (type == null || !!(error.type & type)));\r\n}\r\nconst propertiesToLog = ['params', 'query', 'hash'];\r\nfunction stringifyRoute(to) {\r\n if (typeof to === 'string')\r\n return to;\r\n if ('path' in to)\r\n return to.path;\r\n const location = {};\r\n for (const key of propertiesToLog) {\r\n if (key in to)\r\n location[key] = to[key];\r\n }\r\n return JSON.stringify(location, null, 2);\r\n}\n\n// default pattern for a param: non-greedy everything but /\r\nconst BASE_PARAM_PATTERN = '[^/]+?';\r\nconst BASE_PATH_PARSER_OPTIONS = {\r\n sensitive: false,\r\n strict: false,\r\n start: true,\r\n end: true,\r\n};\r\n// Special Regex characters that must be escaped in static tokens\r\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\r\n/**\r\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\r\n *\r\n * @param segments - array of segments returned by tokenizePath\r\n * @param extraOptions - optional options for the regexp\r\n * @returns a PathParser\r\n */\r\nfunction tokensToParser(segments, extraOptions) {\r\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\r\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\r\n const score = [];\r\n // the regexp as a string\r\n let pattern = options.start ? '^' : '';\r\n // extracted keys\r\n const keys = [];\r\n for (const segment of segments) {\r\n // the root segment needs special treatment\r\n const segmentScores = segment.length ? [] : [90 /* PathScore.Root */];\r\n // allow trailing slash\r\n if (options.strict && !segment.length)\r\n pattern += '/';\r\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\r\n const token = segment[tokenIndex];\r\n // resets the score if we are inside a sub-segment /:a-other-:b\r\n let subSegmentScore = 40 /* PathScore.Segment */ +\r\n (options.sensitive ? 0.25 /* PathScore.BonusCaseSensitive */ : 0);\r\n if (token.type === 0 /* TokenType.Static */) {\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n pattern += '/';\r\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\r\n subSegmentScore += 40 /* PathScore.Static */;\r\n }\r\n else if (token.type === 1 /* TokenType.Param */) {\r\n const { value, repeatable, optional, regexp } = token;\r\n keys.push({\r\n name: value,\r\n repeatable,\r\n optional,\r\n });\r\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\r\n // the user provided a custom regexp /:id(\\\\d+)\r\n if (re !== BASE_PARAM_PATTERN) {\r\n subSegmentScore += 10 /* PathScore.BonusCustomRegExp */;\r\n // make sure the regexp is valid before using it\r\n try {\r\n new RegExp(`(${re})`);\r\n }\r\n catch (err) {\r\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\r\n err.message);\r\n }\r\n }\r\n // when we repeat we must take care of the repeating leading slash\r\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n subPattern =\r\n // avoid an optional / if there are more segments e.g. /:p?-static\r\n // or /:p?-:p2\r\n optional && segment.length < 2\r\n ? `(?:/${subPattern})`\r\n : '/' + subPattern;\r\n if (optional)\r\n subPattern += '?';\r\n pattern += subPattern;\r\n subSegmentScore += 20 /* PathScore.Dynamic */;\r\n if (optional)\r\n subSegmentScore += -8 /* PathScore.BonusOptional */;\r\n if (repeatable)\r\n subSegmentScore += -20 /* PathScore.BonusRepeatable */;\r\n if (re === '.*')\r\n subSegmentScore += -50 /* PathScore.BonusWildcard */;\r\n }\r\n segmentScores.push(subSegmentScore);\r\n }\r\n // an empty array like /home/ -> [[{home}], []]\r\n // if (!segment.length) pattern += '/'\r\n score.push(segmentScores);\r\n }\r\n // only apply the strict bonus to the last score\r\n if (options.strict && options.end) {\r\n const i = score.length - 1;\r\n score[i][score[i].length - 1] += 0.7000000000000001 /* PathScore.BonusStrict */;\r\n }\r\n // TODO: dev only warn double trailing slash\r\n if (!options.strict)\r\n pattern += '/?';\r\n if (options.end)\r\n pattern += '$';\r\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\r\n else if (options.strict)\r\n pattern += '(?:/|$)';\r\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\r\n function parse(path) {\r\n const match = path.match(re);\r\n const params = {};\r\n if (!match)\r\n return null;\r\n for (let i = 1; i < match.length; i++) {\r\n const value = match[i] || '';\r\n const key = keys[i - 1];\r\n params[key.name] = value && key.repeatable ? value.split('/') : value;\r\n }\r\n return params;\r\n }\r\n function stringify(params) {\r\n let path = '';\r\n // for optional parameters to allow to be empty\r\n let avoidDuplicatedSlash = false;\r\n for (const segment of segments) {\r\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\r\n path += '/';\r\n avoidDuplicatedSlash = false;\r\n for (const token of segment) {\r\n if (token.type === 0 /* TokenType.Static */) {\r\n path += token.value;\r\n }\r\n else if (token.type === 1 /* TokenType.Param */) {\r\n const { value, repeatable, optional } = token;\r\n const param = value in params ? params[value] : '';\r\n if (isArray(param) && !repeatable) {\r\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\r\n }\r\n const text = isArray(param)\r\n ? param.join('/')\r\n : param;\r\n if (!text) {\r\n if (optional) {\r\n // if we have more than one optional param like /:a?-static we don't need to care about the optional param\r\n if (segment.length < 2) {\r\n // remove the last slash as we could be at the end\r\n if (path.endsWith('/'))\r\n path = path.slice(0, -1);\r\n // do not append a slash on the next iteration\r\n else\r\n avoidDuplicatedSlash = true;\r\n }\r\n }\r\n else\r\n throw new Error(`Missing required param \"${value}\"`);\r\n }\r\n path += text;\r\n }\r\n }\r\n }\r\n // avoid empty path when we have multiple optional params\r\n return path || '/';\r\n }\r\n return {\r\n re,\r\n score,\r\n keys,\r\n parse,\r\n stringify,\r\n };\r\n}\r\n/**\r\n * Compares an array of numbers as used in PathParser.score and returns a\r\n * number. This function can be used to `sort` an array\r\n *\r\n * @param a - first array of numbers\r\n * @param b - second array of numbers\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n * should be sorted first\r\n */\r\nfunction compareScoreArray(a, b) {\r\n let i = 0;\r\n while (i < a.length && i < b.length) {\r\n const diff = b[i] - a[i];\r\n // only keep going if diff === 0\r\n if (diff)\r\n return diff;\r\n i++;\r\n }\r\n // if the last subsegment was Static, the shorter segments should be sorted first\r\n // otherwise sort the longest segment first\r\n if (a.length < b.length) {\r\n return a.length === 1 && a[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\r\n ? -1\r\n : 1;\r\n }\r\n else if (a.length > b.length) {\r\n return b.length === 1 && b[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\r\n ? 1\r\n : -1;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * Compare function that can be used with `sort` to sort an array of PathParser\r\n *\r\n * @param a - first PathParser\r\n * @param b - second PathParser\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n */\r\nfunction comparePathParserScore(a, b) {\r\n let i = 0;\r\n const aScore = a.score;\r\n const bScore = b.score;\r\n while (i < aScore.length && i < bScore.length) {\r\n const comp = compareScoreArray(aScore[i], bScore[i]);\r\n // do not return if both are equal\r\n if (comp)\r\n return comp;\r\n i++;\r\n }\r\n if (Math.abs(bScore.length - aScore.length) === 1) {\r\n if (isLastScoreNegative(aScore))\r\n return 1;\r\n if (isLastScoreNegative(bScore))\r\n return -1;\r\n }\r\n // if a and b share the same score entries but b has more, sort b first\r\n return bScore.length - aScore.length;\r\n // this is the ternary version\r\n // return aScore.length < bScore.length\r\n // ? 1\r\n // : aScore.length > bScore.length\r\n // ? -1\r\n // : 0\r\n}\r\n/**\r\n * This allows detecting splats at the end of a path: /home/:id(.*)*\r\n *\r\n * @param score - score to check\r\n * @returns true if the last entry is negative\r\n */\r\nfunction isLastScoreNegative(score) {\r\n const last = score[score.length - 1];\r\n return score.length > 0 && last[last.length - 1] < 0;\r\n}\n\nconst ROOT_TOKEN = {\r\n type: 0 /* TokenType.Static */,\r\n value: '',\r\n};\r\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\r\n// After some profiling, the cache seems to be unnecessary because tokenizePath\r\n// (the slowest part of adding a route) is very fast\r\n// const tokenCache = new Map()\r\nfunction tokenizePath(path) {\r\n if (!path)\r\n return [[]];\r\n if (path === '/')\r\n return [[ROOT_TOKEN]];\r\n if (!path.startsWith('/')) {\r\n throw new Error((process.env.NODE_ENV !== 'production')\r\n ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\r\n : `Invalid path \"${path}\"`);\r\n }\r\n // if (tokenCache.has(path)) return tokenCache.get(path)!\r\n function crash(message) {\r\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\r\n }\r\n let state = 0 /* TokenizerState.Static */;\r\n let previousState = state;\r\n const tokens = [];\r\n // the segment will always be valid because we get into the initial state\r\n // with the leading /\r\n let segment;\r\n function finalizeSegment() {\r\n if (segment)\r\n tokens.push(segment);\r\n segment = [];\r\n }\r\n // index on the path\r\n let i = 0;\r\n // char at index\r\n let char;\r\n // buffer of the value read\r\n let buffer = '';\r\n // custom regexp for a param\r\n let customRe = '';\r\n function consumeBuffer() {\r\n if (!buffer)\r\n return;\r\n if (state === 0 /* TokenizerState.Static */) {\r\n segment.push({\r\n type: 0 /* TokenType.Static */,\r\n value: buffer,\r\n });\r\n }\r\n else if (state === 1 /* TokenizerState.Param */ ||\r\n state === 2 /* TokenizerState.ParamRegExp */ ||\r\n state === 3 /* TokenizerState.ParamRegExpEnd */) {\r\n if (segment.length > 1 && (char === '*' || char === '+'))\r\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\r\n segment.push({\r\n type: 1 /* TokenType.Param */,\r\n value: buffer,\r\n regexp: customRe,\r\n repeatable: char === '*' || char === '+',\r\n optional: char === '*' || char === '?',\r\n });\r\n }\r\n else {\r\n crash('Invalid state to consume buffer');\r\n }\r\n buffer = '';\r\n }\r\n function addCharToBuffer() {\r\n buffer += char;\r\n }\r\n while (i < path.length) {\r\n char = path[i++];\r\n if (char === '\\\\' && state !== 2 /* TokenizerState.ParamRegExp */) {\r\n previousState = state;\r\n state = 4 /* TokenizerState.EscapeNext */;\r\n continue;\r\n }\r\n switch (state) {\r\n case 0 /* TokenizerState.Static */:\r\n if (char === '/') {\r\n if (buffer) {\r\n consumeBuffer();\r\n }\r\n finalizeSegment();\r\n }\r\n else if (char === ':') {\r\n consumeBuffer();\r\n state = 1 /* TokenizerState.Param */;\r\n }\r\n else {\r\n addCharToBuffer();\r\n }\r\n break;\r\n case 4 /* TokenizerState.EscapeNext */:\r\n addCharToBuffer();\r\n state = previousState;\r\n break;\r\n case 1 /* TokenizerState.Param */:\r\n if (char === '(') {\r\n state = 2 /* TokenizerState.ParamRegExp */;\r\n }\r\n else if (VALID_PARAM_RE.test(char)) {\r\n addCharToBuffer();\r\n }\r\n else {\r\n consumeBuffer();\r\n state = 0 /* TokenizerState.Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n }\r\n break;\r\n case 2 /* TokenizerState.ParamRegExp */:\r\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\r\n // it already works by escaping the closing )\r\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\r\n // is this really something people need since you can also write\r\n // /prefix_:p()_suffix\r\n if (char === ')') {\r\n // handle the escaped )\r\n if (customRe[customRe.length - 1] == '\\\\')\r\n customRe = customRe.slice(0, -1) + char;\r\n else\r\n state = 3 /* TokenizerState.ParamRegExpEnd */;\r\n }\r\n else {\r\n customRe += char;\r\n }\r\n break;\r\n case 3 /* TokenizerState.ParamRegExpEnd */:\r\n // same as finalizing a param\r\n consumeBuffer();\r\n state = 0 /* TokenizerState.Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n customRe = '';\r\n break;\r\n default:\r\n crash('Unknown state');\r\n break;\r\n }\r\n }\r\n if (state === 2 /* TokenizerState.ParamRegExp */)\r\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\r\n consumeBuffer();\r\n finalizeSegment();\r\n // tokenCache.set(path, tokens)\r\n return tokens;\r\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\r\n const parser = tokensToParser(tokenizePath(record.path), options);\r\n // warn against params with the same name\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const existingKeys = new Set();\r\n for (const key of parser.keys) {\r\n if (existingKeys.has(key.name))\r\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\r\n existingKeys.add(key.name);\r\n }\r\n }\r\n const matcher = assign(parser, {\r\n record,\r\n parent,\r\n // these needs to be populated by the parent\r\n children: [],\r\n alias: [],\r\n });\r\n if (parent) {\r\n // both are aliases or both are not aliases\r\n // we don't want to mix them because the order is used when\r\n // passing originalRecord in Matcher.addRoute\r\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\r\n parent.children.push(matcher);\r\n }\r\n return matcher;\r\n}\n\n/**\r\n * Creates a Router Matcher.\r\n *\r\n * @internal\r\n * @param routes - array of initial routes\r\n * @param globalOptions - global route options\r\n */\r\nfunction createRouterMatcher(routes, globalOptions) {\r\n // normalized ordered array of matchers\r\n const matchers = [];\r\n const matcherMap = new Map();\r\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\r\n function getRecordMatcher(name) {\r\n return matcherMap.get(name);\r\n }\r\n function addRoute(record, parent, originalRecord) {\r\n // used later on to remove by name\r\n const isRootAdd = !originalRecord;\r\n const mainNormalizedRecord = normalizeRouteRecord(record);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\r\n }\r\n // we might be the child of an alias\r\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\r\n const options = mergeOptions(globalOptions, record);\r\n // generate an array of records to correctly handle aliases\r\n const normalizedRecords = [\r\n mainNormalizedRecord,\r\n ];\r\n if ('alias' in record) {\r\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\r\n for (const alias of aliases) {\r\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\r\n // this allows us to hold a copy of the `components` option\r\n // so that async components cache is hold on the original record\r\n components: originalRecord\r\n ? originalRecord.record.components\r\n : mainNormalizedRecord.components,\r\n path: alias,\r\n // we might be the child of an alias\r\n aliasOf: originalRecord\r\n ? originalRecord.record\r\n : mainNormalizedRecord,\r\n // the aliases are always of the same kind as the original since they\r\n // are defined on the same record\r\n }));\r\n }\r\n }\r\n let matcher;\r\n let originalMatcher;\r\n for (const normalizedRecord of normalizedRecords) {\r\n const { path } = normalizedRecord;\r\n // Build up the path for nested routes if the child isn't an absolute\r\n // route. Only add the / delimiter if the child path isn't empty and if the\r\n // parent path doesn't have a trailing slash\r\n if (parent && path[0] !== '/') {\r\n const parentPath = parent.record.path;\r\n const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\r\n normalizedRecord.path =\r\n parent.record.path + (path && connectingSlash + path);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\r\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\r\n 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\r\n }\r\n // create the object beforehand, so it can be passed to children\r\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\r\n if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\r\n checkMissingParamsInAbsolutePath(matcher, parent);\r\n // if we are an alias we must tell the original record that we exist,\r\n // so we can be removed\r\n if (originalRecord) {\r\n originalRecord.alias.push(matcher);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkSameParams(originalRecord, matcher);\r\n }\r\n }\r\n else {\r\n // otherwise, the first record is the original and others are aliases\r\n originalMatcher = originalMatcher || matcher;\r\n if (originalMatcher !== matcher)\r\n originalMatcher.alias.push(matcher);\r\n // remove the route if named and only for the top record (avoid in nested calls)\r\n // this works because the original record is the first one\r\n if (isRootAdd && record.name && !isAliasRecord(matcher))\r\n removeRoute(record.name);\r\n }\r\n if (mainNormalizedRecord.children) {\r\n const children = mainNormalizedRecord.children;\r\n for (let i = 0; i < children.length; i++) {\r\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\r\n }\r\n }\r\n // if there was no original record, then the first one was not an alias and all\r\n // other aliases (if any) need to reference this record when adding children\r\n originalRecord = originalRecord || matcher;\r\n // TODO: add normalized records for more flexibility\r\n // if (parent && isAliasRecord(originalRecord)) {\r\n // parent.children.push(originalRecord)\r\n // }\r\n // Avoid adding a record that doesn't display anything. This allows passing through records without a component to\r\n // not be reached and pass through the catch all route\r\n if ((matcher.record.components &&\r\n Object.keys(matcher.record.components).length) ||\r\n matcher.record.name ||\r\n matcher.record.redirect) {\r\n insertMatcher(matcher);\r\n }\r\n }\r\n return originalMatcher\r\n ? () => {\r\n // since other matchers are aliases, they should be removed by the original matcher\r\n removeRoute(originalMatcher);\r\n }\r\n : noop;\r\n }\r\n function removeRoute(matcherRef) {\r\n if (isRouteName(matcherRef)) {\r\n const matcher = matcherMap.get(matcherRef);\r\n if (matcher) {\r\n matcherMap.delete(matcherRef);\r\n matchers.splice(matchers.indexOf(matcher), 1);\r\n matcher.children.forEach(removeRoute);\r\n matcher.alias.forEach(removeRoute);\r\n }\r\n }\r\n else {\r\n const index = matchers.indexOf(matcherRef);\r\n if (index > -1) {\r\n matchers.splice(index, 1);\r\n if (matcherRef.record.name)\r\n matcherMap.delete(matcherRef.record.name);\r\n matcherRef.children.forEach(removeRoute);\r\n matcherRef.alias.forEach(removeRoute);\r\n }\r\n }\r\n }\r\n function getRoutes() {\r\n return matchers;\r\n }\r\n function insertMatcher(matcher) {\r\n let i = 0;\r\n while (i < matchers.length &&\r\n comparePathParserScore(matcher, matchers[i]) >= 0 &&\r\n // Adding children with empty path should still appear before the parent\r\n // https://github.com/vuejs/router/issues/1124\r\n (matcher.record.path !== matchers[i].record.path ||\r\n !isRecordChildOf(matcher, matchers[i])))\r\n i++;\r\n matchers.splice(i, 0, matcher);\r\n // only add the original record to the name map\r\n if (matcher.record.name && !isAliasRecord(matcher))\r\n matcherMap.set(matcher.record.name, matcher);\r\n }\r\n function resolve(location, currentLocation) {\r\n let matcher;\r\n let params = {};\r\n let path;\r\n let name;\r\n if ('name' in location && location.name) {\r\n matcher = matcherMap.get(location.name);\r\n if (!matcher)\r\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\r\n location,\r\n });\r\n // warn if the user is passing invalid params so they can debug it better when they get removed\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const invalidParams = Object.keys(location.params || {}).filter(paramName => !matcher.keys.find(k => k.name === paramName));\r\n if (invalidParams.length) {\r\n warn(`Discarded invalid param(s) \"${invalidParams.join('\", \"')}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\r\n }\r\n }\r\n name = matcher.record.name;\r\n params = assign(\r\n // paramsFromLocation is a new object\r\n paramsFromLocation(currentLocation.params, \r\n // only keep params that exist in the resolved location\r\n // TODO: only keep optional params coming from a parent record\r\n matcher.keys.filter(k => !k.optional).map(k => k.name)), \r\n // discard any existing params in the current location that do not exist here\r\n // #1497 this ensures better active/exact matching\r\n location.params &&\r\n paramsFromLocation(location.params, matcher.keys.map(k => k.name)));\r\n // throws if cannot be stringified\r\n path = matcher.stringify(params);\r\n }\r\n else if ('path' in location) {\r\n // no need to resolve the path with the matcher as it was provided\r\n // this also allows the user to control the encoding\r\n path = location.path;\r\n if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\r\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/router.`);\r\n }\r\n matcher = matchers.find(m => m.re.test(path));\r\n // matcher should have a value after the loop\r\n if (matcher) {\r\n // we know the matcher works because we tested the regexp\r\n params = matcher.parse(path);\r\n name = matcher.record.name;\r\n }\r\n // location is a relative path\r\n }\r\n else {\r\n // match by name or path of current route\r\n matcher = currentLocation.name\r\n ? matcherMap.get(currentLocation.name)\r\n : matchers.find(m => m.re.test(currentLocation.path));\r\n if (!matcher)\r\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\r\n location,\r\n currentLocation,\r\n });\r\n name = matcher.record.name;\r\n // since we are navigating to the same location, we don't need to pick the\r\n // params like when `name` is provided\r\n params = assign({}, currentLocation.params, location.params);\r\n path = matcher.stringify(params);\r\n }\r\n const matched = [];\r\n let parentMatcher = matcher;\r\n while (parentMatcher) {\r\n // reversed order so parents are at the beginning\r\n matched.unshift(parentMatcher.record);\r\n parentMatcher = parentMatcher.parent;\r\n }\r\n return {\r\n name,\r\n path,\r\n params,\r\n matched,\r\n meta: mergeMetaFields(matched),\r\n };\r\n }\r\n // add initial routes\r\n routes.forEach(route => addRoute(route));\r\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\r\n}\r\nfunction paramsFromLocation(params, keys) {\r\n const newParams = {};\r\n for (const key of keys) {\r\n if (key in params)\r\n newParams[key] = params[key];\r\n }\r\n return newParams;\r\n}\r\n/**\r\n * Normalizes a RouteRecordRaw. Creates a copy\r\n *\r\n * @param record\r\n * @returns the normalized version\r\n */\r\nfunction normalizeRouteRecord(record) {\r\n return {\r\n path: record.path,\r\n redirect: record.redirect,\r\n name: record.name,\r\n meta: record.meta || {},\r\n aliasOf: undefined,\r\n beforeEnter: record.beforeEnter,\r\n props: normalizeRecordProps(record),\r\n children: record.children || [],\r\n instances: {},\r\n leaveGuards: new Set(),\r\n updateGuards: new Set(),\r\n enterCallbacks: {},\r\n components: 'components' in record\r\n ? record.components || null\r\n : record.component && { default: record.component },\r\n };\r\n}\r\n/**\r\n * Normalize the optional `props` in a record to always be an object similar to\r\n * components. Also accept a boolean for components.\r\n * @param record\r\n */\r\nfunction normalizeRecordProps(record) {\r\n const propsObject = {};\r\n // props does not exist on redirect records, but we can set false directly\r\n const props = record.props || false;\r\n if ('component' in record) {\r\n propsObject.default = props;\r\n }\r\n else {\r\n // NOTE: we could also allow a function to be applied to every component.\r\n // Would need user feedback for use cases\r\n for (const name in record.components)\r\n propsObject[name] = typeof props === 'boolean' ? props : props[name];\r\n }\r\n return propsObject;\r\n}\r\n/**\r\n * Checks if a record or any of its parent is an alias\r\n * @param record\r\n */\r\nfunction isAliasRecord(record) {\r\n while (record) {\r\n if (record.record.aliasOf)\r\n return true;\r\n record = record.parent;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Merge meta fields of an array of records\r\n *\r\n * @param matched - array of matched records\r\n */\r\nfunction mergeMetaFields(matched) {\r\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\r\n}\r\nfunction mergeOptions(defaults, partialOptions) {\r\n const options = {};\r\n for (const key in defaults) {\r\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\r\n }\r\n return options;\r\n}\r\nfunction isSameParam(a, b) {\r\n return (a.name === b.name &&\r\n a.optional === b.optional &&\r\n a.repeatable === b.repeatable);\r\n}\r\n/**\r\n * Check if a path and its alias have the same required params\r\n *\r\n * @param a - original record\r\n * @param b - alias record\r\n */\r\nfunction checkSameParams(a, b) {\r\n for (const key of a.keys) {\r\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\r\n }\r\n for (const key of b.keys) {\r\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\r\n }\r\n}\r\n/**\r\n * A route with a name and a child with an empty path without a name should warn when adding the route\r\n *\r\n * @param mainNormalizedRecord - RouteRecordNormalized\r\n * @param parent - RouteRecordMatcher\r\n */\r\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\r\n if (parent &&\r\n parent.record.name &&\r\n !mainNormalizedRecord.name &&\r\n !mainNormalizedRecord.path) {\r\n warn(`The route named \"${String(parent.record.name)}\" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`);\r\n }\r\n}\r\nfunction checkMissingParamsInAbsolutePath(record, parent) {\r\n for (const key of parent.keys) {\r\n if (!record.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\r\n }\r\n}\r\nfunction isRecordChildOf(record, parent) {\r\n return parent.children.some(child => child === record || isRecordChildOf(record, child));\r\n}\n\n/**\r\n * Encoding Rules ␣ = Space Path: ␣ \" < > # ? { } Query: ␣ \" < > # & = Hash: ␣ \"\r\n * < > `\r\n *\r\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\r\n * defines some extra characters to be encoded. Most browsers do not encode them\r\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\r\n * also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\r\n * plus `-._~`. This extra safety should be applied to query by patching the\r\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\r\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\r\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\r\n * encoded everywhere because some browsers like FF encode it when directly\r\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\r\n */\r\n// const EXTRA_RESERVED_RE = /[!'()*]/g\r\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\r\nconst HASH_RE = /#/g; // %23\r\nconst AMPERSAND_RE = /&/g; // %26\r\nconst SLASH_RE = /\\//g; // %2F\r\nconst EQUAL_RE = /=/g; // %3D\r\nconst IM_RE = /\\?/g; // %3F\r\nconst PLUS_RE = /\\+/g; // %2B\r\n/**\r\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\r\n * seems to be less flexible than not doing so and I can't find out the legacy\r\n * systems requiring this for regular requests like text/html. In the standard,\r\n * the encoding of the plus character is only mentioned for\r\n * application/x-www-form-urlencoded\r\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\r\n * leave the plus character as is in queries. To be more flexible, we allow the\r\n * plus character on the query, but it can also be manually encoded by the user.\r\n *\r\n * Resources:\r\n * - https://url.spec.whatwg.org/#urlencoded-parsing\r\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\r\n */\r\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\r\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\r\nconst ENC_CARET_RE = /%5E/g; // ^\r\nconst ENC_BACKTICK_RE = /%60/g; // `\r\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\r\nconst ENC_PIPE_RE = /%7C/g; // |\r\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\r\nconst ENC_SPACE_RE = /%20/g; // }\r\n/**\r\n * Encode characters that need to be encoded on the path, search and hash\r\n * sections of the URL.\r\n *\r\n * @internal\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction commonEncode(text) {\r\n return encodeURI('' + text)\r\n .replace(ENC_PIPE_RE, '|')\r\n .replace(ENC_BRACKET_OPEN_RE, '[')\r\n .replace(ENC_BRACKET_CLOSE_RE, ']');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the hash section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeHash(text) {\r\n return commonEncode(text)\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^');\r\n}\r\n/**\r\n * Encode characters that need to be encoded query values on the query\r\n * section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeQueryValue(text) {\r\n return (commonEncode(text)\r\n // Encode the space as +, encode the + to differentiate it from the space\r\n .replace(PLUS_RE, '%2B')\r\n .replace(ENC_SPACE_RE, '+')\r\n .replace(HASH_RE, '%23')\r\n .replace(AMPERSAND_RE, '%26')\r\n .replace(ENC_BACKTICK_RE, '`')\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^'));\r\n}\r\n/**\r\n * Like `encodeQueryValue` but also encodes the `=` character.\r\n *\r\n * @param text - string to encode\r\n */\r\nfunction encodeQueryKey(text) {\r\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodePath(text) {\r\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL as a\r\n * param. This function encodes everything {@link encodePath} does plus the\r\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\r\n * string instead.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeParam(text) {\r\n return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\r\n}\r\n/**\r\n * Decode text using `decodeURIComponent`. Returns the original text if it\r\n * fails.\r\n *\r\n * @param text - string to decode\r\n * @returns decoded string\r\n */\r\nfunction decode(text) {\r\n try {\r\n return decodeURIComponent('' + text);\r\n }\r\n catch (err) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\r\n }\r\n return '' + text;\r\n}\n\n/**\r\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\r\n * version with the leading `?` and without Should work as URLSearchParams\r\n\n * @internal\r\n *\r\n * @param search - search string to parse\r\n * @returns a query object\r\n */\r\nfunction parseQuery(search) {\r\n const query = {};\r\n // avoid creating an object with an empty key and empty value\r\n // because of split('&')\r\n if (search === '' || search === '?')\r\n return query;\r\n const hasLeadingIM = search[0] === '?';\r\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\r\n for (let i = 0; i < searchParams.length; ++i) {\r\n // pre decode the + into space\r\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\r\n // allow the = character\r\n const eqPos = searchParam.indexOf('=');\r\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\r\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\r\n if (key in query) {\r\n // an extra variable for ts types\r\n let currentValue = query[key];\r\n if (!isArray(currentValue)) {\r\n currentValue = query[key] = [currentValue];\r\n }\r\n currentValue.push(value);\r\n }\r\n else {\r\n query[key] = value;\r\n }\r\n }\r\n return query;\r\n}\r\n/**\r\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\r\n * doesn't prepend a `?`\r\n *\r\n * @internal\r\n *\r\n * @param query - query object to stringify\r\n * @returns string version of the query without the leading `?`\r\n */\r\nfunction stringifyQuery(query) {\r\n let search = '';\r\n for (let key in query) {\r\n const value = query[key];\r\n key = encodeQueryKey(key);\r\n if (value == null) {\r\n // only null adds the value\r\n if (value !== undefined) {\r\n search += (search.length ? '&' : '') + key;\r\n }\r\n continue;\r\n }\r\n // keep null values\r\n const values = isArray(value)\r\n ? value.map(v => v && encodeQueryValue(v))\r\n : [value && encodeQueryValue(value)];\r\n values.forEach(value => {\r\n // skip undefined values in arrays as if they were not present\r\n // smaller code than using filter\r\n if (value !== undefined) {\r\n // only append & with non-empty search\r\n search += (search.length ? '&' : '') + key;\r\n if (value != null)\r\n search += '=' + value;\r\n }\r\n });\r\n }\r\n return search;\r\n}\r\n/**\r\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\r\n * numbers into strings, removing keys with an undefined value and replacing\r\n * undefined with null in arrays\r\n *\r\n * @param query - query object to normalize\r\n * @returns a normalized query object\r\n */\r\nfunction normalizeQuery(query) {\r\n const normalizedQuery = {};\r\n for (const key in query) {\r\n const value = query[key];\r\n if (value !== undefined) {\r\n normalizedQuery[key] = isArray(value)\r\n ? value.map(v => (v == null ? null : '' + v))\r\n : value == null\r\n ? value\r\n : '' + value;\r\n }\r\n }\r\n return normalizedQuery;\r\n}\n\n/**\r\n * RouteRecord being rendered by the closest ancestor Router View. Used for\r\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\r\n * Location Matched\r\n *\r\n * @internal\r\n */\r\nconst matchedRouteKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : '');\r\n/**\r\n * Allows overriding the router view depth to control which component in\r\n * `matched` is rendered. rvd stands for Router View Depth\r\n *\r\n * @internal\r\n */\r\nconst viewDepthKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : '');\r\n/**\r\n * Allows overriding the router instance returned by `useRouter` in tests. r\r\n * stands for router\r\n *\r\n * @internal\r\n */\r\nconst routerKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router' : '');\r\n/**\r\n * Allows overriding the current route returned by `useRoute` in tests. rl\r\n * stands for route location\r\n *\r\n * @internal\r\n */\r\nconst routeLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'route location' : '');\r\n/**\r\n * Allows overriding the current route used by router-view. Internally this is\r\n * used when the `route` prop is passed.\r\n *\r\n * @internal\r\n */\r\nconst routerViewLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location' : '');\n\n/**\r\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\r\n */\r\nfunction useCallbacks() {\r\n let handlers = [];\r\n function add(handler) {\r\n handlers.push(handler);\r\n return () => {\r\n const i = handlers.indexOf(handler);\r\n if (i > -1)\r\n handlers.splice(i, 1);\r\n };\r\n }\r\n function reset() {\r\n handlers = [];\r\n }\r\n return {\r\n add,\r\n list: () => handlers,\r\n reset,\r\n };\r\n}\n\nfunction registerGuard(record, name, guard) {\r\n const removeFromList = () => {\r\n record[name].delete(guard);\r\n };\r\n onUnmounted(removeFromList);\r\n onDeactivated(removeFromList);\r\n onActivated(() => {\r\n record[name].add(guard);\r\n });\r\n record[name].add(guard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the component for the current\r\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\r\n * used in any component. The guard is removed when the component is unmounted.\r\n *\r\n * @param leaveGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteLeave(leaveGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the current location is about\r\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\r\n * component. The guard is removed when the component is unmounted.\r\n *\r\n * @param updateGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteUpdate(updateGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'updateGuards', updateGuard);\r\n}\r\nfunction guardToPromiseFn(guard, to, from, record, name) {\r\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\r\n const enterCallbackArray = record &&\r\n // name is defined if record is because of the function overload\r\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\r\n return () => new Promise((resolve, reject) => {\r\n const next = (valid) => {\r\n if (valid === false) {\r\n reject(createRouterError(4 /* ErrorTypes.NAVIGATION_ABORTED */, {\r\n from,\r\n to,\r\n }));\r\n }\r\n else if (valid instanceof Error) {\r\n reject(valid);\r\n }\r\n else if (isRouteLocation(valid)) {\r\n reject(createRouterError(2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */, {\r\n from: to,\r\n to: valid,\r\n }));\r\n }\r\n else {\r\n if (enterCallbackArray &&\r\n // since enterCallbackArray is truthy, both record and name also are\r\n record.enterCallbacks[name] === enterCallbackArray &&\r\n typeof valid === 'function') {\r\n enterCallbackArray.push(valid);\r\n }\r\n resolve();\r\n }\r\n };\r\n // wrapping with Promise.resolve allows it to work with both async and sync guards\r\n const guardReturn = guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next);\r\n let guardCall = Promise.resolve(guardReturn);\r\n if (guard.length < 3)\r\n guardCall = guardCall.then(next);\r\n if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\r\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\r\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\r\n guardCall = guardCall.then(resolvedValue => {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n return Promise.reject(new Error('Invalid navigation guard'));\r\n }\r\n return resolvedValue;\r\n });\r\n }\r\n else if (guardReturn !== undefined) {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n reject(new Error('Invalid navigation guard'));\r\n return;\r\n }\r\n }\r\n }\r\n guardCall.catch(err => reject(err));\r\n });\r\n}\r\nfunction canOnlyBeCalledOnce(next, to, from) {\r\n let called = 0;\r\n return function () {\r\n if (called++ === 1)\r\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\r\n // @ts-expect-error: we put it in the original one because it's easier to check\r\n next._called = true;\r\n if (called === 1)\r\n next.apply(null, arguments);\r\n };\r\n}\r\nfunction extractComponentsGuards(matched, guardType, to, from) {\r\n const guards = [];\r\n for (const record of matched) {\r\n if ((process.env.NODE_ENV !== 'production') && !record.components && !record.children.length) {\r\n warn(`Record with path \"${record.path}\" is either missing a \"component(s)\"` +\r\n ` or \"children\" property.`);\r\n }\r\n for (const name in record.components) {\r\n let rawComponent = record.components[name];\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!rawComponent ||\r\n (typeof rawComponent !== 'object' &&\r\n typeof rawComponent !== 'function')) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\r\n ` a valid component. Received \"${String(rawComponent)}\".`);\r\n // throw to ensure we stop here but warn to ensure the message isn't\r\n // missed by the user\r\n throw new Error('Invalid route component');\r\n }\r\n else if ('then' in rawComponent) {\r\n // warn if user wrote import('/component.vue') instead of () =>\r\n // import('./component.vue')\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\r\n `Promise instead of a function that returns a Promise. Did you ` +\r\n `write \"import('./MyPage.vue')\" instead of ` +\r\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\r\n `production if not fixed.`);\r\n const promise = rawComponent;\r\n rawComponent = () => promise;\r\n }\r\n else if (rawComponent.__asyncLoader &&\r\n // warn only once per component\r\n !rawComponent.__warnedDefineAsync) {\r\n rawComponent.__warnedDefineAsync = true;\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\r\n `using \"defineAsyncComponent()\". ` +\r\n `Write \"() => import('./MyPage.vue')\" instead of ` +\r\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\r\n }\r\n }\r\n // skip update and leave guards if the route component is not mounted\r\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\r\n continue;\r\n if (isRouteComponent(rawComponent)) {\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = rawComponent.__vccOpts || rawComponent;\r\n const guard = options[guardType];\r\n guard && guards.push(guardToPromiseFn(guard, to, from, record, name));\r\n }\r\n else {\r\n // start requesting the chunk already\r\n let componentPromise = rawComponent();\r\n if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\r\n componentPromise = Promise.resolve(componentPromise);\r\n }\r\n guards.push(() => componentPromise.then(resolved => {\r\n if (!resolved)\r\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\r\n const resolvedComponent = isESModule(resolved)\r\n ? resolved.default\r\n : resolved;\r\n // replace the function with the resolved component\r\n // cannot be null or undefined because we went into the for loop\r\n record.components[name] = resolvedComponent;\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = resolvedComponent.__vccOpts || resolvedComponent;\r\n const guard = options[guardType];\r\n return guard && guardToPromiseFn(guard, to, from, record, name)();\r\n }));\r\n }\r\n }\r\n }\r\n return guards;\r\n}\r\n/**\r\n * Allows differentiating lazy components from functional components and vue-class-component\r\n * @internal\r\n *\r\n * @param component\r\n */\r\nfunction isRouteComponent(component) {\r\n return (typeof component === 'object' ||\r\n 'displayName' in component ||\r\n 'props' in component ||\r\n '__vccOpts' in component);\r\n}\r\n/**\r\n * Ensures a route is loaded, so it can be passed as o prop to ``.\r\n *\r\n * @param route - resolved route to load\r\n */\r\nfunction loadRouteLocation(route) {\r\n return route.matched.every(record => record.redirect)\r\n ? Promise.reject(new Error('Cannot load a route that redirects.'))\r\n : Promise.all(route.matched.map(record => record.components &&\r\n Promise.all(Object.keys(record.components).reduce((promises, name) => {\r\n const rawComponent = record.components[name];\r\n if (typeof rawComponent === 'function' &&\r\n !('displayName' in rawComponent)) {\r\n promises.push(rawComponent().then(resolved => {\r\n if (!resolved)\r\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\r\n const resolvedComponent = isESModule(resolved)\r\n ? resolved.default\r\n : resolved;\r\n // replace the function with the resolved component\r\n // cannot be null or undefined because we went into the for loop\r\n record.components[name] = resolvedComponent;\r\n return;\r\n }));\r\n }\r\n return promises;\r\n }, [])))).then(() => route);\r\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\r\n// `isExactActive` behavior should go through an RFC\r\nfunction useLink(props) {\r\n const router = inject(routerKey);\r\n const currentRoute = inject(routeLocationKey);\r\n const route = computed(() => router.resolve(unref(props.to)));\r\n const activeRecordIndex = computed(() => {\r\n const { matched } = route.value;\r\n const { length } = matched;\r\n const routeMatched = matched[length - 1];\r\n const currentMatched = currentRoute.matched;\r\n if (!routeMatched || !currentMatched.length)\r\n return -1;\r\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\r\n if (index > -1)\r\n return index;\r\n // possible parent record\r\n const parentRecordPath = getOriginalPath(matched[length - 2]);\r\n return (\r\n // we are dealing with nested routes\r\n length > 1 &&\r\n // if the parent and matched route have the same path, this link is\r\n // referring to the empty child. Or we currently are on a different\r\n // child of the same parent\r\n getOriginalPath(routeMatched) === parentRecordPath &&\r\n // avoid comparing the child with its parent\r\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\r\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\r\n : index);\r\n });\r\n const isActive = computed(() => activeRecordIndex.value > -1 &&\r\n includesParams(currentRoute.params, route.value.params));\r\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\r\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\r\n isSameRouteLocationParams(currentRoute.params, route.value.params));\r\n function navigate(e = {}) {\r\n if (guardEvent(e)) {\r\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\r\n // avoid uncaught errors are they are logged anyway\r\n ).catch(noop);\r\n }\r\n return Promise.resolve();\r\n }\r\n // devtools only\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n const instance = getCurrentInstance();\r\n if (instance) {\r\n const linkContextDevtools = {\r\n route: route.value,\r\n isActive: isActive.value,\r\n isExactActive: isExactActive.value,\r\n };\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools = instance.__vrl_devtools || [];\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools.push(linkContextDevtools);\r\n watchEffect(() => {\r\n linkContextDevtools.route = route.value;\r\n linkContextDevtools.isActive = isActive.value;\r\n linkContextDevtools.isExactActive = isExactActive.value;\r\n }, { flush: 'post' });\r\n }\r\n }\r\n /**\r\n * NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\r\n */\r\n return {\r\n route,\r\n href: computed(() => route.value.href),\r\n isActive,\r\n isExactActive,\r\n navigate,\r\n };\r\n}\r\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterLink',\r\n compatConfig: { MODE: 3 },\r\n props: {\r\n to: {\r\n type: [String, Object],\r\n required: true,\r\n },\r\n replace: Boolean,\r\n activeClass: String,\r\n // inactiveClass: String,\r\n exactActiveClass: String,\r\n custom: Boolean,\r\n ariaCurrentValue: {\r\n type: String,\r\n default: 'page',\r\n },\r\n },\r\n useLink,\r\n setup(props, { slots }) {\r\n const link = reactive(useLink(props));\r\n const { options } = inject(routerKey);\r\n const elClass = computed(() => ({\r\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\r\n // [getLinkClass(\r\n // props.inactiveClass,\r\n // options.linkInactiveClass,\r\n // 'router-link-inactive'\r\n // )]: !link.isExactActive,\r\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\r\n }));\r\n return () => {\r\n const children = slots.default && slots.default(link);\r\n return props.custom\r\n ? children\r\n : h('a', {\r\n 'aria-current': link.isExactActive\r\n ? props.ariaCurrentValue\r\n : null,\r\n href: link.href,\r\n // this would override user added attrs but Vue will still add\r\n // the listener, so we end up triggering both\r\n onClick: link.navigate,\r\n class: elClass.value,\r\n }, children);\r\n };\r\n },\r\n});\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to render a link that triggers a navigation on click.\r\n */\r\nconst RouterLink = RouterLinkImpl;\r\nfunction guardEvent(e) {\r\n // don't redirect with control keys\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\r\n return;\r\n // don't redirect when preventDefault called\r\n if (e.defaultPrevented)\r\n return;\r\n // don't redirect on right click\r\n if (e.button !== undefined && e.button !== 0)\r\n return;\r\n // don't redirect if `target=\"_blank\"`\r\n // @ts-expect-error getAttribute does exist\r\n if (e.currentTarget && e.currentTarget.getAttribute) {\r\n // @ts-expect-error getAttribute exists\r\n const target = e.currentTarget.getAttribute('target');\r\n if (/\\b_blank\\b/i.test(target))\r\n return;\r\n }\r\n // this may be a Weex event which doesn't have this method\r\n if (e.preventDefault)\r\n e.preventDefault();\r\n return true;\r\n}\r\nfunction includesParams(outer, inner) {\r\n for (const key in inner) {\r\n const innerValue = inner[key];\r\n const outerValue = outer[key];\r\n if (typeof innerValue === 'string') {\r\n if (innerValue !== outerValue)\r\n return false;\r\n }\r\n else {\r\n if (!isArray(outerValue) ||\r\n outerValue.length !== innerValue.length ||\r\n innerValue.some((value, i) => value !== outerValue[i]))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Get the original path value of a record by following its aliasOf\r\n * @param record\r\n */\r\nfunction getOriginalPath(record) {\r\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\r\n}\r\n/**\r\n * Utility class to get the active class based on defaults.\r\n * @param propClass\r\n * @param globalClass\r\n * @param defaultClass\r\n */\r\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\r\n ? propClass\r\n : globalClass != null\r\n ? globalClass\r\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterView',\r\n // #674 we manually inherit them\r\n inheritAttrs: false,\r\n props: {\r\n name: {\r\n type: String,\r\n default: 'default',\r\n },\r\n route: Object,\r\n },\r\n // Better compat for @vue/compat users\r\n // https://github.com/vuejs/router/issues/1315\r\n compatConfig: { MODE: 3 },\r\n setup(props, { attrs, slots }) {\r\n (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\r\n const injectedRoute = inject(routerViewLocationKey);\r\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\r\n const injectedDepth = inject(viewDepthKey, 0);\r\n // The depth changes based on empty components option, which allows passthrough routes e.g. routes with children\r\n // that are used to reuse the `path` property\r\n const depth = computed(() => {\r\n let initialDepth = unref(injectedDepth);\r\n const { matched } = routeToDisplay.value;\r\n let matchedRoute;\r\n while ((matchedRoute = matched[initialDepth]) &&\r\n !matchedRoute.components) {\r\n initialDepth++;\r\n }\r\n return initialDepth;\r\n });\r\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\r\n provide(viewDepthKey, computed(() => depth.value + 1));\r\n provide(matchedRouteKey, matchedRouteRef);\r\n provide(routerViewLocationKey, routeToDisplay);\r\n const viewRef = ref();\r\n // watch at the same time the component instance, the route record we are\r\n // rendering, and the name\r\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\r\n // copy reused instances\r\n if (to) {\r\n // this will update the instance for new instances as well as reused\r\n // instances when navigating to a new route\r\n to.instances[name] = instance;\r\n // the component instance is reused for a different route or name, so\r\n // we copy any saved update or leave guards. With async setup, the\r\n // mounting component will mount before the matchedRoute changes,\r\n // making instance === oldInstance, so we check if guards have been\r\n // added before. This works because we remove guards when\r\n // unmounting/deactivating components\r\n if (from && from !== to && instance && instance === oldInstance) {\r\n if (!to.leaveGuards.size) {\r\n to.leaveGuards = from.leaveGuards;\r\n }\r\n if (!to.updateGuards.size) {\r\n to.updateGuards = from.updateGuards;\r\n }\r\n }\r\n }\r\n // trigger beforeRouteEnter next callbacks\r\n if (instance &&\r\n to &&\r\n // if there is no instance but to and from are the same this might be\r\n // the first visit\r\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\r\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\r\n }\r\n }, { flush: 'post' });\r\n return () => {\r\n const route = routeToDisplay.value;\r\n // we need the value at the time we render because when we unmount, we\r\n // navigated to a different location so the value is different\r\n const currentName = props.name;\r\n const matchedRoute = matchedRouteRef.value;\r\n const ViewComponent = matchedRoute && matchedRoute.components[currentName];\r\n if (!ViewComponent) {\r\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\r\n }\r\n // props from route configuration\r\n const routePropsOption = matchedRoute.props[currentName];\r\n const routeProps = routePropsOption\r\n ? routePropsOption === true\r\n ? route.params\r\n : typeof routePropsOption === 'function'\r\n ? routePropsOption(route)\r\n : routePropsOption\r\n : null;\r\n const onVnodeUnmounted = vnode => {\r\n // remove the instance reference to prevent leak\r\n if (vnode.component.isUnmounted) {\r\n matchedRoute.instances[currentName] = null;\r\n }\r\n };\r\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\r\n onVnodeUnmounted,\r\n ref: viewRef,\r\n }));\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n isBrowser &&\r\n component.ref) {\r\n // TODO: can display if it's an alias, its props\r\n const info = {\r\n depth: depth.value,\r\n name: matchedRoute.name,\r\n path: matchedRoute.path,\r\n meta: matchedRoute.meta,\r\n };\r\n const internalInstances = isArray(component.ref)\r\n ? component.ref.map(r => r.i)\r\n : [component.ref.i];\r\n internalInstances.forEach(instance => {\r\n // @ts-expect-error\r\n instance.__vrv_devtools = info;\r\n });\r\n }\r\n return (\r\n // pass the vnode to the slot as a prop.\r\n // h and both accept vnodes\r\n normalizeSlot(slots.default, { Component: component, route }) ||\r\n component);\r\n };\r\n },\r\n});\r\nfunction normalizeSlot(slot, data) {\r\n if (!slot)\r\n return null;\r\n const slotContent = slot(data);\r\n return slotContent.length === 1 ? slotContent[0] : slotContent;\r\n}\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to display the current route the user is at.\r\n */\r\nconst RouterView = RouterViewImpl;\r\n// warn against deprecated usage with & \r\n// due to functional component being no longer eager in Vue 3\r\nfunction warnDeprecatedUsage() {\r\n const instance = getCurrentInstance();\r\n const parentName = instance.parent && instance.parent.type.name;\r\n const parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\r\n if (parentName &&\r\n (parentName === 'KeepAlive' || parentName.includes('Transition')) &&\r\n typeof parentSubTreeType === 'object' &&\r\n parentSubTreeType.name === 'RouterView') {\r\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\r\n warn(` can no longer be used directly inside or .\\n` +\r\n `Use slot props instead:\\n\\n` +\r\n `\\n` +\r\n ` <${comp}>\\n` +\r\n ` \\n` +\r\n ` \\n` +\r\n ``);\r\n }\r\n}\n\n/**\r\n * Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\r\n *\r\n * @param routeLocation - routeLocation to format\r\n * @param tooltip - optional tooltip\r\n * @returns a copy of the routeLocation\r\n */\r\nfunction formatRouteLocation(routeLocation, tooltip) {\r\n const copy = assign({}, routeLocation, {\r\n // remove variables that can contain vue instances\r\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\r\n });\r\n return {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: routeLocation.fullPath,\r\n tooltip,\r\n value: copy,\r\n },\r\n };\r\n}\r\nfunction formatDisplay(display) {\r\n return {\r\n _custom: {\r\n display,\r\n },\r\n };\r\n}\r\n// to support multiple router instances\r\nlet routerId = 0;\r\nfunction addDevtools(app, router, matcher) {\r\n // Take over router.beforeEach and afterEach\r\n // make sure we are not registering the devtool twice\r\n if (router.__hasDevtools)\r\n return;\r\n router.__hasDevtools = true;\r\n // increment to support multiple router instances\r\n const id = routerId++;\r\n setupDevtoolsPlugin({\r\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\r\n label: 'Vue Router',\r\n packageName: 'vue-router',\r\n homepage: 'https://router.vuejs.org',\r\n logo: 'https://router.vuejs.org/logo.png',\r\n componentStateTypes: ['Routing'],\r\n app,\r\n }, api => {\r\n if (typeof api.now !== 'function') {\r\n console.warn('[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\r\n }\r\n // display state added by the router\r\n api.on.inspectComponent((payload, ctx) => {\r\n if (payload.instanceData) {\r\n payload.instanceData.state.push({\r\n type: 'Routing',\r\n key: '$route',\r\n editable: false,\r\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\r\n });\r\n }\r\n });\r\n // mark router-link as active and display tags on router views\r\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\r\n if (componentInstance.__vrv_devtools) {\r\n const info = componentInstance.__vrv_devtools;\r\n node.tags.push({\r\n label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\r\n textColor: 0,\r\n tooltip: 'This component is rendered by <router-view>',\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n // if multiple useLink are used\r\n if (isArray(componentInstance.__vrl_devtools)) {\r\n componentInstance.__devtoolsApi = api;\r\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\r\n let backgroundColor = ORANGE_400;\r\n let tooltip = '';\r\n if (devtoolsData.isExactActive) {\r\n backgroundColor = LIME_500;\r\n tooltip = 'This is exactly active';\r\n }\r\n else if (devtoolsData.isActive) {\r\n backgroundColor = BLUE_600;\r\n tooltip = 'This link is active';\r\n }\r\n node.tags.push({\r\n label: devtoolsData.route.path,\r\n textColor: 0,\r\n tooltip,\r\n backgroundColor,\r\n });\r\n });\r\n }\r\n });\r\n watch(router.currentRoute, () => {\r\n // refresh active state\r\n refreshRoutesView();\r\n api.notifyComponentUpdate();\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n const navigationsLayerId = 'router:navigations:' + id;\r\n api.addTimelineLayer({\r\n id: navigationsLayerId,\r\n label: `Router${id ? ' ' + id : ''} Navigations`,\r\n color: 0x40a8c4,\r\n });\r\n // const errorsLayerId = 'router:errors'\r\n // api.addTimelineLayer({\r\n // id: errorsLayerId,\r\n // label: 'Router Errors',\r\n // color: 0xea5455,\r\n // })\r\n router.onError((error, to) => {\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'Error during Navigation',\r\n subtitle: to.fullPath,\r\n logType: 'error',\r\n time: api.now(),\r\n data: { error },\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n // attached to `meta` and used to group events\r\n let navigationId = 0;\r\n router.beforeEach((to, from) => {\r\n const data = {\r\n guard: formatDisplay('beforeEach'),\r\n from: formatRouteLocation(from, 'Current Location during this navigation'),\r\n to: formatRouteLocation(to, 'Target location'),\r\n };\r\n // Used to group navigations together, hide from devtools\r\n Object.defineProperty(to.meta, '__navigationId', {\r\n value: navigationId++,\r\n });\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n time: api.now(),\r\n title: 'Start of navigation',\r\n subtitle: to.fullPath,\r\n data,\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n router.afterEach((to, from, failure) => {\r\n const data = {\r\n guard: formatDisplay('afterEach'),\r\n };\r\n if (failure) {\r\n data.failure = {\r\n _custom: {\r\n type: Error,\r\n readOnly: true,\r\n display: failure ? failure.message : '',\r\n tooltip: 'Navigation Failure',\r\n value: failure,\r\n },\r\n };\r\n data.status = formatDisplay('❌');\r\n }\r\n else {\r\n data.status = formatDisplay('✅');\r\n }\r\n // we set here to have the right order\r\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\r\n data.to = formatRouteLocation(to, 'Target location');\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'End of navigation',\r\n subtitle: to.fullPath,\r\n time: api.now(),\r\n data,\r\n logType: failure ? 'warning' : 'default',\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n /**\r\n * Inspector of Existing routes\r\n */\r\n const routerInspectorId = 'router-inspector:' + id;\r\n api.addInspector({\r\n id: routerInspectorId,\r\n label: 'Routes' + (id ? ' ' + id : ''),\r\n icon: 'book',\r\n treeFilterPlaceholder: 'Search routes',\r\n });\r\n function refreshRoutesView() {\r\n // the routes view isn't active\r\n if (!activeRoutesPayload)\r\n return;\r\n const payload = activeRoutesPayload;\r\n // children routes will appear as nested\r\n let routes = matcher.getRoutes().filter(route => !route.parent);\r\n // reset match state to false\r\n routes.forEach(resetMatchStateOnRouteRecord);\r\n // apply a match state if there is a payload\r\n if (payload.filter) {\r\n routes = routes.filter(route => \r\n // save matches state based on the payload\r\n isRouteMatching(route, payload.filter.toLowerCase()));\r\n }\r\n // mark active routes\r\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\r\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\r\n }\r\n let activeRoutesPayload;\r\n api.on.getInspectorTree(payload => {\r\n activeRoutesPayload = payload;\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n refreshRoutesView();\r\n }\r\n });\r\n /**\r\n * Display information about the currently selected route record\r\n */\r\n api.on.getInspectorState(payload => {\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n const routes = matcher.getRoutes();\r\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\r\n if (route) {\r\n payload.state = {\r\n options: formatRouteRecordMatcherForStateInspector(route),\r\n };\r\n }\r\n }\r\n });\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n}\r\nfunction modifierForKey(key) {\r\n if (key.optional) {\r\n return key.repeatable ? '*' : '?';\r\n }\r\n else {\r\n return key.repeatable ? '+' : '';\r\n }\r\n}\r\nfunction formatRouteRecordMatcherForStateInspector(route) {\r\n const { record } = route;\r\n const fields = [\r\n { editable: false, key: 'path', value: record.path },\r\n ];\r\n if (record.name != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'name',\r\n value: record.name,\r\n });\r\n }\r\n fields.push({ editable: false, key: 'regexp', value: route.re });\r\n if (route.keys.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'keys',\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.keys\r\n .map(key => `${key.name}${modifierForKey(key)}`)\r\n .join(' '),\r\n tooltip: 'Param keys',\r\n value: route.keys,\r\n },\r\n },\r\n });\r\n }\r\n if (record.redirect != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'redirect',\r\n value: record.redirect,\r\n });\r\n }\r\n if (route.alias.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'aliases',\r\n value: route.alias.map(alias => alias.record.path),\r\n });\r\n }\r\n if (Object.keys(route.record.meta).length) {\r\n fields.push({\r\n editable: false,\r\n key: 'meta',\r\n value: route.record.meta,\r\n });\r\n }\r\n fields.push({\r\n key: 'score',\r\n editable: false,\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.score.map(score => score.join(', ')).join(' | '),\r\n tooltip: 'Score used to sort routes',\r\n value: route.score,\r\n },\r\n },\r\n });\r\n return fields;\r\n}\r\n/**\r\n * Extracted from tailwind palette\r\n */\r\nconst PINK_500 = 0xec4899;\r\nconst BLUE_600 = 0x2563eb;\r\nconst LIME_500 = 0x84cc16;\r\nconst CYAN_400 = 0x22d3ee;\r\nconst ORANGE_400 = 0xfb923c;\r\n// const GRAY_100 = 0xf4f4f5\r\nconst DARK = 0x666666;\r\nfunction formatRouteRecordForInspector(route) {\r\n const tags = [];\r\n const { record } = route;\r\n if (record.name != null) {\r\n tags.push({\r\n label: String(record.name),\r\n textColor: 0,\r\n backgroundColor: CYAN_400,\r\n });\r\n }\r\n if (record.aliasOf) {\r\n tags.push({\r\n label: 'alias',\r\n textColor: 0,\r\n backgroundColor: ORANGE_400,\r\n });\r\n }\r\n if (route.__vd_match) {\r\n tags.push({\r\n label: 'matches',\r\n textColor: 0,\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n if (route.__vd_exactActive) {\r\n tags.push({\r\n label: 'exact',\r\n textColor: 0,\r\n backgroundColor: LIME_500,\r\n });\r\n }\r\n if (route.__vd_active) {\r\n tags.push({\r\n label: 'active',\r\n textColor: 0,\r\n backgroundColor: BLUE_600,\r\n });\r\n }\r\n if (record.redirect) {\r\n tags.push({\r\n label: typeof record.redirect === 'string'\r\n ? `redirect: ${record.redirect}`\r\n : 'redirects',\r\n textColor: 0xffffff,\r\n backgroundColor: DARK,\r\n });\r\n }\r\n // add an id to be able to select it. Using the `path` is not possible because\r\n // empty path children would collide with their parents\r\n let id = record.__vd_id;\r\n if (id == null) {\r\n id = String(routeRecordId++);\r\n record.__vd_id = id;\r\n }\r\n return {\r\n id,\r\n label: record.path,\r\n tags,\r\n children: route.children.map(formatRouteRecordForInspector),\r\n };\r\n}\r\n// incremental id for route records and inspector state\r\nlet routeRecordId = 0;\r\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\r\nfunction markRouteRecordActive(route, currentRoute) {\r\n // no route will be active if matched is empty\r\n // reset the matching state\r\n const isExactActive = currentRoute.matched.length &&\r\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\r\n route.__vd_exactActive = route.__vd_active = isExactActive;\r\n if (!isExactActive) {\r\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\r\n }\r\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\r\n}\r\nfunction resetMatchStateOnRouteRecord(route) {\r\n route.__vd_match = false;\r\n route.children.forEach(resetMatchStateOnRouteRecord);\r\n}\r\nfunction isRouteMatching(route, filter) {\r\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\r\n route.__vd_match = false;\r\n if (!found || found.length < 3) {\r\n return false;\r\n }\r\n // use a regexp without $ at the end to match nested routes better\r\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\r\n if (nonEndingRE.test(filter)) {\r\n // mark children as matches\r\n route.children.forEach(child => isRouteMatching(child, filter));\r\n // exception case: `/`\r\n if (route.record.path !== '/' || filter === '/') {\r\n route.__vd_match = route.re.test(filter);\r\n return true;\r\n }\r\n // hide the / route\r\n return false;\r\n }\r\n const path = route.record.path.toLowerCase();\r\n const decodedPath = decode(path);\r\n // also allow partial matching on the path\r\n if (!filter.startsWith('/') &&\r\n (decodedPath.includes(filter) || path.includes(filter)))\r\n return true;\r\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\r\n return true;\r\n if (route.record.name && String(route.record.name).includes(filter))\r\n return true;\r\n return route.children.some(child => isRouteMatching(child, filter));\r\n}\r\nfunction omit(obj, keys) {\r\n const ret = {};\r\n for (const key in obj) {\r\n if (!keys.includes(key)) {\r\n // @ts-expect-error\r\n ret[key] = obj[key];\r\n }\r\n }\r\n return ret;\r\n}\n\n/**\r\n * Creates a Router instance that can be used by a Vue app.\r\n *\r\n * @param options - {@link RouterOptions}\r\n */\r\nfunction createRouter(options) {\r\n const matcher = createRouterMatcher(options.routes, options);\r\n const parseQuery$1 = options.parseQuery || parseQuery;\r\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\r\n const routerHistory = options.history;\r\n if ((process.env.NODE_ENV !== 'production') && !routerHistory)\r\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\r\n ' https://next.router.vuejs.org/api/#history.');\r\n const beforeGuards = useCallbacks();\r\n const beforeResolveGuards = useCallbacks();\r\n const afterGuards = useCallbacks();\r\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\r\n let pendingLocation = START_LOCATION_NORMALIZED;\r\n // leave the scrollRestoration if no scrollBehavior is provided\r\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\r\n history.scrollRestoration = 'manual';\r\n }\r\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\r\n const encodeParams = applyToParams.bind(null, encodeParam);\r\n const decodeParams = \r\n // @ts-expect-error: intentionally avoid the type check\r\n applyToParams.bind(null, decode);\r\n function addRoute(parentOrRoute, route) {\r\n let parent;\r\n let record;\r\n if (isRouteName(parentOrRoute)) {\r\n parent = matcher.getRecordMatcher(parentOrRoute);\r\n record = route;\r\n }\r\n else {\r\n record = parentOrRoute;\r\n }\r\n return matcher.addRoute(record, parent);\r\n }\r\n function removeRoute(name) {\r\n const recordMatcher = matcher.getRecordMatcher(name);\r\n if (recordMatcher) {\r\n matcher.removeRoute(recordMatcher);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\r\n }\r\n }\r\n function getRoutes() {\r\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\r\n }\r\n function hasRoute(name) {\r\n return !!matcher.getRecordMatcher(name);\r\n }\r\n function resolve(rawLocation, currentLocation) {\r\n // const objectLocation = routerLocationAsObject(rawLocation)\r\n // we create a copy to modify it later\r\n currentLocation = assign({}, currentLocation || currentRoute.value);\r\n if (typeof rawLocation === 'string') {\r\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\r\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\r\n const href = routerHistory.createHref(locationNormalized.fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//'))\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${rawLocation}\"`);\r\n }\r\n }\r\n // locationNormalized is always a new object\r\n return assign(locationNormalized, matchedRoute, {\r\n params: decodeParams(matchedRoute.params),\r\n hash: decode(locationNormalized.hash),\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n let matcherLocation;\r\n // path could be relative in object as well\r\n if ('path' in rawLocation) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n 'params' in rawLocation &&\r\n !('name' in rawLocation) &&\r\n // @ts-expect-error: the type is never\r\n Object.keys(rawLocation.params).length) {\r\n warn(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\r\n }\r\n matcherLocation = assign({}, rawLocation, {\r\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\r\n });\r\n }\r\n else {\r\n // remove any nullish param\r\n const targetParams = assign({}, rawLocation.params);\r\n for (const key in targetParams) {\r\n if (targetParams[key] == null) {\r\n delete targetParams[key];\r\n }\r\n }\r\n // pass encoded values to the matcher, so it can produce encoded path and fullPath\r\n matcherLocation = assign({}, rawLocation, {\r\n params: encodeParams(targetParams),\r\n });\r\n // current location params are decoded, we need to encode them in case the\r\n // matcher merges the params\r\n currentLocation.params = encodeParams(currentLocation.params);\r\n }\r\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\r\n const hash = rawLocation.hash || '';\r\n if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\r\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\r\n }\r\n // the matcher might have merged current location params, so\r\n // we need to run the decoding again\r\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\r\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\r\n hash: encodeHash(hash),\r\n path: matchedRoute.path,\r\n }));\r\n const href = routerHistory.createHref(fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//')) {\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n }\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${'path' in rawLocation ? rawLocation.path : rawLocation}\"`);\r\n }\r\n }\r\n return assign({\r\n fullPath,\r\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\r\n // hash\r\n hash,\r\n query: \r\n // if the user is using a custom query lib like qs, we might have\r\n // nested objects, so we keep the query as is, meaning it can contain\r\n // numbers at `$route.query`, but at the point, the user will have to\r\n // use their own type anyway.\r\n // https://github.com/vuejs/router/issues/328#issuecomment-649481567\r\n stringifyQuery$1 === stringifyQuery\r\n ? normalizeQuery(rawLocation.query)\r\n : (rawLocation.query || {}),\r\n }, matchedRoute, {\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n function locationAsObject(to) {\r\n return typeof to === 'string'\r\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\r\n : assign({}, to);\r\n }\r\n function checkCanceledNavigation(to, from) {\r\n if (pendingLocation !== to) {\r\n return createRouterError(8 /* ErrorTypes.NAVIGATION_CANCELLED */, {\r\n from,\r\n to,\r\n });\r\n }\r\n }\r\n function push(to) {\r\n return pushWithRedirect(to);\r\n }\r\n function replace(to) {\r\n return push(assign(locationAsObject(to), { replace: true }));\r\n }\r\n function handleRedirectRecord(to) {\r\n const lastMatched = to.matched[to.matched.length - 1];\r\n if (lastMatched && lastMatched.redirect) {\r\n const { redirect } = lastMatched;\r\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\r\n if (typeof newTargetLocation === 'string') {\r\n newTargetLocation =\r\n newTargetLocation.includes('?') || newTargetLocation.includes('#')\r\n ? (newTargetLocation = locationAsObject(newTargetLocation))\r\n : // force empty params\r\n { path: newTargetLocation };\r\n // @ts-expect-error: force empty params when a string is passed to let\r\n // the router parse them again\r\n newTargetLocation.params = {};\r\n }\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !('path' in newTargetLocation) &&\r\n !('name' in newTargetLocation)) {\r\n warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\r\n throw new Error('Invalid redirect');\r\n }\r\n return assign({\r\n query: to.query,\r\n hash: to.hash,\r\n // avoid transferring params if the redirect has a path\r\n params: 'path' in newTargetLocation ? {} : to.params,\r\n }, newTargetLocation);\r\n }\r\n }\r\n function pushWithRedirect(to, redirectedFrom) {\r\n const targetLocation = (pendingLocation = resolve(to));\r\n const from = currentRoute.value;\r\n const data = to.state;\r\n const force = to.force;\r\n // to could be a string where `replace` is a function\r\n const replace = to.replace === true;\r\n const shouldRedirect = handleRedirectRecord(targetLocation);\r\n if (shouldRedirect)\r\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\r\n state: typeof shouldRedirect === 'object'\r\n ? assign({}, data, shouldRedirect.state)\r\n : data,\r\n force,\r\n replace,\r\n }), \r\n // keep original redirectedFrom if it exists\r\n redirectedFrom || targetLocation);\r\n // if it was a redirect we already called `pushWithRedirect` above\r\n const toLocation = targetLocation;\r\n toLocation.redirectedFrom = redirectedFrom;\r\n let failure;\r\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\r\n failure = createRouterError(16 /* ErrorTypes.NAVIGATION_DUPLICATED */, { to: toLocation, from });\r\n // trigger scroll to allow scrolling to the same anchor\r\n handleScroll(from, from, \r\n // this is a push, the only way for it to be triggered from a\r\n // history.listen is with a redirect, which makes it become a push\r\n true, \r\n // This cannot be the first navigation because the initial location\r\n // cannot be manually navigated to\r\n false);\r\n }\r\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\r\n .catch((error) => isNavigationFailure(error)\r\n ? // navigation redirects still mark the router as ready\r\n isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)\r\n ? error\r\n : markAsReady(error) // also returns the error\r\n : // reject any unknown error\r\n triggerError(error, toLocation, from))\r\n .then((failure) => {\r\n if (failure) {\r\n if (isNavigationFailure(failure, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n // we are redirecting to the same location we were already at\r\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\r\n // and we have done it a couple of times\r\n redirectedFrom &&\r\n // @ts-expect-error: added only in dev\r\n (redirectedFrom._count = redirectedFrom._count\r\n ? // @ts-expect-error\r\n redirectedFrom._count + 1\r\n : 1) > 30) {\r\n warn(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\r\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\r\n }\r\n return pushWithRedirect(\r\n // keep options\r\n assign({\r\n // preserve an existing replacement but allow the redirect to override it\r\n replace,\r\n }, locationAsObject(failure.to), {\r\n state: typeof failure.to === 'object'\r\n ? assign({}, data, failure.to.state)\r\n : data,\r\n force,\r\n }), \r\n // preserve the original redirectedFrom if any\r\n redirectedFrom || toLocation);\r\n }\r\n }\r\n else {\r\n // if we fail we don't finalize the navigation\r\n failure = finalizeNavigation(toLocation, from, true, replace, data);\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n return failure;\r\n });\r\n }\r\n /**\r\n * Helper to reject and skip all navigation guards if a new navigation happened\r\n * @param to\r\n * @param from\r\n */\r\n function checkCanceledNavigationAndReject(to, from) {\r\n const error = checkCanceledNavigation(to, from);\r\n return error ? Promise.reject(error) : Promise.resolve();\r\n }\r\n function runWithContext(fn) {\r\n const app = installedApps.values().next().value;\r\n // support Vue < 3.3\r\n return app && typeof app.runWithContext === 'function'\r\n ? app.runWithContext(fn)\r\n : fn();\r\n }\r\n // TODO: refactor the whole before guards by internally using router.beforeEach\r\n function navigate(to, from) {\r\n let guards;\r\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\r\n // all components here have been resolved once because we are leaving\r\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\r\n // leavingRecords is already reversed\r\n for (const record of leavingRecords) {\r\n record.leaveGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeRouteLeave guards\r\n return (runGuardQueue(guards)\r\n .then(() => {\r\n // check global guards beforeEach\r\n guards = [];\r\n for (const guard of beforeGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check in components beforeRouteUpdate\r\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\r\n for (const record of updatingRecords) {\r\n record.updateGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check the route beforeEnter\r\n guards = [];\r\n for (const record of to.matched) {\r\n // do not trigger beforeEnter on reused views\r\n if (record.beforeEnter && !from.matched.includes(record)) {\r\n if (isArray(record.beforeEnter)) {\r\n for (const beforeEnter of record.beforeEnter)\r\n guards.push(guardToPromiseFn(beforeEnter, to, from));\r\n }\r\n else {\r\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\r\n }\r\n }\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise\r\n // clear existing enterCallbacks, these are added by extractComponentsGuards\r\n to.matched.forEach(record => (record.enterCallbacks = {}));\r\n // check in-component beforeRouteEnter\r\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check global guards beforeResolve\r\n guards = [];\r\n for (const guard of beforeResolveGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n // catch any navigation canceled\r\n .catch(err => isNavigationFailure(err, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)\r\n ? err\r\n : Promise.reject(err)));\r\n }\r\n function triggerAfterEach(to, from, failure) {\r\n // navigation is confirmed, call afterGuards\r\n // TODO: wrap with error handlers\r\n for (const guard of afterGuards.list()) {\r\n runWithContext(() => guard(to, from, failure));\r\n }\r\n }\r\n /**\r\n * - Cleans up any navigation guards\r\n * - Changes the url if necessary\r\n * - Calls the scrollBehavior\r\n */\r\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\r\n // a more recent navigation took place\r\n const error = checkCanceledNavigation(toLocation, from);\r\n if (error)\r\n return error;\r\n // only consider as push if it's not the first navigation\r\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\r\n const state = !isBrowser ? {} : history.state;\r\n // change URL only if the user did a push/replace and if it's not the initial navigation because\r\n // it's just reflecting the url\r\n if (isPush) {\r\n // on the initial navigation, we want to reuse the scroll position from\r\n // history state if it exists\r\n if (replace || isFirstNavigation)\r\n routerHistory.replace(toLocation.fullPath, assign({\r\n scroll: isFirstNavigation && state && state.scroll,\r\n }, data));\r\n else\r\n routerHistory.push(toLocation.fullPath, data);\r\n }\r\n // accept current navigation\r\n currentRoute.value = toLocation;\r\n handleScroll(toLocation, from, isPush, isFirstNavigation);\r\n markAsReady();\r\n }\r\n let removeHistoryListener;\r\n // attach listener to history to trigger navigations\r\n function setupListeners() {\r\n // avoid setting up listeners twice due to an invalid first navigation\r\n if (removeHistoryListener)\r\n return;\r\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\r\n if (!router.listening)\r\n return;\r\n // cannot be a redirect route because it was in history\r\n const toLocation = resolve(to);\r\n // due to dynamic routing, and to hash history with manual navigation\r\n // (manually changing the url or calling history.hash = '#/somewhere'),\r\n // there could be a redirect record in history\r\n const shouldRedirect = handleRedirectRecord(toLocation);\r\n if (shouldRedirect) {\r\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\r\n return;\r\n }\r\n pendingLocation = toLocation;\r\n const from = currentRoute.value;\r\n // TODO: should be moved to web history?\r\n if (isBrowser) {\r\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\r\n }\r\n navigate(toLocation, from)\r\n .catch((error) => {\r\n if (isNavigationFailure(error, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\r\n return error;\r\n }\r\n if (isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\r\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\r\n // false) but this is bug prone as we have no way to wait the\r\n // navigation to be finished before calling pushWithRedirect. Using\r\n // a setTimeout of 16ms seems to work but there is no guarantee for\r\n // it to work on every browser. So instead we do not restore the\r\n // history entry and trigger a new navigation as requested by the\r\n // navigation guard.\r\n // the error is already handled by router.push we just want to avoid\r\n // logging the error\r\n pushWithRedirect(error.to, toLocation\r\n // avoid an uncaught rejection, let push call triggerError\r\n )\r\n .then(failure => {\r\n // manual change in hash history #916 ending up in the URL not\r\n // changing, but it was changed by the manual url change, so we\r\n // need to manually change it ourselves\r\n if (isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ |\r\n 16 /* ErrorTypes.NAVIGATION_DUPLICATED */) &&\r\n !info.delta &&\r\n info.type === NavigationType.pop) {\r\n routerHistory.go(-1, false);\r\n }\r\n })\r\n .catch(noop);\r\n // avoid the then branch\r\n return Promise.reject();\r\n }\r\n // do not restore history on unknown direction\r\n if (info.delta) {\r\n routerHistory.go(-info.delta, false);\r\n }\r\n // unrecognized error, transfer to the global handler\r\n return triggerError(error, toLocation, from);\r\n })\r\n .then((failure) => {\r\n failure =\r\n failure ||\r\n finalizeNavigation(\r\n // after navigation, all matched components are resolved\r\n toLocation, from, false);\r\n // revert the navigation\r\n if (failure) {\r\n if (info.delta &&\r\n // a new navigation has been triggered, so we do not want to revert, that will change the current history\r\n // entry while a different route is displayed\r\n !isNavigationFailure(failure, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\r\n routerHistory.go(-info.delta, false);\r\n }\r\n else if (info.type === NavigationType.pop &&\r\n isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 16 /* ErrorTypes.NAVIGATION_DUPLICATED */)) {\r\n // manual change in hash history #916\r\n // it's like a push but lacks the information of the direction\r\n routerHistory.go(-1, false);\r\n }\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n })\r\n .catch(noop);\r\n });\r\n }\r\n // Initialization and Errors\r\n let readyHandlers = useCallbacks();\r\n let errorHandlers = useCallbacks();\r\n let ready;\r\n /**\r\n * Trigger errorHandlers added via onError and throws the error as well\r\n *\r\n * @param error - error to throw\r\n * @param to - location we were navigating to when the error happened\r\n * @param from - location we were navigating from when the error happened\r\n * @returns the error as a rejected promise\r\n */\r\n function triggerError(error, to, from) {\r\n markAsReady(error);\r\n const list = errorHandlers.list();\r\n if (list.length) {\r\n list.forEach(handler => handler(error, to, from));\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('uncaught error during route navigation:');\r\n }\r\n console.error(error);\r\n }\r\n return Promise.reject(error);\r\n }\r\n function isReady() {\r\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\r\n return Promise.resolve();\r\n return new Promise((resolve, reject) => {\r\n readyHandlers.add([resolve, reject]);\r\n });\r\n }\r\n function markAsReady(err) {\r\n if (!ready) {\r\n // still not ready if an error happened\r\n ready = !err;\r\n setupListeners();\r\n readyHandlers\r\n .list()\r\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\r\n readyHandlers.reset();\r\n }\r\n return err;\r\n }\r\n // Scroll behavior\r\n function handleScroll(to, from, isPush, isFirstNavigation) {\r\n const { scrollBehavior } = options;\r\n if (!isBrowser || !scrollBehavior)\r\n return Promise.resolve();\r\n const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\r\n ((isFirstNavigation || !isPush) &&\r\n history.state &&\r\n history.state.scroll) ||\r\n null;\r\n return nextTick()\r\n .then(() => scrollBehavior(to, from, scrollPosition))\r\n .then(position => position && scrollToPosition(position))\r\n .catch(err => triggerError(err, to, from));\r\n }\r\n const go = (delta) => routerHistory.go(delta);\r\n let started;\r\n const installedApps = new Set();\r\n const router = {\r\n currentRoute,\r\n listening: true,\r\n addRoute,\r\n removeRoute,\r\n hasRoute,\r\n getRoutes,\r\n resolve,\r\n options,\r\n push,\r\n replace,\r\n go,\r\n back: () => go(-1),\r\n forward: () => go(1),\r\n beforeEach: beforeGuards.add,\r\n beforeResolve: beforeResolveGuards.add,\r\n afterEach: afterGuards.add,\r\n onError: errorHandlers.add,\r\n isReady,\r\n install(app) {\r\n const router = this;\r\n app.component('RouterLink', RouterLink);\r\n app.component('RouterView', RouterView);\r\n app.config.globalProperties.$router = router;\r\n Object.defineProperty(app.config.globalProperties, '$route', {\r\n enumerable: true,\r\n get: () => unref(currentRoute),\r\n });\r\n // this initial navigation is only necessary on client, on server it doesn't\r\n // make sense because it will create an extra unnecessary navigation and could\r\n // lead to problems\r\n if (isBrowser &&\r\n // used for the initial navigation client side to avoid pushing\r\n // multiple times when the router is used in multiple apps\r\n !started &&\r\n currentRoute.value === START_LOCATION_NORMALIZED) {\r\n // see above\r\n started = true;\r\n push(routerHistory.location).catch(err => {\r\n if ((process.env.NODE_ENV !== 'production'))\r\n warn('Unexpected error when starting the router:', err);\r\n });\r\n }\r\n const reactiveRoute = {};\r\n for (const key in START_LOCATION_NORMALIZED) {\r\n // @ts-expect-error: the key matches\r\n reactiveRoute[key] = computed(() => currentRoute.value[key]);\r\n }\r\n app.provide(routerKey, router);\r\n app.provide(routeLocationKey, reactive(reactiveRoute));\r\n app.provide(routerViewLocationKey, currentRoute);\r\n const unmountApp = app.unmount;\r\n installedApps.add(app);\r\n app.unmount = function () {\r\n installedApps.delete(app);\r\n // the router is not attached to an app anymore\r\n if (installedApps.size < 1) {\r\n // invalidate the current navigation\r\n pendingLocation = START_LOCATION_NORMALIZED;\r\n removeHistoryListener && removeHistoryListener();\r\n removeHistoryListener = null;\r\n currentRoute.value = START_LOCATION_NORMALIZED;\r\n started = false;\r\n ready = false;\r\n }\r\n unmountApp();\r\n };\r\n // TODO: this probably needs to be updated so it can be used by vue-termui\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n addDevtools(app, router, matcher);\r\n }\r\n },\r\n };\r\n // TODO: type this as NavigationGuardReturn or similar instead of any\r\n function runGuardQueue(guards) {\r\n return guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\r\n }\r\n return router;\r\n}\r\nfunction extractChangingRecords(to, from) {\r\n const leavingRecords = [];\r\n const updatingRecords = [];\r\n const enteringRecords = [];\r\n const len = Math.max(from.matched.length, to.matched.length);\r\n for (let i = 0; i < len; i++) {\r\n const recordFrom = from.matched[i];\r\n if (recordFrom) {\r\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\r\n updatingRecords.push(recordFrom);\r\n else\r\n leavingRecords.push(recordFrom);\r\n }\r\n const recordTo = to.matched[i];\r\n if (recordTo) {\r\n // the type doesn't matter because we are comparing per reference\r\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\r\n enteringRecords.push(recordTo);\r\n }\r\n }\r\n }\r\n return [leavingRecords, updatingRecords, enteringRecords];\r\n}\n\n/**\r\n * Returns the router instance. Equivalent to using `$router` inside\r\n * templates.\r\n */\r\nfunction useRouter() {\r\n return inject(routerKey);\r\n}\r\n/**\r\n * Returns the current route location. Equivalent to using `$route` inside\r\n * templates.\r\n */\r\nfunction useRoute() {\r\n return inject(routeLocationKey);\r\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","export enum UserRole {\n User = \"User\",\n Administrator = \"Administrator\",\n ITManager = \"ITManager\",\n}\n","import i18n from \"@/i18n\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\nimport type { User } from \"@/models/user\";\nimport { STORES, useStorageService } from \"@/services/infrastructure/storageService\";\nimport { UserRole } from \"@/models/userRole\";\nimport { logOutUrl } from \"@/utils/urlHelper\";\nimport { redirectTo } from \"@/utils/redirectUtil\";\n\nconst BASE_URL = \"/api/accounts\";\nconst { get } = useHttpClient();\nconst { clearKey, store } = useStorageService(STORES.language_key);\n\ninterface UseAuthenticationServiceReturn {\n getUser: () => Promise;\n cleanUser: () => void;\n redirectToLogOut: () => void;\n isAdministrator: () => Promise;\n isGroupManager: () => Promise;\n}\n\nconst setLocale = (user: User) => {\n const userLocale = user.language.split(\"-\")[0].toLocaleLowerCase();\n i18n.global.locale.value = userLocale;\n store(userLocale);\n};\nlet isAuthenticated = false;\nlet currentUser: User | undefined;\n\nexport default (): UseAuthenticationServiceReturn => {\n const getUser = async (): Promise => {\n if (currentUser && isAuthenticated) {\n return currentUser;\n }\n\n const user: User = await get(`${BASE_URL}/user`);\n\n if (user) {\n isAuthenticated = true;\n currentUser = user;\n setLocale(user);\n return currentUser;\n }\n\n isAuthenticated = false;\n currentUser = undefined;\n clearKey();\n };\n const redirectToLogOut = (): void => {\n clearKey();\n redirectTo(logOutUrl);\n };\n const checkRole = async (role: UserRole): Promise => {\n const user = await getUser();\n return !!user && user.role === role;\n };\n const cleanUser = (): void => {\n currentUser = undefined;\n isAuthenticated = false;\n };\n const isAdministrator = async (): Promise => checkRole(UserRole.Administrator);\n const isGroupManager = async (): Promise => {\n const user = await getUser();\n return !!user && user.isGroupManager;\n };\n\n return { getUser, redirectToLogOut, isAdministrator, isGroupManager, cleanUser };\n};\n","import useAuthenticationService from \"@/services/useAuthenticationService\";\nimport type { RouteLocationNormalized, Router } from \"vue-router\";\nimport { redirectToLogin } from \"@/utils/redirectUtil\";\nimport { UserRole } from \"@/models/userRole\";\n\nexport const authenticationGuard = (router: Router): void => {\n const { getUser } = useAuthenticationService();\n\n router.beforeResolve(async (to: RouteLocationNormalized) => {\n if (!to.meta.requiresAuth) {\n return true;\n }\n const user = await getUser();\n const isUserAuthenticated = !!user;\n\n if (!isUserAuthenticated) {\n redirectToLogin(to.fullPath);\n return false;\n }\n\n if (to.meta.requiresGroupManager && !user.isGroupManager) {\n return { name: \"default\" };\n }\n if (to.meta.requiresAdministrator && user.role !== UserRole.Administrator) {\n return { name: \"accounts-admin-required\" };\n }\n if (to.meta.requiresItManager && user.role !== UserRole.ITManager) {\n return { name: \"accounts-admin-required\" };\n }\n\n return true;\n });\n};\n","import useSpaConfigurationService from \"@/services/useSpaConfigurationService\";\n\ninterface UseFeatureFlagsReturn {\n checkFeatureFlag: (featureFlagName: string | undefined) => boolean;\n}\n\nexport default (): UseFeatureFlagsReturn => {\n const { getFeatureFlags } = useSpaConfigurationService();\n const checkFeatureFlag = (featureFlagName: string | undefined): boolean => {\n if (!featureFlagName) {\n return true;\n }\n const featureManagementOptions = getFeatureFlags();\n return !featureManagementOptions || !!featureManagementOptions[featureFlagName];\n };\n\n return { checkFeatureFlag };\n};\n","import type { Router, RouteLocationNormalized } from \"vue-router\";\nimport useFeatureFlags from \"@/services/useFeatureFlags\";\nimport { redirectTo } from \"@/utils/redirectUtil\";\n\nexport const featureGuard = (router: Router): void => {\n const { checkFeatureFlag } = useFeatureFlags();\n\n router.beforeResolve((to: RouteLocationNormalized) => {\n if (to.meta.featureFlag && !checkFeatureFlag(to.meta.featureFlag as string)) {\n redirectTo(\"/\");\n return false;\n }\n return true;\n });\n};\n","export default \"__VITE_ASSET__6ea052d8__\"","\n\n\n","export default \"__VITE_ASSET__c2b3a5f0__\"","/**\n * vee-validate v4.8.6\n * (c) 2023 Abdelrahman Awad\n * @license MIT\n */\nimport { getCurrentInstance, inject, warn as warn$1, computed, ref, watch, unref, isRef, reactive, onUnmounted, nextTick, onMounted, provide, onBeforeUnmount, defineComponent, toRef, resolveDynamicComponent, h, watchEffect, markRaw } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nfunction isCallable(fn) {\n return typeof fn === 'function';\n}\nfunction isNullOrUndefined(value) {\n return value === null || value === undefined;\n}\nconst isObject = (obj) => obj !== null && !!obj && typeof obj === 'object' && !Array.isArray(obj);\nfunction isIndex(value) {\n return Number(value) >= 0;\n}\nfunction toNumber(value) {\n const n = parseFloat(value);\n return isNaN(n) ? value : n;\n}\n\nconst RULES = {};\n/**\n * Adds a custom validator to the list of validation rules.\n */\nfunction defineRule(id, validator) {\n // makes sure new rules are properly formatted.\n guardExtend(id, validator);\n RULES[id] = validator;\n}\n/**\n * Gets an already defined rule\n */\nfunction resolveRule(id) {\n return RULES[id];\n}\n/**\n * Guards from extension violations.\n */\nfunction guardExtend(id, validator) {\n if (isCallable(validator)) {\n return;\n }\n throw new Error(`Extension Error: The validator '${id}' must be a function.`);\n}\n\nconst FormContextKey = Symbol('vee-validate-form');\nconst FieldContextKey = Symbol('vee-validate-field-instance');\nconst IS_ABSENT = Symbol('Default empty value');\n\nconst isClient = typeof window !== 'undefined';\nfunction isLocator(value) {\n return isCallable(value) && !!value.__locatorRef;\n}\nfunction isTypedSchema(value) {\n return !!value && isCallable(value.parse) && value.__type === 'VVTypedSchema';\n}\nfunction isYupValidator(value) {\n return !!value && isCallable(value.validate);\n}\nfunction hasCheckedAttr(type) {\n return type === 'checkbox' || type === 'radio';\n}\nfunction isContainerValue(value) {\n return isObject(value) || Array.isArray(value);\n}\n/**\n * True if the value is an empty object or array\n */\nfunction isEmptyContainer(value) {\n if (Array.isArray(value)) {\n return value.length === 0;\n }\n return isObject(value) && Object.keys(value).length === 0;\n}\n/**\n * Checks if the path opted out of nested fields using `[fieldName]` syntax\n */\nfunction isNotNestedPath(path) {\n return /^\\[.+\\]$/i.test(path);\n}\n/**\n * Checks if an element is a native HTML5 multi-select input element\n */\nfunction isNativeMultiSelect(el) {\n return isNativeSelect(el) && el.multiple;\n}\n/**\n * Checks if an element is a native HTML5 select input element\n */\nfunction isNativeSelect(el) {\n return el.tagName === 'SELECT';\n}\n/**\n * Checks if a tag name with attrs object will render a native multi-select element\n */\nfunction isNativeMultiSelectNode(tag, attrs) {\n // The falsy value array is the values that Vue won't add the `multiple` prop if it has one of these values\n const hasTruthyBindingValue = ![false, null, undefined, 0].includes(attrs.multiple) && !Number.isNaN(attrs.multiple);\n return tag === 'select' && 'multiple' in attrs && hasTruthyBindingValue;\n}\n/**\n * Checks if a node should have a `:value` binding or not\n *\n * These nodes should not have a value binding\n * For files, because they are not reactive\n * For multi-selects because the value binding will reset the value\n */\nfunction shouldHaveValueBinding(tag, attrs) {\n return !isNativeMultiSelectNode(tag, attrs) && attrs.type !== 'file' && !hasCheckedAttr(attrs.type);\n}\nfunction isFormSubmitEvent(evt) {\n return isEvent(evt) && evt.target && 'submit' in evt.target;\n}\nfunction isEvent(evt) {\n if (!evt) {\n return false;\n }\n if (typeof Event !== 'undefined' && isCallable(Event) && evt instanceof Event) {\n return true;\n }\n // this is for IE and Cypress #3161\n /* istanbul ignore next */\n if (evt && evt.srcElement) {\n return true;\n }\n return false;\n}\nfunction isPropPresent(obj, prop) {\n return prop in obj && obj[prop] !== IS_ABSENT;\n}\n/**\n * Compares if two values are the same borrowed from:\n * https://github.com/epoberezkin/fast-deep-equal\n * We added a case for file matching since `Object.keys` doesn't work with Files.\n * */\nfunction isEqual(a, b) {\n if (a === b)\n return true;\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n if (a.constructor !== b.constructor)\n return false;\n // eslint-disable-next-line no-var\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n // eslint-disable-next-line eqeqeq\n if (length != b.length)\n return false;\n for (i = length; i-- !== 0;)\n if (!isEqual(a[i], b[i]))\n return false;\n return true;\n }\n if (a instanceof Map && b instanceof Map) {\n if (a.size !== b.size)\n return false;\n for (i of a.entries())\n if (!b.has(i[0]))\n return false;\n for (i of a.entries())\n if (!isEqual(i[1], b.get(i[0])))\n return false;\n return true;\n }\n // We added this part for file comparison, arguably a little naive but should work for most cases.\n // #3911\n if (isFile(a) && isFile(b)) {\n if (a.size !== b.size)\n return false;\n if (a.name !== b.name)\n return false;\n if (a.lastModified !== b.lastModified)\n return false;\n if (a.type !== b.type)\n return false;\n return true;\n }\n if (a instanceof Set && b instanceof Set) {\n if (a.size !== b.size)\n return false;\n for (i of a.entries())\n if (!b.has(i[0]))\n return false;\n return true;\n }\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n // eslint-disable-next-line eqeqeq\n if (length != b.length)\n return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i])\n return false;\n return true;\n }\n if (a.constructor === RegExp)\n return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf)\n return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString)\n return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length)\n return false;\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i]))\n return false;\n for (i = length; i-- !== 0;) {\n // eslint-disable-next-line no-var\n var key = keys[i];\n if (!isEqual(a[key], b[key]))\n return false;\n }\n return true;\n }\n // true if both NaN, false otherwise\n // eslint-disable-next-line no-self-compare\n return a !== a && b !== b;\n}\nfunction isFile(a) {\n if (!isClient) {\n return false;\n }\n return a instanceof File;\n}\n\nfunction set(obj, key, val) {\n\tif (typeof val.value === 'object') val.value = klona(val.value);\n\tif (!val.enumerable || val.get || val.set || !val.configurable || !val.writable || key === '__proto__') {\n\t\tObject.defineProperty(obj, key, val);\n\t} else obj[key] = val.value;\n}\n\nfunction klona(x) {\n\tif (typeof x !== 'object') return x;\n\n\tvar i=0, k, list, tmp, str=Object.prototype.toString.call(x);\n\n\tif (str === '[object Object]') {\n\t\ttmp = Object.create(x.__proto__ || null);\n\t} else if (str === '[object Array]') {\n\t\ttmp = Array(x.length);\n\t} else if (str === '[object Set]') {\n\t\ttmp = new Set;\n\t\tx.forEach(function (val) {\n\t\t\ttmp.add(klona(val));\n\t\t});\n\t} else if (str === '[object Map]') {\n\t\ttmp = new Map;\n\t\tx.forEach(function (val, key) {\n\t\t\ttmp.set(klona(key), klona(val));\n\t\t});\n\t} else if (str === '[object Date]') {\n\t\ttmp = new Date(+x);\n\t} else if (str === '[object RegExp]') {\n\t\ttmp = new RegExp(x.source, x.flags);\n\t} else if (str === '[object DataView]') {\n\t\ttmp = new x.constructor( klona(x.buffer) );\n\t} else if (str === '[object ArrayBuffer]') {\n\t\ttmp = x.slice(0);\n\t} else if (str.slice(-6) === 'Array]') {\n\t\t// ArrayBuffer.isView(x)\n\t\t// ~> `new` bcuz `Buffer.slice` => ref\n\t\ttmp = new x.constructor(x);\n\t}\n\n\tif (tmp) {\n\t\tfor (list=Object.getOwnPropertySymbols(x); i < list.length; i++) {\n\t\t\tset(tmp, list[i], Object.getOwnPropertyDescriptor(x, list[i]));\n\t\t}\n\n\t\tfor (i=0, list=Object.getOwnPropertyNames(x); i < list.length; i++) {\n\t\t\tif (Object.hasOwnProperty.call(tmp, k=list[i]) && tmp[k] === x[k]) continue;\n\t\t\tset(tmp, k, Object.getOwnPropertyDescriptor(x, k));\n\t\t}\n\t}\n\n\treturn tmp || x;\n}\n\nfunction cleanupNonNestedPath(path) {\n if (isNotNestedPath(path)) {\n return path.replace(/\\[|\\]/gi, '');\n }\n return path;\n}\nfunction getFromPath(object, path, fallback) {\n if (!object) {\n return fallback;\n }\n if (isNotNestedPath(path)) {\n return object[cleanupNonNestedPath(path)];\n }\n const resolvedValue = (path || '')\n .split(/\\.|\\[(\\d+)\\]/)\n .filter(Boolean)\n .reduce((acc, propKey) => {\n if (isContainerValue(acc) && propKey in acc) {\n return acc[propKey];\n }\n return fallback;\n }, object);\n return resolvedValue;\n}\n/**\n * Sets a nested property value in a path, creates the path properties if it doesn't exist\n */\nfunction setInPath(object, path, value) {\n if (isNotNestedPath(path)) {\n object[cleanupNonNestedPath(path)] = value;\n return;\n }\n const keys = path.split(/\\.|\\[(\\d+)\\]/).filter(Boolean);\n let acc = object;\n for (let i = 0; i < keys.length; i++) {\n // Last key, set it\n if (i === keys.length - 1) {\n acc[keys[i]] = value;\n return;\n }\n // Key does not exist, create a container for it\n if (!(keys[i] in acc) || isNullOrUndefined(acc[keys[i]])) {\n // container can be either an object or an array depending on the next key if it exists\n acc[keys[i]] = isIndex(keys[i + 1]) ? [] : {};\n }\n acc = acc[keys[i]];\n }\n}\nfunction unset(object, key) {\n if (Array.isArray(object) && isIndex(key)) {\n object.splice(Number(key), 1);\n return;\n }\n if (isObject(object)) {\n delete object[key];\n }\n}\n/**\n * Removes a nested property from object\n */\nfunction unsetPath(object, path) {\n if (isNotNestedPath(path)) {\n delete object[cleanupNonNestedPath(path)];\n return;\n }\n const keys = path.split(/\\.|\\[(\\d+)\\]/).filter(Boolean);\n let acc = object;\n for (let i = 0; i < keys.length; i++) {\n // Last key, unset it\n if (i === keys.length - 1) {\n unset(acc, keys[i]);\n break;\n }\n // Key does not exist, exit\n if (!(keys[i] in acc) || isNullOrUndefined(acc[keys[i]])) {\n break;\n }\n acc = acc[keys[i]];\n }\n const pathValues = keys.map((_, idx) => {\n return getFromPath(object, keys.slice(0, idx).join('.'));\n });\n for (let i = pathValues.length - 1; i >= 0; i--) {\n if (!isEmptyContainer(pathValues[i])) {\n continue;\n }\n if (i === 0) {\n unset(object, keys[0]);\n continue;\n }\n unset(pathValues[i - 1], keys[i - 1]);\n }\n}\n/**\n * A typed version of Object.keys\n */\nfunction keysOf(record) {\n return Object.keys(record);\n}\n// Uses same component provide as its own injections\n// Due to changes in https://github.com/vuejs/vue-next/pull/2424\nfunction injectWithSelf(symbol, def = undefined) {\n const vm = getCurrentInstance();\n return (vm === null || vm === void 0 ? void 0 : vm.provides[symbol]) || inject(symbol, def);\n}\nfunction warn(message) {\n warn$1(`[vee-validate]: ${message}`);\n}\n/**\n * Ensures we deal with a singular field value\n */\nfunction normalizeField(field) {\n if (Array.isArray(field)) {\n return field[0];\n }\n return field;\n}\nfunction resolveNextCheckboxValue(currentValue, checkedValue, uncheckedValue) {\n if (Array.isArray(currentValue)) {\n const newVal = [...currentValue];\n // Use isEqual since checked object values can possibly fail the equality check #3883\n const idx = newVal.findIndex(v => isEqual(v, checkedValue));\n idx >= 0 ? newVal.splice(idx, 1) : newVal.push(checkedValue);\n return newVal;\n }\n return isEqual(currentValue, checkedValue) ? uncheckedValue : checkedValue;\n}\n/**\n * Creates a throttled function that only invokes the provided function (`func`) at most once per within a given number of milliseconds\n * (`limit`)\n */\nfunction throttle(func, limit) {\n let inThrottle;\n let lastResult;\n return function (...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this;\n if (!inThrottle) {\n inThrottle = true;\n setTimeout(() => (inThrottle = false), limit);\n lastResult = func.apply(context, args);\n }\n return lastResult;\n };\n}\nfunction debounceAsync(inner, ms = 0) {\n let timer = null;\n let resolves = [];\n return function (...args) {\n // Run the function after a certain amount of time\n if (timer) {\n window.clearTimeout(timer);\n }\n timer = window.setTimeout(() => {\n // Get the result of the inner function, then apply it to the resolve function of\n // each promise that has been created since the last time the inner function was run\n const result = inner(...args);\n resolves.forEach(r => r(result));\n resolves = [];\n }, ms);\n return new Promise(resolve => resolves.push(resolve));\n };\n}\nfunction applyModelModifiers(value, modifiers) {\n if (!isObject(modifiers)) {\n return value;\n }\n if (modifiers.number) {\n return toNumber(value);\n }\n return value;\n}\nfunction withLatest(fn, onDone) {\n let latestRun;\n return async function runLatest(...args) {\n const pending = fn(...args);\n latestRun = pending;\n const result = await pending;\n if (pending !== latestRun) {\n return result;\n }\n latestRun = undefined;\n onDone(result, args);\n return result;\n };\n}\nfunction computedDeep({ get, set }) {\n const baseRef = ref(klona(get()));\n watch(get, newValue => {\n if (isEqual(newValue, baseRef.value)) {\n return;\n }\n baseRef.value = klona(newValue);\n }, {\n deep: true,\n });\n watch(baseRef, newValue => {\n if (isEqual(newValue, get())) {\n return;\n }\n set(klona(newValue));\n }, {\n deep: true,\n });\n return baseRef;\n}\nfunction unravel(value) {\n if (isCallable(value)) {\n return value();\n }\n return unref(value);\n}\nfunction lazyToRef(value) {\n return computed(() => unravel(value));\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst normalizeChildren = (tag, context, slotProps) => {\n if (!context.slots.default) {\n return context.slots.default;\n }\n if (typeof tag === 'string' || !tag) {\n return context.slots.default(slotProps());\n }\n return {\n default: () => { var _a, _b; return (_b = (_a = context.slots).default) === null || _b === void 0 ? void 0 : _b.call(_a, slotProps()); },\n };\n};\n/**\n * Vue adds a `_value` prop at the moment on the input elements to store the REAL value on them, real values are different than the `value` attribute\n * as they do not get casted to strings unlike `el.value` which preserves user-code behavior\n */\nfunction getBoundValue(el) {\n if (hasValueBinding(el)) {\n return el._value;\n }\n return undefined;\n}\n/**\n * Vue adds a `_value` prop at the moment on the input elements to store the REAL value on them, real values are different than the `value` attribute\n * as they do not get casted to strings unlike `el.value` which preserves user-code behavior\n */\nfunction hasValueBinding(el) {\n return '_value' in el;\n}\n\nfunction normalizeEventValue(value) {\n if (!isEvent(value)) {\n return value;\n }\n const input = value.target;\n // Vue sets the current bound value on `_value` prop\n // for checkboxes it it should fetch the value binding type as is (boolean instead of string)\n if (hasCheckedAttr(input.type) && hasValueBinding(input)) {\n return getBoundValue(input);\n }\n if (input.type === 'file' && input.files) {\n const files = Array.from(input.files);\n return input.multiple ? files : files[0];\n }\n if (isNativeMultiSelect(input)) {\n return Array.from(input.options)\n .filter(opt => opt.selected && !opt.disabled)\n .map(getBoundValue);\n }\n // makes sure we get the actual `option` bound value\n // #3440\n if (isNativeSelect(input)) {\n const selectedOption = Array.from(input.options).find(opt => opt.selected);\n return selectedOption ? getBoundValue(selectedOption) : input.value;\n }\n return input.value;\n}\n\n/**\n * Normalizes the given rules expression.\n */\nfunction normalizeRules(rules) {\n const acc = {};\n Object.defineProperty(acc, '_$$isNormalized', {\n value: true,\n writable: false,\n enumerable: false,\n configurable: false,\n });\n if (!rules) {\n return acc;\n }\n // Object is already normalized, skip.\n if (isObject(rules) && rules._$$isNormalized) {\n return rules;\n }\n if (isObject(rules)) {\n return Object.keys(rules).reduce((prev, curr) => {\n const params = normalizeParams(rules[curr]);\n if (rules[curr] !== false) {\n prev[curr] = buildParams(params);\n }\n return prev;\n }, acc);\n }\n /* istanbul ignore if */\n if (typeof rules !== 'string') {\n return acc;\n }\n return rules.split('|').reduce((prev, rule) => {\n const parsedRule = parseRule(rule);\n if (!parsedRule.name) {\n return prev;\n }\n prev[parsedRule.name] = buildParams(parsedRule.params);\n return prev;\n }, acc);\n}\n/**\n * Normalizes a rule param.\n */\nfunction normalizeParams(params) {\n if (params === true) {\n return [];\n }\n if (Array.isArray(params)) {\n return params;\n }\n if (isObject(params)) {\n return params;\n }\n return [params];\n}\nfunction buildParams(provided) {\n const mapValueToLocator = (value) => {\n // A target param using interpolation\n if (typeof value === 'string' && value[0] === '@') {\n return createLocator(value.slice(1));\n }\n return value;\n };\n if (Array.isArray(provided)) {\n return provided.map(mapValueToLocator);\n }\n // #3073\n if (provided instanceof RegExp) {\n return [provided];\n }\n return Object.keys(provided).reduce((prev, key) => {\n prev[key] = mapValueToLocator(provided[key]);\n return prev;\n }, {});\n}\n/**\n * Parses a rule string expression.\n */\nconst parseRule = (rule) => {\n let params = [];\n const name = rule.split(':')[0];\n if (rule.includes(':')) {\n params = rule.split(':').slice(1).join(':').split(',');\n }\n return { name, params };\n};\nfunction createLocator(value) {\n const locator = (crossTable) => {\n const val = getFromPath(crossTable, value) || crossTable[value];\n return val;\n };\n locator.__locatorRef = value;\n return locator;\n}\nfunction extractLocators(params) {\n if (Array.isArray(params)) {\n return params.filter(isLocator);\n }\n return keysOf(params)\n .filter(key => isLocator(params[key]))\n .map(key => params[key]);\n}\n\nconst DEFAULT_CONFIG = {\n generateMessage: ({ field }) => `${field} is not valid.`,\n bails: true,\n validateOnBlur: true,\n validateOnChange: true,\n validateOnInput: false,\n validateOnModelUpdate: true,\n};\nlet currentConfig = Object.assign({}, DEFAULT_CONFIG);\nconst getConfig = () => currentConfig;\nconst setConfig = (newConf) => {\n currentConfig = Object.assign(Object.assign({}, currentConfig), newConf);\n};\nconst configure = setConfig;\n\n/**\n * Validates a value against the rules.\n */\nasync function validate(value, rules, options = {}) {\n const shouldBail = options === null || options === void 0 ? void 0 : options.bails;\n const field = {\n name: (options === null || options === void 0 ? void 0 : options.name) || '{field}',\n rules,\n label: options === null || options === void 0 ? void 0 : options.label,\n bails: shouldBail !== null && shouldBail !== void 0 ? shouldBail : true,\n formData: (options === null || options === void 0 ? void 0 : options.values) || {},\n };\n const result = await _validate(field, value);\n const errors = result.errors;\n return {\n errors,\n valid: !errors.length,\n };\n}\n/**\n * Starts the validation process.\n */\nasync function _validate(field, value) {\n if (isTypedSchema(field.rules) || isYupValidator(field.rules)) {\n return validateFieldWithTypedSchema(value, field.rules);\n }\n // if a generic function or chain of generic functions\n if (isCallable(field.rules) || Array.isArray(field.rules)) {\n const ctx = {\n field: field.label || field.name,\n name: field.name,\n label: field.label,\n form: field.formData,\n value,\n };\n // Normalize the pipeline\n const pipeline = Array.isArray(field.rules) ? field.rules : [field.rules];\n const length = pipeline.length;\n const errors = [];\n for (let i = 0; i < length; i++) {\n const rule = pipeline[i];\n const result = await rule(value, ctx);\n const isValid = typeof result !== 'string' && result;\n if (isValid) {\n continue;\n }\n const message = typeof result === 'string' ? result : _generateFieldError(ctx);\n errors.push(message);\n if (field.bails) {\n return {\n errors,\n };\n }\n }\n return {\n errors,\n };\n }\n const normalizedContext = Object.assign(Object.assign({}, field), { rules: normalizeRules(field.rules) });\n const errors = [];\n const rulesKeys = Object.keys(normalizedContext.rules);\n const length = rulesKeys.length;\n for (let i = 0; i < length; i++) {\n const rule = rulesKeys[i];\n const result = await _test(normalizedContext, value, {\n name: rule,\n params: normalizedContext.rules[rule],\n });\n if (result.error) {\n errors.push(result.error);\n if (field.bails) {\n return {\n errors,\n };\n }\n }\n }\n return {\n errors,\n };\n}\nfunction isYupError(err) {\n return !!err && err.name === 'ValidationError';\n}\nfunction yupToTypedSchema(yupSchema) {\n const schema = {\n __type: 'VVTypedSchema',\n async parse(values) {\n var _a;\n try {\n const output = await yupSchema.validate(values, { abortEarly: false });\n return {\n output,\n errors: [],\n };\n }\n catch (err) {\n // Yup errors have a name prop one them.\n // https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (!isYupError(err)) {\n throw err;\n }\n if (!((_a = err.inner) === null || _a === void 0 ? void 0 : _a.length) && err.errors.length) {\n return { errors: [{ path: err.path, errors: err.errors }] };\n }\n const errors = err.inner.reduce((acc, curr) => {\n const path = curr.path || '';\n if (!acc[path]) {\n acc[path] = { errors: [], path };\n }\n acc[path].errors.push(...curr.errors);\n return acc;\n }, {});\n return { errors: Object.values(errors) };\n }\n },\n };\n return schema;\n}\n/**\n * Handles yup validation\n */\nasync function validateFieldWithTypedSchema(value, schema) {\n const typedSchema = isTypedSchema(schema) ? schema : yupToTypedSchema(schema);\n const result = await typedSchema.parse(value);\n const messages = [];\n for (const error of result.errors) {\n if (error.errors.length) {\n messages.push(...error.errors);\n }\n }\n return {\n errors: messages,\n };\n}\n/**\n * Tests a single input value against a rule.\n */\nasync function _test(field, value, rule) {\n const validator = resolveRule(rule.name);\n if (!validator) {\n throw new Error(`No such validator '${rule.name}' exists.`);\n }\n const params = fillTargetValues(rule.params, field.formData);\n const ctx = {\n field: field.label || field.name,\n name: field.name,\n label: field.label,\n value,\n form: field.formData,\n rule: Object.assign(Object.assign({}, rule), { params }),\n };\n const result = await validator(value, params, ctx);\n if (typeof result === 'string') {\n return {\n error: result,\n };\n }\n return {\n error: result ? undefined : _generateFieldError(ctx),\n };\n}\n/**\n * Generates error messages.\n */\nfunction _generateFieldError(fieldCtx) {\n const message = getConfig().generateMessage;\n if (!message) {\n return 'Field is invalid';\n }\n return message(fieldCtx);\n}\nfunction fillTargetValues(params, crossTable) {\n const normalize = (value) => {\n if (isLocator(value)) {\n return value(crossTable);\n }\n return value;\n };\n if (Array.isArray(params)) {\n return params.map(normalize);\n }\n return Object.keys(params).reduce((acc, param) => {\n acc[param] = normalize(params[param]);\n return acc;\n }, {});\n}\nasync function validateTypedSchema(schema, values) {\n const typedSchema = isTypedSchema(schema) ? schema : yupToTypedSchema(schema);\n const validationResult = await typedSchema.parse(values);\n const results = {};\n const errors = {};\n for (const error of validationResult.errors) {\n const messages = error.errors;\n // Fixes issue with path mapping with Yup 1.0 including quotes around array indices\n const path = (error.path || '').replace(/\\[\"(\\d+)\"\\]/g, (_, m) => {\n return `[${m}]`;\n });\n results[path] = { valid: !messages.length, errors: messages };\n if (messages.length) {\n errors[path] = messages[0];\n }\n }\n return {\n valid: !validationResult.errors.length,\n results,\n errors,\n values: validationResult.value,\n };\n}\nasync function validateObjectSchema(schema, values, opts) {\n const paths = keysOf(schema);\n const validations = paths.map(async (path) => {\n var _a, _b, _c;\n const strings = (_a = opts === null || opts === void 0 ? void 0 : opts.names) === null || _a === void 0 ? void 0 : _a[path];\n const fieldResult = await validate(getFromPath(values, path), schema[path], {\n name: (strings === null || strings === void 0 ? void 0 : strings.name) || path,\n label: strings === null || strings === void 0 ? void 0 : strings.label,\n values: values,\n bails: (_c = (_b = opts === null || opts === void 0 ? void 0 : opts.bailsMap) === null || _b === void 0 ? void 0 : _b[path]) !== null && _c !== void 0 ? _c : true,\n });\n return Object.assign(Object.assign({}, fieldResult), { path });\n });\n let isAllValid = true;\n const validationResults = await Promise.all(validations);\n const results = {};\n const errors = {};\n for (const result of validationResults) {\n results[result.path] = {\n valid: result.valid,\n errors: result.errors,\n };\n if (!result.valid) {\n isAllValid = false;\n errors[result.path] = result.errors[0];\n }\n }\n return {\n valid: isAllValid,\n results,\n errors,\n };\n}\n\nlet ID_COUNTER = 0;\nfunction useFieldState(path, init) {\n const { value, initialValue, setInitialValue } = _useFieldValue(path, init.modelValue, init.form);\n const { errorMessage, errors, setErrors } = _useFieldErrors(path, init.form);\n const meta = _useFieldMeta(value, initialValue, errors);\n const id = ID_COUNTER >= Number.MAX_SAFE_INTEGER ? 0 : ++ID_COUNTER;\n function setState(state) {\n var _a;\n if ('value' in state) {\n value.value = state.value;\n }\n if ('errors' in state) {\n setErrors(state.errors);\n }\n if ('touched' in state) {\n meta.touched = (_a = state.touched) !== null && _a !== void 0 ? _a : meta.touched;\n }\n if ('initialValue' in state) {\n setInitialValue(state.initialValue);\n }\n }\n return {\n id,\n path,\n value,\n initialValue,\n meta,\n errors,\n errorMessage,\n setState,\n };\n}\n/**\n * Creates the field value and resolves the initial value\n */\nfunction _useFieldValue(path, modelValue, form) {\n const modelRef = ref(unref(modelValue));\n function resolveInitialValue() {\n if (!form) {\n return unref(modelRef);\n }\n return getFromPath(form.meta.value.initialValues, unref(path), unref(modelRef));\n }\n function setInitialValue(value) {\n if (!form) {\n modelRef.value = value;\n return;\n }\n form.stageInitialValue(unref(path), value, true);\n }\n const initialValue = computed(resolveInitialValue);\n // if no form is associated, use a regular ref.\n if (!form) {\n const value = ref(resolveInitialValue());\n return {\n value,\n initialValue,\n setInitialValue,\n };\n }\n // to set the initial value, first check if there is a current value, if there is then use it.\n // otherwise use the configured initial value if it exists.\n // prioritize model value over form values\n // #3429\n const currentValue = resolveModelValue(modelValue, form, initialValue, path);\n form.stageInitialValue(unref(path), currentValue, true);\n // otherwise use a computed setter that triggers the `setFieldValue`\n const value = computed({\n get() {\n return getFromPath(form.values, unref(path));\n },\n set(newVal) {\n form.setFieldValue(unref(path), newVal);\n },\n });\n return {\n value,\n initialValue,\n setInitialValue,\n };\n}\n/*\n to set the initial value, first check if there is a current value, if there is then use it.\n otherwise use the configured initial value if it exists.\n prioritize model value over form values\n #3429\n*/\nfunction resolveModelValue(modelValue, form, initialValue, path) {\n if (isRef(modelValue)) {\n return unref(modelValue);\n }\n if (modelValue !== undefined) {\n return modelValue;\n }\n return getFromPath(form.values, unref(path), unref(initialValue));\n}\n/**\n * Creates meta flags state and some associated effects with them\n */\nfunction _useFieldMeta(currentValue, initialValue, errors) {\n const meta = reactive({\n touched: false,\n pending: false,\n valid: true,\n validated: !!unref(errors).length,\n initialValue: computed(() => unref(initialValue)),\n dirty: computed(() => {\n return !isEqual(unref(currentValue), unref(initialValue));\n }),\n });\n watch(errors, value => {\n meta.valid = !value.length;\n }, {\n immediate: true,\n flush: 'sync',\n });\n return meta;\n}\n/**\n * Creates the error message state for the field state\n */\nfunction _useFieldErrors(path, form) {\n function normalizeErrors(messages) {\n if (!messages) {\n return [];\n }\n return Array.isArray(messages) ? messages : [messages];\n }\n if (!form) {\n const errors = ref([]);\n return {\n errors,\n errorMessage: computed(() => errors.value[0]),\n setErrors: (messages) => {\n errors.value = normalizeErrors(messages);\n },\n };\n }\n const errors = computed(() => form.errorBag.value[unref(path)] || []);\n return {\n errors,\n errorMessage: computed(() => errors.value[0]),\n setErrors: (messages) => {\n form.setFieldErrorBag(unref(path), normalizeErrors(messages));\n },\n };\n}\n\nfunction installDevtoolsPlugin(app) {\n if ((process.env.NODE_ENV !== 'production')) {\n setupDevtoolsPlugin({\n id: 'vee-validate-devtools-plugin',\n label: 'VeeValidate Plugin',\n packageName: 'vee-validate',\n homepage: 'https://vee-validate.logaretm.com/v4',\n app,\n logo: 'https://vee-validate.logaretm.com/v4/logo.png',\n }, setupApiHooks);\n }\n}\nconst DEVTOOLS_FORMS = {};\nconst DEVTOOLS_FIELDS = {};\nlet API;\nconst refreshInspector = throttle(() => {\n setTimeout(async () => {\n await nextTick();\n API === null || API === void 0 ? void 0 : API.sendInspectorState(INSPECTOR_ID);\n API === null || API === void 0 ? void 0 : API.sendInspectorTree(INSPECTOR_ID);\n }, 100);\n}, 100);\nfunction registerFormWithDevTools(form) {\n const vm = getCurrentInstance();\n if (!API) {\n const app = vm === null || vm === void 0 ? void 0 : vm.appContext.app;\n if (!app) {\n return;\n }\n installDevtoolsPlugin(app);\n }\n DEVTOOLS_FORMS[form.formId] = Object.assign({}, form);\n DEVTOOLS_FORMS[form.formId]._vm = vm;\n onUnmounted(() => {\n delete DEVTOOLS_FORMS[form.formId];\n refreshInspector();\n });\n refreshInspector();\n}\nfunction registerSingleFieldWithDevtools(field) {\n const vm = getCurrentInstance();\n if (!API) {\n const app = vm === null || vm === void 0 ? void 0 : vm.appContext.app;\n if (!app) {\n return;\n }\n installDevtoolsPlugin(app);\n }\n DEVTOOLS_FIELDS[field.id] = Object.assign({}, field);\n DEVTOOLS_FIELDS[field.id]._vm = vm;\n onUnmounted(() => {\n delete DEVTOOLS_FIELDS[field.id];\n refreshInspector();\n });\n refreshInspector();\n}\nconst INSPECTOR_ID = 'vee-validate-inspector';\nconst COLORS = {\n error: 0xbd4b4b,\n success: 0x06d77b,\n unknown: 0x54436b,\n white: 0xffffff,\n black: 0x000000,\n blue: 0x035397,\n purple: 0xb980f0,\n orange: 0xf5a962,\n gray: 0xbbbfca,\n};\nlet SELECTED_NODE = null;\nfunction setupApiHooks(api) {\n API = api;\n api.addInspector({\n id: INSPECTOR_ID,\n icon: 'rule',\n label: 'vee-validate',\n noSelectionText: 'Select a vee-validate node to inspect',\n actions: [\n {\n icon: 'done_outline',\n tooltip: 'Validate selected item',\n action: async () => {\n if (!SELECTED_NODE) {\n console.error('There is not a valid selected vee-validate node or component');\n return;\n }\n await SELECTED_NODE.validate();\n },\n },\n {\n icon: 'delete_sweep',\n tooltip: 'Clear validation state of the selected item',\n action: () => {\n if (!SELECTED_NODE) {\n console.error('There is not a valid selected vee-validate node or component');\n return;\n }\n if ('id' in SELECTED_NODE) {\n SELECTED_NODE.resetField();\n return;\n }\n SELECTED_NODE.resetForm();\n },\n },\n ],\n });\n api.on.getInspectorTree(payload => {\n if (payload.inspectorId !== INSPECTOR_ID) {\n return;\n }\n const forms = Object.values(DEVTOOLS_FORMS);\n const fields = Object.values(DEVTOOLS_FIELDS);\n payload.rootNodes = [\n ...forms.map(mapFormForDevtoolsInspector),\n ...fields.map(field => mapFieldForDevtoolsInspector(field)),\n ];\n });\n api.on.getInspectorState((payload, ctx) => {\n if (payload.inspectorId !== INSPECTOR_ID || ctx.currentTab !== `custom-inspector:${INSPECTOR_ID}`) {\n return;\n }\n const { form, field, type } = decodeNodeId(payload.nodeId);\n if (form && type === 'form') {\n payload.state = buildFormState(form);\n SELECTED_NODE = form;\n return;\n }\n if (field && type === 'field') {\n payload.state = buildFieldState(field);\n SELECTED_NODE = field;\n return;\n }\n SELECTED_NODE = null;\n });\n}\nfunction mapFormForDevtoolsInspector(form) {\n const { textColor, bgColor } = getTagTheme(form);\n const formTreeNodes = {};\n Object.values(form.fieldsByPath.value).forEach(field => {\n const fieldInstance = Array.isArray(field) ? field[0] : field;\n if (!fieldInstance) {\n return;\n }\n setInPath(formTreeNodes, unref(fieldInstance.name), mapFieldForDevtoolsInspector(fieldInstance, form));\n });\n function buildFormTree(tree, path = []) {\n const key = [...path].pop();\n if ('id' in tree) {\n return Object.assign(Object.assign({}, tree), { label: key || tree.label });\n }\n if (isObject(tree)) {\n return {\n id: `${path.join('.')}`,\n label: key || '',\n children: Object.keys(tree).map(key => buildFormTree(tree[key], [...path, key])),\n };\n }\n if (Array.isArray(tree)) {\n return {\n id: `${path.join('.')}`,\n label: `${key}[]`,\n children: tree.map((c, idx) => buildFormTree(c, [...path, String(idx)])),\n };\n }\n return { id: '', label: '', children: [] };\n }\n const { children } = buildFormTree(formTreeNodes);\n return {\n id: encodeNodeId(form),\n label: 'Form',\n children,\n tags: [\n {\n label: 'Form',\n textColor,\n backgroundColor: bgColor,\n },\n {\n label: `${Object.keys(form.fieldsByPath.value).length} fields`,\n textColor: COLORS.white,\n backgroundColor: COLORS.unknown,\n },\n ],\n };\n}\nfunction mapFieldForDevtoolsInspector(field, form) {\n const fieldInstance = normalizeField(field);\n const { textColor, bgColor } = getTagTheme(fieldInstance);\n const isGroup = Array.isArray(field) && field.length > 1;\n return {\n id: encodeNodeId(form, fieldInstance, !isGroup),\n label: unref(fieldInstance.name),\n children: Array.isArray(field) ? field.map(fieldItem => mapFieldForDevtoolsInspector(fieldItem, form)) : undefined,\n tags: [\n isGroup\n ? undefined\n : {\n label: 'Field',\n textColor,\n backgroundColor: bgColor,\n },\n !form\n ? {\n label: 'Standalone',\n textColor: COLORS.black,\n backgroundColor: COLORS.gray,\n }\n : undefined,\n !isGroup && fieldInstance.type === 'checkbox'\n ? {\n label: 'Checkbox',\n textColor: COLORS.white,\n backgroundColor: COLORS.blue,\n }\n : undefined,\n !isGroup && fieldInstance.type === 'radio'\n ? {\n label: 'Radio',\n textColor: COLORS.white,\n backgroundColor: COLORS.purple,\n }\n : undefined,\n isGroup\n ? {\n label: 'Group',\n textColor: COLORS.black,\n backgroundColor: COLORS.orange,\n }\n : undefined,\n ].filter(Boolean),\n };\n}\nfunction encodeNodeId(form, field, encodeIndex = true) {\n const fieldPath = form ? unref(field === null || field === void 0 ? void 0 : field.name) : field === null || field === void 0 ? void 0 : field.id;\n const fieldGroup = fieldPath ? form === null || form === void 0 ? void 0 : form.fieldsByPath.value[fieldPath] : undefined;\n let idx;\n if (encodeIndex && field && Array.isArray(fieldGroup)) {\n idx = fieldGroup.indexOf(field);\n }\n const idObject = { f: form === null || form === void 0 ? void 0 : form.formId, ff: fieldPath, idx, type: field ? 'field' : 'form' };\n return btoa(JSON.stringify(idObject));\n}\nfunction decodeNodeId(nodeId) {\n try {\n const idObject = JSON.parse(atob(nodeId));\n const form = DEVTOOLS_FORMS[idObject.f];\n if (!form && idObject.ff) {\n const field = DEVTOOLS_FIELDS[idObject.ff];\n if (!field) {\n return {};\n }\n return {\n type: idObject.type,\n field,\n };\n }\n if (!form) {\n return {};\n }\n const fieldGroup = form.fieldsByPath.value[idObject.ff];\n return {\n type: idObject.type,\n form,\n field: Array.isArray(fieldGroup) ? fieldGroup[idObject.idx || 0] : fieldGroup,\n };\n }\n catch (err) {\n // console.error(`Devtools: [vee-validate] Failed to parse node id ${nodeId}`);\n }\n return {};\n}\nfunction buildFieldState(field) {\n const { errors, meta, value } = field;\n return {\n 'Field state': [\n { key: 'errors', value: errors.value },\n {\n key: 'initialValue',\n value: meta.initialValue,\n },\n {\n key: 'currentValue',\n value: value.value,\n },\n {\n key: 'touched',\n value: meta.touched,\n },\n {\n key: 'dirty',\n value: meta.dirty,\n },\n {\n key: 'valid',\n value: meta.valid,\n },\n ],\n };\n}\nfunction buildFormState(form) {\n const { errorBag, meta, values, isSubmitting, submitCount } = form;\n return {\n 'Form state': [\n {\n key: 'submitCount',\n value: submitCount.value,\n },\n {\n key: 'isSubmitting',\n value: isSubmitting.value,\n },\n {\n key: 'touched',\n value: meta.value.touched,\n },\n {\n key: 'dirty',\n value: meta.value.dirty,\n },\n {\n key: 'valid',\n value: meta.value.valid,\n },\n {\n key: 'initialValues',\n value: meta.value.initialValues,\n },\n {\n key: 'currentValues',\n value: values,\n },\n {\n key: 'errors',\n value: keysOf(errorBag.value).reduce((acc, key) => {\n var _a;\n const message = (_a = errorBag.value[key]) === null || _a === void 0 ? void 0 : _a[0];\n if (message) {\n acc[key] = message;\n }\n return acc;\n }, {}),\n },\n ],\n };\n}\n/**\n * Resolves the tag color based on the form state\n */\nfunction getTagTheme(fieldOrForm) {\n // const fallbackColors = {\n // bgColor: COLORS.unknown,\n // textColor: COLORS.white,\n // };\n const isValid = 'id' in fieldOrForm ? fieldOrForm.meta.valid : fieldOrForm.meta.value.valid;\n return {\n bgColor: isValid ? COLORS.success : COLORS.error,\n textColor: isValid ? COLORS.black : COLORS.white,\n };\n}\n\n/**\n * Creates a field composite.\n */\nfunction useField(path, rules, opts) {\n if (hasCheckedAttr(opts === null || opts === void 0 ? void 0 : opts.type)) {\n return useCheckboxField(path, rules, opts);\n }\n return _useField(path, rules, opts);\n}\nfunction _useField(path, rules, opts) {\n const { initialValue: modelValue, validateOnMount, bails, type, checkedValue, label, validateOnValueUpdate, uncheckedValue, controlled, keepValueOnUnmount, modelPropName, syncVModel, form: controlForm, } = normalizeOptions(opts);\n const injectedForm = controlled ? injectWithSelf(FormContextKey) : undefined;\n const form = controlForm || injectedForm;\n const name = lazyToRef(path);\n // a flag indicating if the field is about to be removed/unmounted.\n let markedForRemoval = false;\n const { id, value, initialValue, meta, setState, errors, errorMessage } = useFieldState(name, {\n modelValue,\n form,\n });\n if (syncVModel) {\n useVModel({ value, prop: modelPropName, handleChange });\n }\n /**\n * Handles common onBlur meta update\n */\n const handleBlur = () => {\n meta.touched = true;\n };\n const normalizedRules = computed(() => {\n let rulesValue = unref(rules);\n const schema = unref(form === null || form === void 0 ? void 0 : form.schema);\n if (schema && !isYupValidator(schema) && !isTypedSchema(schema)) {\n rulesValue = extractRuleFromSchema(schema, unref(name)) || rulesValue;\n }\n if (isYupValidator(rulesValue) ||\n isTypedSchema(rulesValue) ||\n isCallable(rulesValue) ||\n Array.isArray(rulesValue)) {\n return rulesValue;\n }\n return normalizeRules(rulesValue);\n });\n async function validateCurrentValue(mode) {\n var _a, _b;\n if (form === null || form === void 0 ? void 0 : form.validateSchema) {\n return (_a = (await form.validateSchema(mode)).results[unref(name)]) !== null && _a !== void 0 ? _a : { valid: true, errors: [] };\n }\n return validate(value.value, normalizedRules.value, {\n name: unref(name),\n label: unref(label),\n values: (_b = form === null || form === void 0 ? void 0 : form.values) !== null && _b !== void 0 ? _b : {},\n bails,\n });\n }\n const validateWithStateMutation = withLatest(async () => {\n meta.pending = true;\n meta.validated = true;\n return validateCurrentValue('validated-only');\n }, result => {\n if (markedForRemoval) {\n result.valid = true;\n result.errors = [];\n }\n setState({ errors: result.errors });\n meta.pending = false;\n return result;\n });\n const validateValidStateOnly = withLatest(async () => {\n return validateCurrentValue('silent');\n }, result => {\n if (markedForRemoval) {\n result.valid = true;\n }\n meta.valid = result.valid;\n return result;\n });\n function validate$1(opts) {\n if ((opts === null || opts === void 0 ? void 0 : opts.mode) === 'silent') {\n return validateValidStateOnly();\n }\n return validateWithStateMutation();\n }\n // Common input/change event handler\n function handleChange(e, shouldValidate = true) {\n const newValue = normalizeEventValue(e);\n value.value = newValue;\n if (!validateOnValueUpdate && shouldValidate) {\n validateWithStateMutation();\n }\n }\n // Runs the initial validation\n onMounted(() => {\n if (validateOnMount) {\n return validateWithStateMutation();\n }\n // validate self initially if no form was handling this\n // forms should have their own initial silent validation run to make things more efficient\n if (!form || !form.validateSchema) {\n validateValidStateOnly();\n }\n });\n function setTouched(isTouched) {\n meta.touched = isTouched;\n }\n let unwatchValue;\n let lastWatchedValue = klona(value.value);\n function watchValue() {\n unwatchValue = watch(value, (val, oldVal) => {\n if (isEqual(val, oldVal) && isEqual(val, lastWatchedValue)) {\n return;\n }\n const validateFn = validateOnValueUpdate ? validateWithStateMutation : validateValidStateOnly;\n validateFn();\n lastWatchedValue = klona(val);\n }, {\n deep: true,\n });\n }\n watchValue();\n function resetField(state) {\n var _a;\n unwatchValue === null || unwatchValue === void 0 ? void 0 : unwatchValue();\n const newValue = state && 'value' in state ? state.value : initialValue.value;\n setState({\n value: klona(newValue),\n initialValue: klona(newValue),\n touched: (_a = state === null || state === void 0 ? void 0 : state.touched) !== null && _a !== void 0 ? _a : false,\n errors: (state === null || state === void 0 ? void 0 : state.errors) || [],\n });\n meta.pending = false;\n meta.validated = false;\n validateValidStateOnly();\n // need to watch at next tick to avoid triggering the value watcher\n nextTick(() => {\n watchValue();\n });\n }\n function setValue(newValue) {\n value.value = newValue;\n }\n function setErrors(errors) {\n setState({ errors: Array.isArray(errors) ? errors : [errors] });\n }\n const field = {\n id,\n name,\n label,\n value,\n meta,\n errors,\n errorMessage,\n type,\n checkedValue,\n uncheckedValue,\n bails,\n keepValueOnUnmount,\n resetField,\n handleReset: () => resetField(),\n validate: validate$1,\n handleChange,\n handleBlur,\n setState,\n setTouched,\n setErrors,\n setValue,\n };\n provide(FieldContextKey, field);\n if (isRef(rules) && typeof unref(rules) !== 'function') {\n watch(rules, (value, oldValue) => {\n if (isEqual(value, oldValue)) {\n return;\n }\n meta.validated ? validateWithStateMutation() : validateValidStateOnly();\n }, {\n deep: true,\n });\n }\n if ((process.env.NODE_ENV !== 'production')) {\n field._vm = getCurrentInstance();\n watch(() => (Object.assign(Object.assign({ errors: errors.value }, meta), { value: value.value })), refreshInspector, {\n deep: true,\n });\n if (!form) {\n registerSingleFieldWithDevtools(field);\n }\n }\n // if no associated form return the field API immediately\n if (!form) {\n return field;\n }\n // associate the field with the given form\n form.register(field);\n onBeforeUnmount(() => {\n markedForRemoval = true;\n form.unregister(field);\n });\n // extract cross-field dependencies in a computed prop\n const dependencies = computed(() => {\n const rulesVal = normalizedRules.value;\n // is falsy, a function schema or a yup schema\n if (!rulesVal ||\n isCallable(rulesVal) ||\n isYupValidator(rulesVal) ||\n isTypedSchema(rulesVal) ||\n Array.isArray(rulesVal)) {\n return {};\n }\n return Object.keys(rulesVal).reduce((acc, rule) => {\n const deps = extractLocators(rulesVal[rule])\n .map((dep) => dep.__locatorRef)\n .reduce((depAcc, depName) => {\n const depValue = getFromPath(form.values, depName) || form.values[depName];\n if (depValue !== undefined) {\n depAcc[depName] = depValue;\n }\n return depAcc;\n }, {});\n Object.assign(acc, deps);\n return acc;\n }, {});\n });\n // Adds a watcher that runs the validation whenever field dependencies change\n watch(dependencies, (deps, oldDeps) => {\n // Skip if no dependencies or if the field wasn't manipulated\n if (!Object.keys(deps).length) {\n return;\n }\n const shouldValidate = !isEqual(deps, oldDeps);\n if (shouldValidate) {\n meta.validated ? validateWithStateMutation() : validateValidStateOnly();\n }\n });\n return field;\n}\n/**\n * Normalizes partial field options to include the full options\n */\nfunction normalizeOptions(opts) {\n var _a;\n const defaults = () => ({\n initialValue: undefined,\n validateOnMount: false,\n bails: true,\n label: undefined,\n validateOnValueUpdate: true,\n keepValueOnUnmount: undefined,\n modelPropName: 'modelValue',\n syncVModel: true,\n controlled: true,\n });\n const isVModelSynced = (_a = opts === null || opts === void 0 ? void 0 : opts.syncVModel) !== null && _a !== void 0 ? _a : true;\n const initialValue = isVModelSynced && !('initialValue' in (opts || {}))\n ? getCurrentModelValue(getCurrentInstance(), (opts === null || opts === void 0 ? void 0 : opts.modelPropName) || 'modelValue')\n : opts === null || opts === void 0 ? void 0 : opts.initialValue;\n if (!opts) {\n return Object.assign(Object.assign({}, defaults()), { initialValue });\n }\n // TODO: Deprecate this in next major release\n const checkedValue = 'valueProp' in opts ? opts.valueProp : opts.checkedValue;\n const controlled = 'standalone' in opts ? !opts.standalone : opts.controlled;\n return Object.assign(Object.assign(Object.assign({}, defaults()), (opts || {})), { initialValue, controlled: controlled !== null && controlled !== void 0 ? controlled : true, checkedValue });\n}\n/**\n * Extracts the validation rules from a schema\n */\nfunction extractRuleFromSchema(schema, fieldName) {\n // no schema at all\n if (!schema) {\n return undefined;\n }\n // there is a key on the schema object for this field\n return schema[fieldName];\n}\nfunction useCheckboxField(name, rules, opts) {\n const form = !(opts === null || opts === void 0 ? void 0 : opts.standalone) ? injectWithSelf(FormContextKey) : undefined;\n const checkedValue = opts === null || opts === void 0 ? void 0 : opts.checkedValue;\n const uncheckedValue = opts === null || opts === void 0 ? void 0 : opts.uncheckedValue;\n function patchCheckboxApi(field) {\n const handleChange = field.handleChange;\n const checked = computed(() => {\n const currentValue = unref(field.value);\n const checkedVal = unref(checkedValue);\n return Array.isArray(currentValue)\n ? currentValue.findIndex(v => isEqual(v, checkedVal)) >= 0\n : isEqual(checkedVal, currentValue);\n });\n function handleCheckboxChange(e, shouldValidate = true) {\n var _a;\n if (checked.value === ((_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.checked)) {\n if (shouldValidate) {\n field.validate();\n }\n return;\n }\n let newValue = normalizeEventValue(e);\n // Single checkbox field without a form to toggle it's value\n if (!form) {\n newValue = resolveNextCheckboxValue(unref(field.value), unref(checkedValue), unref(uncheckedValue));\n }\n handleChange(newValue, shouldValidate);\n }\n return Object.assign(Object.assign({}, field), { checked,\n checkedValue,\n uncheckedValue, handleChange: handleCheckboxChange });\n }\n return patchCheckboxApi(_useField(name, rules, opts));\n}\nfunction useVModel({ prop, value, handleChange }) {\n const vm = getCurrentInstance();\n /* istanbul ignore next */\n if (!vm) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn('Failed to setup model events because `useField` was not called in setup.');\n }\n return;\n }\n const propName = prop || 'modelValue';\n const emitName = `update:${propName}`;\n // Component doesn't have a model prop setup (must be defined on the props)\n if (!(propName in vm.props)) {\n return;\n }\n watch(value, newValue => {\n if (isEqual(newValue, getCurrentModelValue(vm, propName))) {\n return;\n }\n vm.emit(emitName, newValue);\n });\n watch(() => getCurrentModelValue(vm, propName), propValue => {\n if (propValue === IS_ABSENT && value.value === undefined) {\n return;\n }\n const newValue = propValue === IS_ABSENT ? undefined : propValue;\n if (isEqual(newValue, applyModelModifiers(value.value, vm.props.modelModifiers))) {\n return;\n }\n handleChange(newValue);\n });\n}\nfunction getCurrentModelValue(vm, propName) {\n if (!vm) {\n return undefined;\n }\n return vm.props[propName];\n}\n\nconst FieldImpl = defineComponent({\n name: 'Field',\n inheritAttrs: false,\n props: {\n as: {\n type: [String, Object],\n default: undefined,\n },\n name: {\n type: String,\n required: true,\n },\n rules: {\n type: [Object, String, Function],\n default: undefined,\n },\n validateOnMount: {\n type: Boolean,\n default: false,\n },\n validateOnBlur: {\n type: Boolean,\n default: undefined,\n },\n validateOnChange: {\n type: Boolean,\n default: undefined,\n },\n validateOnInput: {\n type: Boolean,\n default: undefined,\n },\n validateOnModelUpdate: {\n type: Boolean,\n default: undefined,\n },\n bails: {\n type: Boolean,\n default: () => getConfig().bails,\n },\n label: {\n type: String,\n default: undefined,\n },\n uncheckedValue: {\n type: null,\n default: undefined,\n },\n modelValue: {\n type: null,\n default: IS_ABSENT,\n },\n modelModifiers: {\n type: null,\n default: () => ({}),\n },\n 'onUpdate:modelValue': {\n type: null,\n default: undefined,\n },\n standalone: {\n type: Boolean,\n default: false,\n },\n keepValue: {\n type: Boolean,\n default: undefined,\n },\n },\n setup(props, ctx) {\n const rules = toRef(props, 'rules');\n const name = toRef(props, 'name');\n const label = toRef(props, 'label');\n const uncheckedValue = toRef(props, 'uncheckedValue');\n const keepValue = toRef(props, 'keepValue');\n const { errors, value, errorMessage, validate: validateField, handleChange, handleBlur, setTouched, resetField, handleReset, meta, checked, setErrors, } = useField(name, rules, {\n validateOnMount: props.validateOnMount,\n bails: props.bails,\n standalone: props.standalone,\n type: ctx.attrs.type,\n initialValue: resolveInitialValue(props, ctx),\n // Only for checkboxes and radio buttons\n checkedValue: ctx.attrs.value,\n uncheckedValue,\n label,\n validateOnValueUpdate: false,\n keepValueOnUnmount: keepValue,\n });\n // If there is a v-model applied on the component we need to emit the `update:modelValue` whenever the value binding changes\n const onChangeHandler = function handleChangeWithModel(e, shouldValidate = true) {\n handleChange(e, shouldValidate);\n ctx.emit('update:modelValue', value.value);\n };\n const handleInput = (e) => {\n if (!hasCheckedAttr(ctx.attrs.type)) {\n value.value = normalizeEventValue(e);\n }\n };\n const onInputHandler = function handleInputWithModel(e) {\n handleInput(e);\n ctx.emit('update:modelValue', value.value);\n };\n const fieldProps = computed(() => {\n const { validateOnInput, validateOnChange, validateOnBlur, validateOnModelUpdate } = resolveValidationTriggers(props);\n const baseOnBlur = [handleBlur, ctx.attrs.onBlur, validateOnBlur ? validateField : undefined].filter(Boolean);\n const baseOnInput = [(e) => onChangeHandler(e, validateOnInput), ctx.attrs.onInput].filter(Boolean);\n const baseOnChange = [(e) => onChangeHandler(e, validateOnChange), ctx.attrs.onChange].filter(Boolean);\n const attrs = {\n name: props.name,\n onBlur: baseOnBlur,\n onInput: baseOnInput,\n onChange: baseOnChange,\n };\n attrs['onUpdate:modelValue'] = e => onChangeHandler(e, validateOnModelUpdate);\n if (hasCheckedAttr(ctx.attrs.type) && checked) {\n attrs.checked = checked.value;\n }\n const tag = resolveTag(props, ctx);\n if (shouldHaveValueBinding(tag, ctx.attrs)) {\n attrs.value = value.value;\n }\n return attrs;\n });\n function slotProps() {\n return {\n field: fieldProps.value,\n value: value.value,\n meta,\n errors: errors.value,\n errorMessage: errorMessage.value,\n validate: validateField,\n resetField,\n handleChange: onChangeHandler,\n handleInput: onInputHandler,\n handleReset,\n handleBlur,\n setTouched,\n setErrors,\n };\n }\n ctx.expose({\n setErrors,\n setTouched,\n reset: resetField,\n validate: validateField,\n handleChange,\n });\n return () => {\n const tag = resolveDynamicComponent(resolveTag(props, ctx));\n const children = normalizeChildren(tag, ctx, slotProps);\n if (tag) {\n return h(tag, Object.assign(Object.assign({}, ctx.attrs), fieldProps.value), children);\n }\n return children;\n };\n },\n});\nfunction resolveTag(props, ctx) {\n let tag = props.as || '';\n if (!props.as && !ctx.slots.default) {\n tag = 'input';\n }\n return tag;\n}\nfunction resolveValidationTriggers(props) {\n var _a, _b, _c, _d;\n const { validateOnInput, validateOnChange, validateOnBlur, validateOnModelUpdate } = getConfig();\n return {\n validateOnInput: (_a = props.validateOnInput) !== null && _a !== void 0 ? _a : validateOnInput,\n validateOnChange: (_b = props.validateOnChange) !== null && _b !== void 0 ? _b : validateOnChange,\n validateOnBlur: (_c = props.validateOnBlur) !== null && _c !== void 0 ? _c : validateOnBlur,\n validateOnModelUpdate: (_d = props.validateOnModelUpdate) !== null && _d !== void 0 ? _d : validateOnModelUpdate,\n };\n}\nfunction resolveInitialValue(props, ctx) {\n // Gets the initial value either from `value` prop/attr or `v-model` binding (modelValue)\n // For checkboxes and radio buttons it will always be the model value not the `value` attribute\n if (!hasCheckedAttr(ctx.attrs.type)) {\n return isPropPresent(props, 'modelValue') ? props.modelValue : ctx.attrs.value;\n }\n return isPropPresent(props, 'modelValue') ? props.modelValue : undefined;\n}\nconst Field = FieldImpl;\n\nlet FORM_COUNTER = 0;\nfunction resolveInitialValues(opts) {\n const providedValues = unref(opts === null || opts === void 0 ? void 0 : opts.initialValues) || {};\n const schema = unref(opts === null || opts === void 0 ? void 0 : opts.validationSchema);\n if (schema && isTypedSchema(schema) && isCallable(schema.cast)) {\n return klona(schema.cast(providedValues) || {});\n }\n return klona(providedValues);\n}\nfunction useForm(opts) {\n var _a;\n const formId = FORM_COUNTER++;\n const controlledModelPaths = new Set();\n // Prevents fields from double resetting their values, which causes checkboxes to toggle their initial value\n // TODO: This won't be needed if we centralize all the state inside the `form` for form inputs\n let RESET_LOCK = false;\n // A lookup containing fields or field groups\n const fieldsByPath = ref({});\n // If the form is currently submitting\n const isSubmitting = ref(false);\n // The number of times the user tried to submit the form\n const submitCount = ref(0);\n // field arrays managed by this form\n const fieldArrays = [];\n // a private ref for all form values\n const formValues = reactive(resolveInitialValues(opts));\n // the source of errors for the form fields\n const { errorBag, setErrorBag, setFieldErrorBag } = useErrorBag(opts === null || opts === void 0 ? void 0 : opts.initialErrors);\n // Gets the first error of each field\n const errors = computed(() => {\n return keysOf(errorBag.value).reduce((acc, key) => {\n const bag = errorBag.value[key];\n if (bag && bag.length) {\n acc[key] = bag[0];\n }\n return acc;\n }, {});\n });\n function getFirstFieldAtPath(path) {\n const fieldOrGroup = fieldsByPath.value[path];\n return Array.isArray(fieldOrGroup) ? fieldOrGroup[0] : fieldOrGroup;\n }\n function fieldExists(path) {\n return !!fieldsByPath.value[path];\n }\n /**\n * Holds a computed reference to all fields names and labels\n */\n const fieldNames = computed(() => {\n return keysOf(fieldsByPath.value).reduce((names, path) => {\n const field = getFirstFieldAtPath(path);\n if (field) {\n names[path] = { name: unref(field.name) || '', label: unref(field.label) || '' };\n }\n return names;\n }, {});\n });\n const fieldBailsMap = computed(() => {\n return keysOf(fieldsByPath.value).reduce((map, path) => {\n var _a;\n const field = getFirstFieldAtPath(path);\n if (field) {\n map[path] = (_a = field.bails) !== null && _a !== void 0 ? _a : true;\n }\n return map;\n }, {});\n });\n // mutable non-reactive reference to initial errors\n // we need this to process initial errors then unset them\n const initialErrors = Object.assign({}, ((opts === null || opts === void 0 ? void 0 : opts.initialErrors) || {}));\n const keepValuesOnUnmount = (_a = opts === null || opts === void 0 ? void 0 : opts.keepValuesOnUnmount) !== null && _a !== void 0 ? _a : false;\n // initial form values\n const { initialValues, originalInitialValues, setInitialValues } = useFormInitialValues(fieldsByPath, formValues, opts);\n // form meta aggregations\n const meta = useFormMeta(fieldsByPath, formValues, originalInitialValues, errors);\n const controlledValues = computed(() => {\n return [...controlledModelPaths, ...keysOf(fieldsByPath.value)].reduce((acc, path) => {\n const value = getFromPath(formValues, path);\n setInPath(acc, path, value);\n return acc;\n }, {});\n });\n const schema = opts === null || opts === void 0 ? void 0 : opts.validationSchema;\n /**\n * Batches validation runs in 5ms batches\n * Must have two distinct batch queues to make sure they don't override each other settings #3783\n */\n const debouncedSilentValidation = debounceAsync(_validateSchema, 5);\n const debouncedValidation = debounceAsync(_validateSchema, 5);\n const validateSchema = withLatest(async (mode) => {\n return (await mode) === 'silent' ? debouncedSilentValidation() : debouncedValidation();\n }, (formResult, [mode]) => {\n // fields by id lookup\n const fieldsById = formCtx.fieldsByPath.value || {};\n // errors fields names, we need it to also check if custom errors are updated\n const currentErrorsPaths = keysOf(formCtx.errorBag.value);\n // collect all the keys from the schema and all fields\n // this ensures we have a complete keymap of all the fields\n const paths = [\n ...new Set([...keysOf(formResult.results), ...keysOf(fieldsById), ...currentErrorsPaths]),\n ];\n // aggregates the paths into a single result object while applying the results on the fields\n return paths.reduce((validation, path) => {\n const field = fieldsById[path];\n const messages = (formResult.results[path] || { errors: [] }).errors;\n const fieldResult = {\n errors: messages,\n valid: !messages.length,\n };\n validation.results[path] = fieldResult;\n if (!fieldResult.valid) {\n validation.errors[path] = fieldResult.errors[0];\n }\n // field not rendered\n if (!field) {\n setFieldError(path, messages);\n return validation;\n }\n // always update the valid flag regardless of the mode\n applyFieldMutation(field, f => (f.meta.valid = fieldResult.valid));\n if (mode === 'silent') {\n return validation;\n }\n const wasValidated = Array.isArray(field) ? field.some(f => f.meta.validated) : field.meta.validated;\n if (mode === 'validated-only' && !wasValidated) {\n return validation;\n }\n applyFieldMutation(field, f => f.setState({ errors: fieldResult.errors }));\n return validation;\n }, { valid: formResult.valid, results: {}, errors: {} });\n });\n function makeSubmissionFactory(onlyControlled) {\n return function submitHandlerFactory(fn, onValidationError) {\n return function submissionHandler(e) {\n if (e instanceof Event) {\n e.preventDefault();\n e.stopPropagation();\n }\n // Touch all fields\n setTouched(keysOf(fieldsByPath.value).reduce((acc, field) => {\n acc[field] = true;\n return acc;\n }, {}));\n isSubmitting.value = true;\n submitCount.value++;\n return validate()\n .then(result => {\n const values = klona(formValues);\n if (result.valid && typeof fn === 'function') {\n const controlled = klona(controlledValues.value);\n let submittedValues = onlyControlled ? controlled : values;\n if (result.values) {\n submittedValues = result.values;\n }\n return fn(submittedValues, {\n evt: e,\n controlledValues: controlled,\n setErrors,\n setFieldError,\n setTouched,\n setFieldTouched,\n setValues,\n setFieldValue,\n resetForm,\n resetField,\n });\n }\n if (!result.valid && typeof onValidationError === 'function') {\n onValidationError({\n values,\n evt: e,\n errors: result.errors,\n results: result.results,\n });\n }\n })\n .then(returnVal => {\n isSubmitting.value = false;\n return returnVal;\n }, err => {\n isSubmitting.value = false;\n // re-throw the err so it doesn't go silent\n throw err;\n });\n };\n };\n }\n const handleSubmitImpl = makeSubmissionFactory(false);\n const handleSubmit = handleSubmitImpl;\n handleSubmit.withControlled = makeSubmissionFactory(true);\n const formCtx = {\n formId,\n fieldsByPath,\n values: formValues,\n controlledValues,\n errorBag,\n errors,\n schema,\n submitCount,\n meta,\n isSubmitting,\n fieldArrays,\n keepValuesOnUnmount,\n validateSchema: unref(schema) ? validateSchema : undefined,\n validate,\n register: registerField,\n unregister: unregisterField,\n setFieldErrorBag,\n validateField,\n setFieldValue,\n setValues,\n setErrors,\n setFieldError,\n setFieldTouched,\n setTouched,\n resetForm,\n resetField,\n handleSubmit,\n stageInitialValue,\n unsetInitialValue,\n setFieldInitialValue,\n useFieldModel,\n };\n function isFieldGroup(fieldOrGroup) {\n return Array.isArray(fieldOrGroup);\n }\n function applyFieldMutation(fieldOrGroup, mutation) {\n if (Array.isArray(fieldOrGroup)) {\n return fieldOrGroup.forEach(mutation);\n }\n return mutation(fieldOrGroup);\n }\n function mutateAllFields(mutation) {\n Object.values(fieldsByPath.value).forEach(field => {\n if (!field) {\n return;\n }\n // avoid resetting the field values, because they should've been reset already.\n applyFieldMutation(field, mutation);\n });\n }\n /**\n * Manually sets an error message on a specific field\n */\n function setFieldError(field, message) {\n setFieldErrorBag(field, message);\n }\n /**\n * Sets errors for the fields specified in the object\n */\n function setErrors(fields) {\n setErrorBag(fields);\n }\n /**\n * Sets a single field value\n */\n function setFieldValue(field, value, { force } = { force: false }) {\n var _a;\n const fieldInstance = fieldsByPath.value[field];\n const clonedValue = klona(value);\n // field wasn't found, create a virtual field as a placeholder\n if (!fieldInstance) {\n setInPath(formValues, field, clonedValue);\n return;\n }\n if (isFieldGroup(fieldInstance) && ((_a = fieldInstance[0]) === null || _a === void 0 ? void 0 : _a.type) === 'checkbox' && !Array.isArray(value)) {\n // Multiple checkboxes, and only one of them got updated\n const newValue = klona(resolveNextCheckboxValue(getFromPath(formValues, field) || [], value, undefined));\n setInPath(formValues, field, newValue);\n return;\n }\n let newValue = clonedValue;\n // Single Checkbox: toggles the field value unless the field is being reset then force it\n if (!isFieldGroup(fieldInstance) && fieldInstance.type === 'checkbox' && !force && !RESET_LOCK) {\n newValue = klona(resolveNextCheckboxValue(getFromPath(formValues, field), value, unref(fieldInstance.uncheckedValue)));\n }\n setInPath(formValues, field, newValue);\n }\n /**\n * Sets multiple fields values\n */\n function setValues(fields) {\n // clean up old values\n keysOf(formValues).forEach(key => {\n delete formValues[key];\n });\n // set up new values\n keysOf(fields).forEach(path => {\n setFieldValue(path, fields[path]);\n });\n // regenerate the arrays when the form values change\n fieldArrays.forEach(f => f && f.reset());\n }\n function createModel(path) {\n const { value } = _useFieldValue(path, undefined, formCtx);\n watch(value, () => {\n if (!fieldExists(unref(path))) {\n validate({ mode: 'validated-only' });\n }\n }, {\n deep: true,\n });\n controlledModelPaths.add(unref(path));\n return value;\n }\n function useFieldModel(path) {\n if (!Array.isArray(path)) {\n return createModel(path);\n }\n return path.map(createModel);\n }\n /**\n * Sets the touched meta state on a field\n */\n function setFieldTouched(field, isTouched) {\n const fieldInstance = fieldsByPath.value[field];\n if (fieldInstance) {\n applyFieldMutation(fieldInstance, f => f.setTouched(isTouched));\n }\n }\n /**\n * Sets the touched meta state on multiple fields\n */\n function setTouched(fields) {\n keysOf(fields).forEach(field => {\n setFieldTouched(field, !!fields[field]);\n });\n }\n function resetField(field, state) {\n const fieldInstance = fieldsByPath.value[field];\n if (fieldInstance) {\n applyFieldMutation(fieldInstance, f => f.resetField(state));\n }\n }\n /**\n * Resets all fields\n */\n function resetForm(state) {\n RESET_LOCK = true;\n // Reset all field states first\n mutateAllFields(f => f.resetField());\n // reset values\n const newValues = (state === null || state === void 0 ? void 0 : state.values) ? state.values : originalInitialValues.value;\n setInitialValues(newValues);\n setValues(newValues);\n if (state === null || state === void 0 ? void 0 : state.touched) {\n setTouched(state.touched);\n }\n setErrors((state === null || state === void 0 ? void 0 : state.errors) || {});\n submitCount.value = (state === null || state === void 0 ? void 0 : state.submitCount) || 0;\n nextTick(() => {\n RESET_LOCK = false;\n });\n }\n function insertFieldAtPath(field, path) {\n const rawField = markRaw(field);\n const fieldPath = path;\n // first field at that path\n if (!fieldsByPath.value[fieldPath]) {\n fieldsByPath.value[fieldPath] = rawField;\n return;\n }\n const fieldAtPath = fieldsByPath.value[fieldPath];\n if (fieldAtPath && !Array.isArray(fieldAtPath)) {\n fieldsByPath.value[fieldPath] = [fieldAtPath];\n }\n // add the new array to that path\n fieldsByPath.value[fieldPath] = [...fieldsByPath.value[fieldPath], rawField];\n }\n function removeFieldFromPath(field, path) {\n const fieldPath = path;\n const fieldAtPath = fieldsByPath.value[fieldPath];\n if (!fieldAtPath) {\n return;\n }\n // same field at path\n if (!isFieldGroup(fieldAtPath) && field.id === fieldAtPath.id) {\n delete fieldsByPath.value[fieldPath];\n return;\n }\n if (isFieldGroup(fieldAtPath)) {\n const idx = fieldAtPath.findIndex(f => f.id === field.id);\n if (idx === -1) {\n return;\n }\n fieldAtPath.splice(idx, 1);\n if (!fieldAtPath.length) {\n delete fieldsByPath.value[fieldPath];\n }\n }\n }\n function registerField(field) {\n const fieldPath = unref(field.name);\n insertFieldAtPath(field, fieldPath);\n if (isRef(field.name)) {\n // ensures when a field's name was already taken that it preserves its same value\n // necessary for fields generated by loops\n watch(field.name, async (newPath, oldPath) => {\n // cache the value\n await nextTick();\n removeFieldFromPath(field, oldPath);\n insertFieldAtPath(field, newPath);\n // re-validate if either path had errors before\n if (errors.value[oldPath] || errors.value[newPath]) {\n // clear up both paths errors\n setFieldError(oldPath, undefined);\n validateField(newPath);\n }\n // clean up the old path if no other field is sharing that name\n // #3325\n await nextTick();\n if (!fieldExists(oldPath)) {\n unsetPath(formValues, oldPath);\n }\n });\n }\n // if field already had errors (initial errors) that's not user-set, validate it again to ensure state is correct\n // the difference being that `initialErrors` will contain the error message while other errors (pre-validated schema) won't have them as initial errors\n // #3342\n const initialErrorMessage = unref(field.errorMessage);\n if (initialErrorMessage && (initialErrors === null || initialErrors === void 0 ? void 0 : initialErrors[fieldPath]) !== initialErrorMessage) {\n validateField(fieldPath);\n }\n // marks the initial error as \"consumed\" so it won't be matched later with same non-initial error\n delete initialErrors[fieldPath];\n }\n function unregisterField(field) {\n const fieldName = unref(field.name);\n const fieldInstance = fieldsByPath.value[fieldName];\n const isGroup = !!fieldInstance && isFieldGroup(fieldInstance);\n removeFieldFromPath(field, fieldName);\n // clears a field error on unmounted\n // we wait till next tick to make sure if the field is completely removed and doesn't have any siblings like checkboxes\n nextTick(() => {\n var _a;\n const shouldKeepValue = (_a = unref(field.keepValueOnUnmount)) !== null && _a !== void 0 ? _a : unref(keepValuesOnUnmount);\n const currentGroupValue = getFromPath(formValues, fieldName);\n // The boolean here is we check if the field still belongs to the same control group with that name\n // if another group claimed the name, we should avoid handling it since it is no longer the same group\n // this happens with `v-for` over some checkboxes and field arrays.\n // also if the group no longer exist we can assume this group was the last one that controlled it\n const isSameGroup = isGroup && (fieldInstance === fieldsByPath.value[fieldName] || !fieldsByPath.value[fieldName]);\n // group field that still has a dangling value, the field may exist or not after it was removed.\n // This used to be handled in the useField composable but the form has better context on when it should/not happen.\n // if it does belong to it that means the group still exists\n // #3844\n if (isSameGroup && !shouldKeepValue) {\n if (Array.isArray(currentGroupValue)) {\n const valueIdx = currentGroupValue.findIndex(i => isEqual(i, unref(field.checkedValue)));\n if (valueIdx > -1) {\n const newVal = [...currentGroupValue];\n newVal.splice(valueIdx, 1);\n setFieldValue(fieldName, newVal, { force: true });\n }\n }\n else if (currentGroupValue === unref(field.checkedValue)) {\n // Remove field if it is a group but does not have an array value, like for radio inputs #3963\n unsetPath(formValues, fieldName);\n }\n }\n // Field was removed entirely, we should unset its path\n // #3384\n if (!fieldExists(fieldName)) {\n setFieldError(fieldName, undefined);\n // Checks if the field was configured to be unset during unmount or not\n // Checks both the form-level config and field-level one\n // Field has the priority if it is set, otherwise it goes to the form settings\n if (shouldKeepValue) {\n return;\n }\n // Don't apply emptyContainer check unless the current group value is an array\n if (isGroup && Array.isArray(currentGroupValue) && !isEmptyContainer(currentGroupValue)) {\n return;\n }\n unsetPath(formValues, fieldName);\n }\n });\n }\n async function validate(opts) {\n const mode = (opts === null || opts === void 0 ? void 0 : opts.mode) || 'force';\n if (mode === 'force') {\n mutateAllFields(f => (f.meta.validated = true));\n }\n if (formCtx.validateSchema) {\n return formCtx.validateSchema(mode);\n }\n // No schema, each field is responsible to validate itself\n const validations = await Promise.all(Object.values(fieldsByPath.value).map(field => {\n const fieldInstance = Array.isArray(field) ? field[0] : field;\n if (!fieldInstance) {\n return Promise.resolve({ key: '', valid: true, errors: [] });\n }\n return fieldInstance.validate(opts).then((result) => {\n return {\n key: unref(fieldInstance.name),\n valid: result.valid,\n errors: result.errors,\n };\n });\n }));\n const results = {};\n const errors = {};\n for (const validation of validations) {\n results[validation.key] = {\n valid: validation.valid,\n errors: validation.errors,\n };\n if (validation.errors.length) {\n errors[validation.key] = validation.errors[0];\n }\n }\n return {\n valid: validations.every(r => r.valid),\n results,\n errors,\n };\n }\n async function validateField(field) {\n const fieldInstance = fieldsByPath.value[field];\n if (!fieldInstance) {\n warn$1(`field with name ${field} was not found`);\n return Promise.resolve({ errors: [], valid: true });\n }\n if (Array.isArray(fieldInstance)) {\n return fieldInstance.map(f => f.validate())[0];\n }\n return fieldInstance.validate();\n }\n function unsetInitialValue(path) {\n unsetPath(initialValues.value, path);\n }\n /**\n * Sneaky function to set initial field values\n */\n function stageInitialValue(path, value, updateOriginal = false) {\n setInPath(formValues, path, value);\n setFieldInitialValue(path, value);\n if (updateOriginal && !(opts === null || opts === void 0 ? void 0 : opts.initialValues)) {\n setInPath(originalInitialValues.value, path, klona(value));\n }\n }\n function setFieldInitialValue(path, value) {\n setInPath(initialValues.value, path, klona(value));\n }\n async function _validateSchema() {\n const schemaValue = unref(schema);\n if (!schemaValue) {\n return { valid: true, results: {}, errors: {} };\n }\n const formResult = isYupValidator(schemaValue) || isTypedSchema(schemaValue)\n ? await validateTypedSchema(schemaValue, formValues)\n : await validateObjectSchema(schemaValue, formValues, {\n names: fieldNames.value,\n bailsMap: fieldBailsMap.value,\n });\n return formResult;\n }\n const submitForm = handleSubmit((_, { evt }) => {\n if (isFormSubmitEvent(evt)) {\n evt.target.submit();\n }\n });\n // Trigger initial validation\n onMounted(() => {\n if (opts === null || opts === void 0 ? void 0 : opts.initialErrors) {\n setErrors(opts.initialErrors);\n }\n if (opts === null || opts === void 0 ? void 0 : opts.initialTouched) {\n setTouched(opts.initialTouched);\n }\n // if validate on mount was enabled\n if (opts === null || opts === void 0 ? void 0 : opts.validateOnMount) {\n validate();\n return;\n }\n // otherwise run initial silent validation through schema if available\n // the useField should skip their own silent validation if a yup schema is present\n if (formCtx.validateSchema) {\n formCtx.validateSchema('silent');\n }\n });\n if (isRef(schema)) {\n watch(schema, () => {\n var _a;\n (_a = formCtx.validateSchema) === null || _a === void 0 ? void 0 : _a.call(formCtx, 'validated-only');\n });\n }\n // Provide injections\n provide(FormContextKey, formCtx);\n if ((process.env.NODE_ENV !== 'production')) {\n registerFormWithDevTools(formCtx);\n watch(() => (Object.assign(Object.assign({ errors: errorBag.value }, meta.value), { values: formValues, isSubmitting: isSubmitting.value, submitCount: submitCount.value })), refreshInspector, {\n deep: true,\n });\n }\n return Object.assign(Object.assign({}, formCtx), { handleReset: () => resetForm(), submitForm });\n}\n/**\n * Manages form meta aggregation\n */\nfunction useFormMeta(fieldsByPath, currentValues, initialValues, errors) {\n const MERGE_STRATEGIES = {\n touched: 'some',\n pending: 'some',\n valid: 'every',\n };\n const isDirty = computed(() => {\n return !isEqual(currentValues, unref(initialValues));\n });\n function calculateFlags() {\n const fields = Object.values(fieldsByPath.value).flat(1).filter(Boolean);\n return keysOf(MERGE_STRATEGIES).reduce((acc, flag) => {\n const mergeMethod = MERGE_STRATEGIES[flag];\n acc[flag] = fields[mergeMethod](field => field.meta[flag]);\n return acc;\n }, {});\n }\n const flags = reactive(calculateFlags());\n watchEffect(() => {\n const value = calculateFlags();\n flags.touched = value.touched;\n flags.valid = value.valid;\n flags.pending = value.pending;\n });\n return computed(() => {\n return Object.assign(Object.assign({ initialValues: unref(initialValues) }, flags), { valid: flags.valid && !keysOf(errors.value).length, dirty: isDirty.value });\n });\n}\n/**\n * Manages the initial values prop\n */\nfunction useFormInitialValues(fields, formValues, opts) {\n const values = resolveInitialValues(opts);\n const providedValues = opts === null || opts === void 0 ? void 0 : opts.initialValues;\n // these are the mutable initial values as the fields are mounted/unmounted\n const initialValues = ref(values);\n // these are the original initial value as provided by the user initially, they don't keep track of conditional fields\n // this is important because some conditional fields will overwrite the initial values for other fields who had the same name\n // like array fields, any push/insert operation will overwrite the initial values because they \"create new fields\"\n // so these are the values that the reset function should use\n // these only change when the user explicitly changes the initial values or when the user resets them with new values.\n const originalInitialValues = ref(klona(values));\n function setInitialValues(values, updateFields = false) {\n initialValues.value = klona(values);\n originalInitialValues.value = klona(values);\n if (!updateFields) {\n return;\n }\n // update the pristine non-touched fields\n // those are excluded because it's unlikely you want to change the form values using initial values\n // we mostly watch them for API population or newly inserted fields\n // if the user API is taking too much time before user interaction they should consider disabling or hiding their inputs until the values are ready\n keysOf(fields.value).forEach(fieldPath => {\n const field = fields.value[fieldPath];\n const wasTouched = Array.isArray(field) ? field.some(f => f.meta.touched) : field === null || field === void 0 ? void 0 : field.meta.touched;\n if (!field || wasTouched) {\n return;\n }\n const newValue = getFromPath(initialValues.value, fieldPath);\n setInPath(formValues, fieldPath, klona(newValue));\n });\n }\n if (isRef(providedValues)) {\n watch(providedValues, value => {\n setInitialValues(value, true);\n }, {\n deep: true,\n });\n }\n return {\n initialValues,\n originalInitialValues,\n setInitialValues,\n };\n}\nfunction useErrorBag(initialErrors) {\n const errorBag = ref({});\n function normalizeErrorItem(message) {\n return Array.isArray(message) ? message : message ? [message] : [];\n }\n /**\n * Manually sets an error message on a specific field\n */\n function setFieldErrorBag(field, message) {\n if (!message) {\n delete errorBag.value[field];\n return;\n }\n errorBag.value[field] = normalizeErrorItem(message);\n }\n /**\n * Sets errors for the fields specified in the object\n */\n function setErrorBag(fields) {\n errorBag.value = keysOf(fields).reduce((acc, key) => {\n const message = fields[key];\n if (message) {\n acc[key] = normalizeErrorItem(message);\n }\n return acc;\n }, {});\n }\n if (initialErrors) {\n setErrorBag(initialErrors);\n }\n return {\n errorBag,\n setErrorBag,\n setFieldErrorBag,\n };\n}\n\nconst FormImpl = defineComponent({\n name: 'Form',\n inheritAttrs: false,\n props: {\n as: {\n type: String,\n default: 'form',\n },\n validationSchema: {\n type: Object,\n default: undefined,\n },\n initialValues: {\n type: Object,\n default: undefined,\n },\n initialErrors: {\n type: Object,\n default: undefined,\n },\n initialTouched: {\n type: Object,\n default: undefined,\n },\n validateOnMount: {\n type: Boolean,\n default: false,\n },\n onSubmit: {\n type: Function,\n default: undefined,\n },\n onInvalidSubmit: {\n type: Function,\n default: undefined,\n },\n keepValues: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, ctx) {\n const initialValues = toRef(props, 'initialValues');\n const validationSchema = toRef(props, 'validationSchema');\n const keepValues = toRef(props, 'keepValues');\n const { errors, errorBag, values, meta, isSubmitting, submitCount, controlledValues, validate, validateField, handleReset, resetForm, handleSubmit, setErrors, setFieldError, setFieldValue, setValues, setFieldTouched, setTouched, resetField, } = useForm({\n validationSchema: validationSchema.value ? validationSchema : undefined,\n initialValues,\n initialErrors: props.initialErrors,\n initialTouched: props.initialTouched,\n validateOnMount: props.validateOnMount,\n keepValuesOnUnmount: keepValues,\n });\n const submitForm = handleSubmit((_, { evt }) => {\n if (isFormSubmitEvent(evt)) {\n evt.target.submit();\n }\n }, props.onInvalidSubmit);\n const onSubmit = props.onSubmit ? handleSubmit(props.onSubmit, props.onInvalidSubmit) : submitForm;\n function handleFormReset(e) {\n if (isEvent(e)) {\n // Prevent default form reset behavior\n e.preventDefault();\n }\n handleReset();\n if (typeof ctx.attrs.onReset === 'function') {\n ctx.attrs.onReset();\n }\n }\n function handleScopedSlotSubmit(evt, onSubmit) {\n const onSuccess = typeof evt === 'function' && !onSubmit ? evt : onSubmit;\n return handleSubmit(onSuccess, props.onInvalidSubmit)(evt);\n }\n function getValues() {\n return klona(values);\n }\n function getMeta() {\n return klona(meta.value);\n }\n function getErrors() {\n return klona(errors.value);\n }\n function slotProps() {\n return {\n meta: meta.value,\n errors: errors.value,\n errorBag: errorBag.value,\n values,\n isSubmitting: isSubmitting.value,\n submitCount: submitCount.value,\n controlledValues: controlledValues.value,\n validate,\n validateField,\n handleSubmit: handleScopedSlotSubmit,\n handleReset,\n submitForm,\n setErrors,\n setFieldError,\n setFieldValue,\n setValues,\n setFieldTouched,\n setTouched,\n resetForm,\n resetField,\n getValues,\n getMeta,\n getErrors,\n };\n }\n // expose these functions and methods as part of public API\n ctx.expose({\n setFieldError,\n setErrors,\n setFieldValue,\n setValues,\n setFieldTouched,\n setTouched,\n resetForm,\n validate,\n validateField,\n resetField,\n getValues,\n getMeta,\n getErrors,\n });\n return function renderForm() {\n // avoid resolving the form component as itself\n const tag = props.as === 'form' ? props.as : resolveDynamicComponent(props.as);\n const children = normalizeChildren(tag, ctx, slotProps);\n if (!props.as) {\n return children;\n }\n // Attributes to add on a native `form` tag\n const formAttrs = props.as === 'form'\n ? {\n // Disables native validation as vee-validate will handle it.\n novalidate: true,\n }\n : {};\n return h(tag, Object.assign(Object.assign(Object.assign({}, formAttrs), ctx.attrs), { onSubmit, onReset: handleFormReset }), children);\n };\n },\n});\nconst Form = FormImpl;\n\nfunction useFieldArray(arrayPath) {\n const form = injectWithSelf(FormContextKey, undefined);\n const fields = ref([]);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n const noOp = () => { };\n const noOpApi = {\n fields,\n remove: noOp,\n push: noOp,\n swap: noOp,\n insert: noOp,\n update: noOp,\n replace: noOp,\n prepend: noOp,\n move: noOp,\n };\n if (!form) {\n warn('FieldArray requires being a child of `
` or `useForm` being called before it. Array fields may not work correctly');\n return noOpApi;\n }\n if (!unref(arrayPath)) {\n warn('FieldArray requires a field path to be provided, did you forget to pass the `name` prop?');\n return noOpApi;\n }\n const alreadyExists = form.fieldArrays.find(a => unref(a.path) === unref(arrayPath));\n if (alreadyExists) {\n return alreadyExists;\n }\n let entryCounter = 0;\n function getCurrentValues() {\n return getFromPath(form === null || form === void 0 ? void 0 : form.values, unref(arrayPath), []) || [];\n }\n function initFields() {\n const currentValues = getCurrentValues();\n fields.value = currentValues.map(createEntry);\n updateEntryFlags();\n }\n initFields();\n function updateEntryFlags() {\n const fieldsLength = fields.value.length;\n for (let i = 0; i < fieldsLength; i++) {\n const entry = fields.value[i];\n entry.isFirst = i === 0;\n entry.isLast = i === fieldsLength - 1;\n }\n }\n function createEntry(value) {\n const key = entryCounter++;\n const entry = {\n key,\n value: computedDeep({\n get() {\n const currentValues = getFromPath(form === null || form === void 0 ? void 0 : form.values, unref(arrayPath), []) || [];\n const idx = fields.value.findIndex(e => e.key === key);\n return idx === -1 ? value : currentValues[idx];\n },\n set(value) {\n const idx = fields.value.findIndex(e => e.key === key);\n if (idx === -1) {\n warn(`Attempting to update a non-existent array item`);\n return;\n }\n update(idx, value);\n },\n }),\n isFirst: false,\n isLast: false,\n };\n return entry;\n }\n function afterMutation() {\n updateEntryFlags();\n // Should trigger a silent validation since a field may not do that #4096\n form === null || form === void 0 ? void 0 : form.validate({ mode: 'silent' });\n }\n function remove(idx) {\n const pathName = unref(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n if (!pathValue || !Array.isArray(pathValue)) {\n return;\n }\n const newValue = [...pathValue];\n newValue.splice(idx, 1);\n form === null || form === void 0 ? void 0 : form.unsetInitialValue(pathName + `[${idx}]`);\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\n fields.value.splice(idx, 1);\n afterMutation();\n }\n function push(value) {\n const pathName = unref(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n const normalizedPathValue = isNullOrUndefined(pathValue) ? [] : pathValue;\n if (!Array.isArray(normalizedPathValue)) {\n return;\n }\n const newValue = [...normalizedPathValue];\n newValue.push(value);\n form === null || form === void 0 ? void 0 : form.stageInitialValue(pathName + `[${newValue.length - 1}]`, value);\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\n fields.value.push(createEntry(value));\n afterMutation();\n }\n function swap(indexA, indexB) {\n const pathName = unref(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n if (!Array.isArray(pathValue) || !(indexA in pathValue) || !(indexB in pathValue)) {\n return;\n }\n const newValue = [...pathValue];\n const newFields = [...fields.value];\n // the old switcheroo\n const temp = newValue[indexA];\n newValue[indexA] = newValue[indexB];\n newValue[indexB] = temp;\n const tempEntry = newFields[indexA];\n newFields[indexA] = newFields[indexB];\n newFields[indexB] = tempEntry;\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\n fields.value = newFields;\n updateEntryFlags();\n }\n function insert(idx, value) {\n const pathName = unref(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n if (!Array.isArray(pathValue) || pathValue.length < idx) {\n return;\n }\n const newValue = [...pathValue];\n const newFields = [...fields.value];\n newValue.splice(idx, 0, value);\n newFields.splice(idx, 0, createEntry(value));\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\n fields.value = newFields;\n afterMutation();\n }\n function replace(arr) {\n const pathName = unref(arrayPath);\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, arr);\n initFields();\n afterMutation();\n }\n function update(idx, value) {\n const pathName = unref(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n if (!Array.isArray(pathValue) || pathValue.length - 1 < idx) {\n return;\n }\n form === null || form === void 0 ? void 0 : form.setFieldValue(`${pathName}[${idx}]`, value);\n form === null || form === void 0 ? void 0 : form.validate({ mode: 'validated-only' });\n }\n function prepend(value) {\n const pathName = unref(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n const normalizedPathValue = isNullOrUndefined(pathValue) ? [] : pathValue;\n if (!Array.isArray(normalizedPathValue)) {\n return;\n }\n const newValue = [value, ...normalizedPathValue];\n form === null || form === void 0 ? void 0 : form.stageInitialValue(pathName + `[${newValue.length - 1}]`, value);\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\n fields.value.unshift(createEntry(value));\n afterMutation();\n }\n function move(oldIdx, newIdx) {\n const pathName = unref(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n const newValue = isNullOrUndefined(pathValue) ? [] : [...pathValue];\n if (!Array.isArray(pathValue) || !(oldIdx in pathValue) || !(newIdx in pathValue)) {\n return;\n }\n const newFields = [...fields.value];\n const movedItem = newFields[oldIdx];\n newFields.splice(oldIdx, 1);\n newFields.splice(newIdx, 0, movedItem);\n const movedValue = newValue[oldIdx];\n newValue.splice(oldIdx, 1);\n newValue.splice(newIdx, 0, movedValue);\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\n fields.value = newFields;\n afterMutation();\n }\n const fieldArrayCtx = {\n fields,\n remove,\n push,\n swap,\n insert,\n update,\n replace,\n prepend,\n move,\n };\n form.fieldArrays.push(Object.assign({ path: arrayPath, reset: initFields }, fieldArrayCtx));\n onBeforeUnmount(() => {\n const idx = form.fieldArrays.findIndex(i => unref(i.path) === unref(arrayPath));\n if (idx >= 0) {\n form.fieldArrays.splice(idx, 1);\n }\n });\n // Makes sure to sync the form values with the array value if they go out of sync\n // #4153\n watch(getCurrentValues, formValues => {\n const fieldsValues = fields.value.map(f => f.value);\n // If form values are not the same as the current values then something overrode them.\n if (!isEqual(formValues, fieldsValues)) {\n initFields();\n }\n });\n return fieldArrayCtx;\n}\n\nconst FieldArrayImpl = defineComponent({\n name: 'FieldArray',\n inheritAttrs: false,\n props: {\n name: {\n type: String,\n required: true,\n },\n },\n setup(props, ctx) {\n const { push, remove, swap, insert, replace, update, prepend, move, fields } = useFieldArray(toRef(props, 'name'));\n function slotProps() {\n return {\n fields: fields.value,\n push,\n remove,\n swap,\n insert,\n update,\n replace,\n prepend,\n move,\n };\n }\n ctx.expose({\n push,\n remove,\n swap,\n insert,\n update,\n replace,\n prepend,\n move,\n });\n return () => {\n const children = normalizeChildren(undefined, ctx, slotProps);\n return children;\n };\n },\n});\nconst FieldArray = FieldArrayImpl;\n\nconst ErrorMessageImpl = defineComponent({\n name: 'ErrorMessage',\n props: {\n as: {\n type: String,\n default: undefined,\n },\n name: {\n type: String,\n required: true,\n },\n },\n setup(props, ctx) {\n const form = inject(FormContextKey, undefined);\n const message = computed(() => {\n return form === null || form === void 0 ? void 0 : form.errors.value[props.name];\n });\n function slotProps() {\n return {\n message: message.value,\n };\n }\n return () => {\n // Renders nothing if there are no messages\n if (!message.value) {\n return undefined;\n }\n const tag = (props.as ? resolveDynamicComponent(props.as) : props.as);\n const children = normalizeChildren(tag, ctx, slotProps);\n const attrs = Object.assign({ role: 'alert' }, ctx.attrs);\n // If no tag was specified and there are children\n // render the slot as is without wrapping it\n if (!tag && (Array.isArray(children) || !children) && (children === null || children === void 0 ? void 0 : children.length)) {\n return children;\n }\n // If no children in slot\n // render whatever specified and fallback to a with the message in it's contents\n if ((Array.isArray(children) || !children) && !(children === null || children === void 0 ? void 0 : children.length)) {\n return h(tag || 'span', attrs, message.value);\n }\n return h(tag, attrs, children);\n };\n },\n});\nconst ErrorMessage = ErrorMessageImpl;\n\nfunction useResetForm() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return function resetForm(state) {\n if (!form) {\n return;\n }\n return form.resetForm(state);\n };\n}\n\n/**\n * If a field is dirty or not\n */\nfunction useIsFieldDirty(path) {\n const form = injectWithSelf(FormContextKey);\n let field = path ? undefined : inject(FieldContextKey);\n return computed(() => {\n if (path) {\n field = normalizeField(form === null || form === void 0 ? void 0 : form.fieldsByPath.value[unref(path)]);\n }\n if (!field) {\n warn(`field with name ${unref(path)} was not found`);\n return false;\n }\n return field.meta.dirty;\n });\n}\n\n/**\n * If a field is touched or not\n */\nfunction useIsFieldTouched(path) {\n const form = injectWithSelf(FormContextKey);\n let field = path ? undefined : inject(FieldContextKey);\n return computed(() => {\n if (path) {\n field = normalizeField(form === null || form === void 0 ? void 0 : form.fieldsByPath.value[unref(path)]);\n }\n if (!field) {\n warn(`field with name ${unref(path)} was not found`);\n return false;\n }\n return field.meta.touched;\n });\n}\n\n/**\n * If a field is validated and is valid\n */\nfunction useIsFieldValid(path) {\n const form = injectWithSelf(FormContextKey);\n let field = path ? undefined : inject(FieldContextKey);\n return computed(() => {\n if (path) {\n field = normalizeField(form === null || form === void 0 ? void 0 : form.fieldsByPath.value[unref(path)]);\n }\n if (!field) {\n warn(`field with name ${unref(path)} was not found`);\n return false;\n }\n return field.meta.valid;\n });\n}\n\n/**\n * If the form is submitting or not\n */\nfunction useIsSubmitting() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.isSubmitting.value) !== null && _a !== void 0 ? _a : false;\n });\n}\n\n/**\n * Validates a single field\n */\nfunction useValidateField(path) {\n const form = injectWithSelf(FormContextKey);\n let field = path ? undefined : inject(FieldContextKey);\n return function validateField() {\n if (path) {\n field = normalizeField(form === null || form === void 0 ? void 0 : form.fieldsByPath.value[unref(path)]);\n }\n if (!field) {\n warn(`field with name ${unref(path)} was not found`);\n return Promise.resolve({\n errors: [],\n valid: true,\n });\n }\n return field.validate();\n };\n}\n\n/**\n * If the form is dirty or not\n */\nfunction useIsFormDirty() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.meta.value.dirty) !== null && _a !== void 0 ? _a : false;\n });\n}\n\n/**\n * If the form is touched or not\n */\nfunction useIsFormTouched() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.meta.value.touched) !== null && _a !== void 0 ? _a : false;\n });\n}\n\n/**\n * If the form has been validated and is valid\n */\nfunction useIsFormValid() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.meta.value.valid) !== null && _a !== void 0 ? _a : false;\n });\n}\n\n/**\n * Validate multiple fields\n */\nfunction useValidateForm() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return function validateField() {\n if (!form) {\n return Promise.resolve({ results: {}, errors: {}, valid: true });\n }\n return form.validate();\n };\n}\n\n/**\n * The number of form's submission count\n */\nfunction useSubmitCount() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.submitCount.value) !== null && _a !== void 0 ? _a : 0;\n });\n}\n\n/**\n * Gives access to a field's current value\n */\nfunction useFieldValue(path) {\n const form = injectWithSelf(FormContextKey);\n // We don't want to use self injected context as it doesn't make sense\n const field = path ? undefined : inject(FieldContextKey);\n return computed(() => {\n if (path) {\n return getFromPath(form === null || form === void 0 ? void 0 : form.values, unref(path));\n }\n return unref(field === null || field === void 0 ? void 0 : field.value);\n });\n}\n\n/**\n * Gives access to a form's values\n */\nfunction useFormValues() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return computed(() => {\n return (form === null || form === void 0 ? void 0 : form.values) || {};\n });\n}\n\n/**\n * Gives access to all form errors\n */\nfunction useFormErrors() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return computed(() => {\n return ((form === null || form === void 0 ? void 0 : form.errors.value) || {});\n });\n}\n\n/**\n * Gives access to a single field error\n */\nfunction useFieldError(path) {\n const form = injectWithSelf(FormContextKey);\n // We don't want to use self injected context as it doesn't make sense\n const field = path ? undefined : inject(FieldContextKey);\n return computed(() => {\n if (path) {\n return form === null || form === void 0 ? void 0 : form.errors.value[unref(path)];\n }\n return field === null || field === void 0 ? void 0 : field.errorMessage.value;\n });\n}\n\nfunction useSubmitForm(cb) {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n const onSubmit = form ? form.handleSubmit(cb) : undefined;\n return function submitForm(e) {\n if (!onSubmit) {\n return;\n }\n return onSubmit(e);\n };\n}\n\nexport { ErrorMessage, Field, FieldArray, FieldContextKey, Form, FormContextKey, IS_ABSENT, configure, defineRule, useField, useFieldArray, useFieldError, useFieldValue, useForm, useFormErrors, useFormValues, useIsFieldDirty, useIsFieldTouched, useIsFieldValid, useIsFormDirty, useIsFormTouched, useIsFormValid, useIsSubmitting, useResetForm, useSubmitCount, useSubmitForm, useValidateField, useValidateForm, validate, validateObjectSchema as validateObject };\n","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","const reWords = /[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+|(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*/g\n\nconst words = (str) => str.match(reWords) || []\n\nconst upperFirst = (str) => str[0].toUpperCase() + str.slice(1)\n\nconst join = (str, d) => words(str).join(d).toLowerCase()\n\nconst camelCase = (str) =>\n words(str).reduce(\n (acc, next) =>\n `${acc}${\n !acc\n ? next.toLowerCase()\n : next[0].toUpperCase() + next.slice(1).toLowerCase()\n }`,\n '',\n )\n\nconst pascalCase = (str) => upperFirst(camelCase(str))\n\nconst snakeCase = (str) => join(str, '_')\n\nconst kebabCase = (str) => join(str, '-')\n\nconst sentenceCase = (str) => upperFirst(join(str, ' '))\n\nconst titleCase = (str) => words(str).map(upperFirst).join(' ')\n\nmodule.exports = {\n words,\n upperFirst,\n camelCase,\n pascalCase,\n snakeCase,\n kebabCase,\n sentenceCase,\n titleCase,\n}\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","import { getter, forEach, split, normalizePath, join } from 'property-expr';\nimport { camelCase, snakeCase } from 'tiny-case';\nimport toposort from 'toposort';\n\nconst toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\nfunction printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}\n\nfunction toArray(value) {\n return value == null ? [] : [].concat(value);\n}\n\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\nclass ValidationError extends Error {\n static formatError(message, params) {\n const path = params.label || params.path || 'this';\n if (path !== params.path) params = Object.assign({}, params, {\n path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n constructor(errorOrErrors, value, field, type) {\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.errors = void 0;\n this.params = void 0;\n this.inner = void 0;\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n this.inner = this.inner.concat(err.inner.length ? err.inner : err);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n if (Error.captureStackTrace) Error.captureStackTrace(this, ValidationError);\n }\n}\n\nlet mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n defined: '${path} must be defined',\n notNull: '${path} cannot be null',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n const castMsg = originalValue != null && originalValue !== value ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.';\n return type !== 'mixed' ? `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + castMsg : `${path} must match the configured type. ` + `The validated value was: \\`${printValue(value, true)}\\`` + castMsg;\n }\n};\nlet string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nlet number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nlet date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nlet boolean = {\n isValue: '${path} field must be ${value}'\n};\nlet object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}'\n};\nlet array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nlet tuple = {\n notType: params => {\n const {\n path,\n value,\n spec\n } = params;\n const typeLen = spec.types.length;\n if (Array.isArray(value)) {\n if (value.length < typeLen) return `${path} tuple value has too few items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n if (value.length > typeLen) return `${path} tuple value has too many items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n }\n return ValidationError.formatError(mixed.notType, params);\n }\n};\nvar locale = Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean\n});\n\nconst isSchema = obj => obj && obj.__isYupSchema__;\n\nclass Condition {\n static fromOptions(refs, config) {\n if (!config.then && !config.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = config;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n return new Condition(refs, (values, schema) => {\n var _branch;\n let branch = check(...values) ? then : otherwise;\n return (_branch = branch == null ? void 0 : branch(schema)) != null ? _branch : schema;\n });\n }\n constructor(refs, builder) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n this.fn = builder;\n }\n resolve(base, options) {\n let values = this.refs.map(ref =>\n // TODO: ? operator here?\n ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn(values, base, options);\n if (schema === undefined ||\n // @ts-ignore this can be base\n schema === base) {\n return base;\n }\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n}\n\nconst prefixes = {\n context: '$',\n value: '.'\n};\nfunction create$9(key, options) {\n return new Reference(key, options);\n}\nclass Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n resolve() {\n return this;\n }\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n toString() {\n return `Ref(${this.key})`;\n }\n static isRef(value) {\n return value && value.__isYupRef;\n }\n}\n\n// @ts-ignore\nReference.prototype.__isYupRef = true;\n\nconst isAbsent = value => value == null;\n\nfunction createValidation(config) {\n function validate({\n value,\n path = '',\n options,\n originalValue,\n schema\n }, panic, next) {\n const {\n name,\n test,\n params,\n message,\n skipAbsent\n } = config;\n let {\n parent,\n context,\n abortEarly = schema.spec.abortEarly\n } = options;\n function resolve(item) {\n return Reference.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n function createError(overrides = {}) {\n const nextParams = Object.assign({\n value,\n originalValue,\n label: schema.spec.label,\n path: overrides.path || path,\n spec: schema.spec\n }, params, overrides.params);\n for (const key of Object.keys(nextParams)) nextParams[key] = resolve(nextParams[key]);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name);\n error.params = nextParams;\n return error;\n }\n const invalid = abortEarly ? panic : next;\n let ctx = {\n path,\n parent,\n type: name,\n from: options.from,\n createError,\n resolve,\n options,\n originalValue,\n schema\n };\n const handleResult = validOrError => {\n if (ValidationError.isError(validOrError)) invalid(validOrError);else if (!validOrError) invalid(createError());else next(null);\n };\n const handleError = err => {\n if (ValidationError.isError(err)) invalid(err);else panic(err);\n };\n const shouldSkip = skipAbsent && isAbsent(value);\n if (!options.sync) {\n try {\n Promise.resolve(!shouldSkip ? test.call(ctx, value, ctx) : true).then(handleResult, handleError);\n } catch (err) {\n handleError(err);\n }\n return;\n }\n let result;\n try {\n var _result;\n result = !shouldSkip ? test.call(ctx, value, ctx) : true;\n if (typeof ((_result = result) == null ? void 0 : _result.then) === 'function') {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n } catch (err) {\n handleError(err);\n return;\n }\n handleResult(result);\n }\n validate.OPTIONS = config;\n return validate;\n}\n\nfunction getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug;\n\n // root path: ''\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? _part.slice(1, _part.length - 1) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n let isTuple = schema.type === 'tuple';\n let idx = isArray ? parseInt(part, 10) : 0;\n if (schema.innerType || isTuple) {\n if (isTuple && !isArray) throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part \"${lastPartDebug}\" must contain an index to the tuple element, e.g. \"${lastPartDebug}[0]\"`);\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n parent = value;\n value = value && value[idx];\n schema = isTuple ? schema.spec.types[idx] : schema.innerType;\n }\n\n // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema.type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\nfunction reach(obj, path, value, context) {\n return getIn(obj, path, value, context).schema;\n}\n\nclass ReferenceSet extends Set {\n describe() {\n const description = [];\n for (const item of this.values()) {\n description.push(Reference.isRef(item) ? item.describe() : item);\n }\n return description;\n }\n resolveAll(resolve) {\n let result = [];\n for (const item of this.values()) {\n result.push(resolve(item));\n }\n return result;\n }\n clone() {\n return new ReferenceSet(this.values());\n }\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.forEach(value => next.add(value));\n removeItems.forEach(value => next.delete(value));\n return next;\n }\n}\n\n// tweaked from https://github.com/Kelin2025/nanoclone/blob/0abeb7635bda9b68ef2277093f76dbe3bf3948e1/src/index.js\nfunction clone(src, seen = new Map()) {\n if (isSchema(src) || !src || typeof src !== 'object') return src;\n if (seen.has(src)) return seen.get(src);\n let copy;\n if (src instanceof Date) {\n // Date\n copy = new Date(src.getTime());\n seen.set(src, copy);\n } else if (src instanceof RegExp) {\n // RegExp\n copy = new RegExp(src);\n seen.set(src, copy);\n } else if (Array.isArray(src)) {\n // Array\n copy = new Array(src.length);\n seen.set(src, copy);\n for (let i = 0; i < src.length; i++) copy[i] = clone(src[i], seen);\n } else if (src instanceof Map) {\n // Map\n copy = new Map();\n seen.set(src, copy);\n for (const [k, v] of src.entries()) copy.set(k, clone(v, seen));\n } else if (src instanceof Set) {\n // Set\n copy = new Set();\n seen.set(src, copy);\n for (const v of src) copy.add(clone(v, seen));\n } else if (src instanceof Object) {\n // Object\n copy = {};\n seen.set(src, copy);\n for (const [k, v] of Object.entries(src)) copy[k] = clone(v, seen);\n } else {\n throw Error(`Unable to clone ${src}`);\n }\n return copy;\n}\n\nclass Schema {\n constructor(options) {\n this.type = void 0;\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this.internalTests = {};\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this._typeCheck = void 0;\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(mixed.notType);\n });\n this.type = options.type;\n this._typeCheck = options.check;\n this.spec = Object.assign({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n nullable: false,\n optional: true,\n coerce: true\n }, options == null ? void 0 : options.spec);\n this.withMutation(s => {\n s.nonNullable();\n });\n }\n\n // TODO: remove\n get _type() {\n return this.type;\n }\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n }\n\n // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n const next = Object.create(Object.getPrototypeOf(this));\n\n // @ts-expect-error this is readonly\n next.type = this.type;\n next._typeCheck = this._typeCheck;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.internalTests = Object.assign({}, this.internalTests);\n next.exclusiveTests = Object.assign({}, this.exclusiveTests);\n\n // @ts-expect-error this is readonly\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = clone(Object.assign({}, this.spec, spec));\n return next;\n }\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n const mergedSpec = Object.assign({}, base.spec, combined.spec);\n combined.spec = mergedSpec;\n combined.internalTests = Object.assign({}, base.internalTests, combined.internalTests);\n\n // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist);\n\n // start with the current tests\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests;\n\n // manually add the new tests to ensure\n // the deduping logic is consistent\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n isType(v) {\n if (v == null) {\n if (this.spec.nullable && v === null) return true;\n if (this.spec.optional && v === undefined) return true;\n return false;\n }\n return this._typeCheck(v);\n }\n resolve(options) {\n let schema = this;\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((prevSchema, condition) => condition.resolve(prevSchema, options), schema);\n schema = schema.resolve(options);\n }\n return schema;\n }\n resolveOptions(options) {\n var _options$strict, _options$abortEarly, _options$recursive;\n return Object.assign({}, options, {\n from: options.from || [],\n strict: (_options$strict = options.strict) != null ? _options$strict : this.spec.strict,\n abortEarly: (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly,\n recursive: (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive\n });\n }\n\n /**\n * Run the configured transform pipeline over an input value.\n */\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(Object.assign({\n value\n }, options));\n let allowOptionality = options.assert === 'ignore-optionality';\n let result = resolvedSchema._cast(value, options);\n if (options.assert !== false && !resolvedSchema.isType(result)) {\n if (allowOptionality && isAbsent(result)) {\n return result;\n }\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema.type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n return result;\n }\n _cast(rawValue, options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((prevValue, fn) => fn.call(this, prevValue, rawValue, this), rawValue);\n if (value === undefined) {\n value = this.getDefault(options);\n }\n return value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n path,\n originalValue = _value,\n strict = this.spec.strict\n } = options;\n let value = _value;\n if (!strict) {\n value = this._cast(value, Object.assign({\n assert: false\n }, options));\n }\n let initialTests = [];\n for (let test of Object.values(this.internalTests)) {\n if (test) initialTests.push(test);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: initialTests\n }, panic, initialErrors => {\n // even if we aren't ending early we can't proceed further if the types aren't correct\n if (initialErrors.length) {\n return next(initialErrors, value);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: this.tests\n }, panic, next);\n });\n }\n\n /**\n * Executes a set of validations, either schema, produced Tests or a nested\n * schema validate result.\n */\n runTests(runOptions, panic, next) {\n let fired = false;\n let {\n tests,\n value,\n originalValue,\n path,\n options\n } = runOptions;\n let panicOnce = arg => {\n if (fired) return;\n fired = true;\n panic(arg, value);\n };\n let nextOnce = arg => {\n if (fired) return;\n fired = true;\n next(arg, value);\n };\n let count = tests.length;\n let nestedErrors = [];\n if (!count) return nextOnce([]);\n let args = {\n value,\n originalValue,\n path,\n options,\n schema: this\n };\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, panicOnce, function finishTestRun(err) {\n if (err) {\n nestedErrors = nestedErrors.concat(err);\n }\n if (--count <= 0) {\n nextOnce(nestedErrors);\n }\n });\n }\n }\n asNestedTest({\n key,\n index,\n parent,\n parentPath,\n originalParent,\n options\n }) {\n const k = key != null ? key : index;\n if (k == null) {\n throw TypeError('Must include `key` or `index` for nested validations');\n }\n const isIndex = typeof k === 'number';\n let value = parent[k];\n const testOptions = Object.assign({}, options, {\n // Nested validations fields are always strict:\n // 1. parent isn't strict so the casting will also have cast inner values\n // 2. parent is strict in which case the nested values weren't cast either\n strict: true,\n parent,\n value,\n originalValue: originalParent[k],\n // FIXME: tests depend on `index` being passed around deeply,\n // we should not let the options.key/index bleed through\n key: undefined,\n // index: undefined,\n [isIndex ? 'index' : 'key']: k,\n path: isIndex || k.includes('.') ? `${parentPath || ''}[${value ? k : `\"${k}\"`}]` : (parentPath ? `${parentPath}.` : '') + key\n });\n return (_, panic, next) => this.resolve(testOptions)._validate(value, testOptions, panic, next);\n }\n validate(value, options) {\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n return new Promise((resolve, reject) => schema._validate(value, options, (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n reject(error);\n }, (errors, validated) => {\n if (errors.length) reject(new ValidationError(errors, validated));else resolve(validated);\n }));\n }\n validateSync(value, options) {\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let result;\n schema._validate(value, Object.assign({}, options, {\n sync: true\n }), (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n throw error;\n }, (errors, validated) => {\n if (errors.length) throw new ValidationError(errors, value);\n result = validated;\n });\n return result;\n }\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n _getDefault(options) {\n let defaultValue = this.spec.default;\n if (defaultValue == null) {\n return defaultValue;\n }\n return typeof defaultValue === 'function' ? defaultValue.call(this, options) : clone(defaultValue);\n }\n getDefault(options\n // If schema is defaulted we know it's at least not undefined\n ) {\n let schema = this.resolve(options || {});\n return schema._getDefault(options);\n }\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n let next = this.clone({\n default: def\n });\n return next;\n }\n strict(isStrict = true) {\n return this.clone({\n strict: isStrict\n });\n }\n nullability(nullable, message) {\n const next = this.clone({\n nullable\n });\n next.internalTests.nullable = createValidation({\n message,\n name: 'nullable',\n test(value) {\n return value === null ? this.schema.spec.nullable : true;\n }\n });\n return next;\n }\n optionality(optional, message) {\n const next = this.clone({\n optional\n });\n next.internalTests.optionality = createValidation({\n message,\n name: 'optionality',\n test(value) {\n return value === undefined ? this.schema.spec.optional : true;\n }\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n defined(message = mixed.defined) {\n return this.optionality(false, message);\n }\n nullable() {\n return this.nullability(true);\n }\n nonNullable(message = mixed.notNull) {\n return this.nullability(false, message);\n }\n required(message = mixed.required) {\n return this.clone().withMutation(next => next.nonNullable(message).defined(message));\n }\n notRequired() {\n return this.clone().withMutation(next => next.nullable().optional());\n }\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n test(...args) {\n let opts;\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n if (opts.message === undefined) opts.message = mixed.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n let next = this.clone();\n let deps = toArray(keys).map(key => new Reference(key));\n deps.forEach(dep => {\n // @ts-ignore readonly array\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(typeof options === 'function' ? new Condition(deps, options) : Condition.fromOptions(deps, options));\n return next;\n }\n typeError(message) {\n let next = this.clone();\n next.internalTests.typeError = createValidation({\n message,\n name: 'typeError',\n skipAbsent: true,\n test(value) {\n if (!this.schema._typeCheck(value)) return this.createError({\n params: {\n type: this.schema.type\n }\n });\n return true;\n }\n });\n return next;\n }\n oneOf(enums, message = mixed.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n next._blacklist.delete(val);\n });\n next.internalTests.whiteList = createValidation({\n message,\n name: 'oneOf',\n skipAbsent: true,\n test(value) {\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: Array.from(valids).join(', '),\n resolved\n }\n });\n }\n });\n return next;\n }\n notOneOf(enums, message = mixed.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n next._whitelist.delete(val);\n });\n next.internalTests.blacklist = createValidation({\n message,\n name: 'notOneOf',\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: Array.from(invalids).join(', '),\n resolved\n }\n });\n return true;\n }\n });\n return next;\n }\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n /**\n * Return a serialized description of the schema including validations, flags, types etc.\n *\n * @param options Provide any needed context for resolving runtime schema alterations (lazy, when conditions, etc).\n */\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const {\n label,\n meta,\n optional,\n nullable\n } = next.spec;\n const description = {\n meta,\n label,\n optional,\n nullable,\n default: next.getDefault(options),\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n}\n// @ts-expect-error\nSchema.prototype.__isYupSchema__ = true;\nfor (const method of ['validate', 'validateSync']) Schema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], Object.assign({}, options, {\n parent,\n path\n }));\n};\nfor (const alias of ['equals', 'is']) Schema.prototype[alias] = Schema.prototype.oneOf;\nfor (const alias of ['not', 'nope']) Schema.prototype[alias] = Schema.prototype.notOneOf;\n\nconst returnsTrue = () => true;\nfunction create$8(spec) {\n return new MixedSchema(spec);\n}\nclass MixedSchema extends Schema {\n constructor(spec) {\n super(typeof spec === 'function' ? {\n type: 'mixed',\n check: spec\n } : Object.assign({\n type: 'mixed',\n check: returnsTrue\n }, spec));\n }\n}\ncreate$8.prototype = MixedSchema.prototype;\n\nfunction create$7() {\n return new BooleanSchema();\n}\nclass BooleanSchema extends Schema {\n constructor() {\n super({\n type: 'boolean',\n check(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (ctx.spec.coerce && !ctx.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n return value;\n });\n });\n }\n isTrue(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n test(value) {\n return isAbsent(value) || value === true;\n }\n });\n }\n isFalse(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n test(value) {\n return isAbsent(value) || value === false;\n }\n });\n }\n default(def) {\n return super.default(def);\n }\n defined(msg) {\n return super.defined(msg);\n }\n optional() {\n return super.optional();\n }\n required(msg) {\n return super.required(msg);\n }\n notRequired() {\n return super.notRequired();\n }\n nullable() {\n return super.nullable();\n }\n nonNullable(msg) {\n return super.nonNullable(msg);\n }\n strip(v) {\n return super.strip(v);\n }\n}\ncreate$7.prototype = BooleanSchema.prototype;\n\n// Taken from HTML spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address\nlet rEmail =\n// eslint-disable-next-line\n/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\nlet rUrl =\n// eslint-disable-next-line\n/^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i;\n\n// eslint-disable-next-line\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\nlet objStringTag = {}.toString();\nfunction create$6() {\n return new StringSchema();\n}\nclass StringSchema extends Schema {\n constructor() {\n super({\n type: 'string',\n check(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (!ctx.spec.coerce || ctx.isType(value)) return value;\n\n // don't ever convert arrays\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n\n // no one wants plain objects converted to [Object object]\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n required(message) {\n return super.required(message).withMutation(schema => schema.test({\n message: message || mixed.required,\n name: 'required',\n skipAbsent: true,\n test: value => !!value.length\n }));\n }\n notRequired() {\n return super.notRequired().withMutation(schema => {\n schema.tests = schema.tests.filter(t => t.OPTIONS.name !== 'required');\n return schema;\n });\n }\n length(length, message = string.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message = string.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message = string.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n return this.test({\n name: name || 'matches',\n message: message || string.matches,\n params: {\n regex\n },\n skipAbsent: true,\n test: value => value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n email(message = string.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n url(message = string.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n uuid(message = string.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n }\n\n //-- transforms --\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n trim(message = string.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n lowercase(message = string.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n uppercase(message = string.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n}\ncreate$6.prototype = StringSchema.prototype;\n\n//\n// String Interfaces\n//\n\nlet isNaN$1 = value => value != +value;\nfunction create$5() {\n return new NumberSchema();\n}\nclass NumberSchema extends Schema {\n constructor() {\n super({\n type: 'number',\n check(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN$1(value);\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (!ctx.spec.coerce) return value;\n let parsed = value;\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN;\n // don't use parseFloat to avoid positives on alpha-numeric strings\n parsed = +parsed;\n }\n\n // null -> NaN isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (ctx.isType(parsed) || parsed === null) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n min(min, message = number.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(min);\n }\n });\n }\n max(max, message = number.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(max);\n }\n });\n }\n lessThan(less, message = number.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n skipAbsent: true,\n test(value) {\n return value < this.resolve(less);\n }\n });\n }\n moreThan(more, message = number.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n skipAbsent: true,\n test(value) {\n return value > this.resolve(more);\n }\n });\n }\n positive(msg = number.positive) {\n return this.moreThan(0, msg);\n }\n negative(msg = number.negative) {\n return this.lessThan(0, msg);\n }\n integer(message = number.integer) {\n return this.test({\n name: 'integer',\n message,\n skipAbsent: true,\n test: val => Number.isInteger(val)\n });\n }\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n round(method) {\n var _method;\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round';\n\n // this exists for symemtry with the new Math.trunc\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n}\ncreate$5.prototype = NumberSchema.prototype;\n\n//\n// Number Interfaces\n//\n\n/* eslint-disable */\n/**\n *\n * Date.parse with progressive enhancement for ISO 8601 \n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover \n * Released under MIT license.\n */\n\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\nvar isoReg = /^(\\d{4}|[+\\-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nfunction parseIsoDate(date) {\n var numericKeys = [1, 4, 5, 6, 7, 10, 11],\n minutesOffset = 0,\n timestamp,\n struct;\n if (struct = isoReg.exec(date)) {\n // avoid NaN timestamps caused by “undefined” values being passed to Date.UTC\n for (var i = 0, k; k = numericKeys[i]; ++i) struct[k] = +struct[k] || 0;\n\n // allow undefined days and months\n struct[2] = (+struct[2] || 1) - 1;\n struct[3] = +struct[3] || 1;\n\n // allow arbitrary sub-second precision beyond milliseconds\n struct[7] = struct[7] ? String(struct[7]).substr(0, 3) : 0;\n\n // timestamps without timezone identifiers should be considered local time\n if ((struct[8] === undefined || struct[8] === '') && (struct[9] === undefined || struct[9] === '')) timestamp = +new Date(struct[1], struct[2], struct[3], struct[4], struct[5], struct[6], struct[7]);else {\n if (struct[8] !== 'Z' && struct[9] !== undefined) {\n minutesOffset = struct[10] * 60 + struct[11];\n if (struct[9] === '+') minutesOffset = 0 - minutesOffset;\n }\n timestamp = Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]);\n }\n } else timestamp = Date.parse ? Date.parse(date) : NaN;\n return timestamp;\n}\n\n// @ts-ignore\nlet invalidDate = new Date('');\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\nfunction create$4() {\n return new DateSchema();\n}\nclass DateSchema extends Schema {\n constructor() {\n super({\n type: 'date',\n check(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n // null -> InvalidDate isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (!ctx.spec.coerce || ctx.isType(value) || value === null) return value;\n value = parseIsoDate(value);\n\n // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n return !isNaN(value) ? new Date(value) : DateSchema.INVALID_DATE;\n });\n });\n }\n prepareParam(ref, name) {\n let param;\n if (!Reference.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n return param;\n }\n min(min, message = date.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(limit);\n }\n });\n }\n max(max, message = date.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(limit);\n }\n });\n }\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate$4.prototype = DateSchema.prototype;\ncreate$4.INVALID_DATE = invalidDate;\n\n// @ts-expect-error\nfunction sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n for (const key of Object.keys(fields)) {\n let value = fields[key];\n nodes.add(key);\n if (Reference.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n return toposort.array(Array.from(nodes), edges).reverse();\n}\n\nfunction findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n if ((_err$path = err.path) != null && _err$path.includes(key)) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\nfunction sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}\n\nconst parseJson = (value, _, ctx) => {\n if (typeof value !== 'string') {\n return value;\n }\n let parsed = value;\n try {\n parsed = JSON.parse(value);\n } catch (err) {\n /* */\n }\n return ctx.isType(parsed) ? parsed : value;\n};\n\n// @ts-ignore\nfunction deepPartial(schema) {\n if ('fields' in schema) {\n const partial = {};\n for (const [key, fieldSchema] of Object.entries(schema.fields)) {\n partial[key] = deepPartial(fieldSchema);\n }\n return schema.setFields(partial);\n }\n if (schema.type === 'array') {\n const nextArray = schema.optional();\n if (nextArray.innerType) nextArray.innerType = deepPartial(nextArray.innerType);\n return nextArray;\n }\n if (schema.type === 'tuple') {\n return schema.optional().clone({\n types: schema.spec.types.map(deepPartial)\n });\n }\n if ('optional' in schema) {\n return schema.optional();\n }\n return schema;\n}\nconst deepHas = (obj, p) => {\n const path = [...normalizePath(p)];\n if (path.length === 1) return path[0] in obj;\n let last = path.pop();\n let parent = getter(join(path), true)(obj);\n return !!(parent && last in parent);\n};\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\nconst defaultSort = sortByKeyOrder([]);\nfunction create$3(spec) {\n return new ObjectSchema(spec);\n}\nclass ObjectSchema extends Schema {\n constructor(spec) {\n super({\n type: 'object',\n check(value) {\n return isObject(value) || typeof value === 'function';\n }\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n if (spec) {\n this.shape(spec);\n }\n });\n }\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n let value = super._cast(_value, options);\n\n //should ignore nulls here\n if (value === undefined) return this.getDefault(options);\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n let props = [].concat(this._nodes, Object.keys(value).filter(v => !this._nodes.includes(v)));\n let intermediateValue = {}; // is filled during the transform below\n let innerOptions = Object.assign({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n let isChanged = false;\n for (const prop of props) {\n let field = fields[prop];\n let exists = (prop in value);\n if (field) {\n let fieldValue;\n let inputValue = value[prop];\n\n // safe to mutate since this is fired in sequence\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop;\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = field instanceof Schema ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n if (fieldSpec != null && fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n fieldValue = !options.__validating || !strict ?\n // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n if (exists !== prop in intermediateValue || intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n return isChanged ? intermediateValue : value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n from = [],\n originalValue = _value,\n recursive = this.spec.recursive\n } = options;\n options.from = [{\n schema: this,\n value: originalValue\n }, ...from];\n // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n options.__validating = true;\n options.originalValue = originalValue;\n super._validate(_value, options, panic, (objectErrors, value) => {\n if (!recursive || !isObject(value)) {\n next(objectErrors, value);\n return;\n }\n originalValue = originalValue || value;\n let tests = [];\n for (let key of this._nodes) {\n let field = this.fields[key];\n if (!field || Reference.isRef(field)) {\n continue;\n }\n tests.push(field.asNestedTest({\n options,\n key,\n parent: value,\n parentPath: options.path,\n originalParent: originalValue\n }));\n }\n this.runTests({\n tests,\n value,\n originalValue,\n options\n }, panic, fieldErrors => {\n next(fieldErrors.sort(this._sortErrors).concat(objectErrors), value);\n });\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n next.fields = Object.assign({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n nextFields[field] = target === undefined ? schemaOrRef : target;\n }\n return next.withMutation(s =>\n // XXX: excludes here is wrong\n s.setFields(nextFields, [...this._excludedEdges, ...schema._excludedEdges]));\n }\n _getDefault(options) {\n if ('default' in this.spec) {\n return super._getDefault(options);\n }\n\n // if there is no default set invent one\n if (!this._nodes.length) {\n return undefined;\n }\n let dft = {};\n this._nodes.forEach(key => {\n var _innerOptions;\n const field = this.fields[key];\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n dft[key] = field && 'getDefault' in field ? field.getDefault(innerOptions) : undefined;\n });\n return dft;\n }\n setFields(shape, excludedEdges) {\n let next = this.clone();\n next.fields = shape;\n next._nodes = sortFields(shape, excludedEdges);\n next._sortErrors = sortByKeyOrder(Object.keys(shape));\n // XXX: this carries over edges which may not be what you want\n if (excludedEdges) next._excludedEdges = excludedEdges;\n return next;\n }\n shape(additions, excludes = []) {\n return this.clone().withMutation(next => {\n let edges = next._excludedEdges;\n if (excludes.length) {\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n edges = [...next._excludedEdges, ...excludes];\n }\n\n // XXX: excludes here is wrong\n return next.setFields(Object.assign(next.fields, additions), edges);\n });\n }\n partial() {\n const partial = {};\n for (const [key, schema] of Object.entries(this.fields)) {\n partial[key] = 'optional' in schema && schema.optional instanceof Function ? schema.optional() : schema;\n }\n return this.setFields(partial);\n }\n deepPartial() {\n const next = deepPartial(this);\n return next;\n }\n pick(keys) {\n const picked = {};\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n return this.setFields(picked);\n }\n omit(keys) {\n const fields = Object.assign({}, this.fields);\n for (const key of keys) {\n delete fields[key];\n }\n return this.setFields(fields);\n }\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (!obj) return obj;\n let newObj = obj;\n if (deepHas(obj, from)) {\n newObj = Object.assign({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n return newObj;\n });\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n noUnknown(noAllow = true, message = object.noUnknown) {\n if (typeof noAllow !== 'boolean') {\n message = noAllow;\n noAllow = true;\n }\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n unknown(allow = true, message = object.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n transformKeys(fn) {\n return this.transform(obj => {\n if (!obj) return obj;\n const result = {};\n for (const key of Object.keys(obj)) result[fn(key)] = obj[key];\n return result;\n });\n }\n camelCase() {\n return this.transformKeys(camelCase);\n }\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n describe(options) {\n let base = super.describe(options);\n base.fields = {};\n for (const [key, value] of Object.entries(this.fields)) {\n var _innerOptions2;\n let innerOptions = options;\n if ((_innerOptions2 = innerOptions) != null && _innerOptions2.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n base.fields[key] = value.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$3.prototype = ObjectSchema.prototype;\n\nfunction create$2(type) {\n return new ArraySchema(type);\n}\nclass ArraySchema extends Schema {\n constructor(type) {\n super({\n type: 'array',\n spec: {\n types: type\n },\n check(v) {\n return Array.isArray(v);\n }\n });\n\n // `undefined` specifically means uninitialized, as opposed to \"no subtype\"\n this.innerType = void 0;\n this.innerType = type;\n }\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts);\n\n // should ignore nulls here\n if (!this._typeCheck(value) || !this.innerType) {\n return value;\n }\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, Object.assign({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`\n }));\n if (castElement !== v) {\n isChanged = true;\n }\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n var _options$recursive;\n // let sync = options.sync;\n // let path = options.path;\n let innerType = this.innerType;\n // let endEarly = options.abortEarly ?? this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n options.originalValue != null ? options.originalValue : _value;\n super._validate(_value, options, panic, (arrayErrors, value) => {\n var _options$originalValu2;\n if (!recursive || !innerType || !this._typeCheck(value)) {\n next(arrayErrors, value);\n return;\n }\n\n // #950 Ensure that sparse array empty slots are validated\n let tests = new Array(value.length);\n for (let index = 0; index < value.length; index++) {\n var _options$originalValu;\n tests[index] = innerType.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(arrayErrors), value));\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n return next;\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n concat(schema) {\n let next = super.concat(schema);\n\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n if (schema.innerType)\n // @ts-expect-error readonly\n next.innerType = next.innerType ?\n // @ts-expect-error Lazy doesn't have concat and will break\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema));\n\n // @ts-expect-error readonly\n next.innerType = schema;\n next.spec = Object.assign({}, next.spec, {\n types: schema\n });\n return next;\n }\n length(length, message = array.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message) {\n message = message || array.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n // FIXME(ts): Array\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message) {\n message = message || array.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n describe(options) {\n let base = super.describe(options);\n if (this.innerType) {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[0]\n });\n }\n base.innerType = this.innerType.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$2.prototype = ArraySchema.prototype;\n\n// @ts-ignore\nfunction create$1(schemas) {\n return new TupleSchema(schemas);\n}\nclass TupleSchema extends Schema {\n constructor(schemas) {\n super({\n type: 'tuple',\n spec: {\n types: schemas\n },\n check(v) {\n const types = this.spec.types;\n return Array.isArray(v) && v.length === types.length;\n }\n });\n this.withMutation(() => {\n this.typeError(tuple.notType);\n });\n }\n _cast(inputValue, options) {\n const {\n types\n } = this.spec;\n const value = super._cast(inputValue, options);\n if (!this._typeCheck(value)) {\n return value;\n }\n let isChanged = false;\n const castArray = types.map((type, idx) => {\n const castElement = type.cast(value[idx], Object.assign({}, options, {\n path: `${options.path || ''}[${idx}]`\n }));\n if (castElement !== value[idx]) isChanged = true;\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n let itemTypes = this.spec.types;\n super._validate(_value, options, panic, (tupleErrors, value) => {\n var _options$originalValu2;\n // intentionally not respecting recursive\n if (!this._typeCheck(value)) {\n next(tupleErrors, value);\n return;\n }\n let tests = [];\n for (let [index, itemSchema] of itemTypes.entries()) {\n var _options$originalValu;\n tests[index] = itemSchema.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(tupleErrors), value));\n });\n }\n describe(options) {\n let base = super.describe(options);\n base.innerType = this.spec.types.map((schema, index) => {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[index]\n });\n }\n return schema.describe(innerOptions);\n });\n return base;\n }\n}\ncreate$1.prototype = TupleSchema.prototype;\n\nfunction create(builder) {\n return new Lazy(builder);\n}\nclass Lazy {\n constructor(builder) {\n this.type = 'lazy';\n this.__isYupSchema__ = true;\n this.spec = void 0;\n this._resolve = (value, options = {}) => {\n let schema = this.builder(value, options);\n if (!isSchema(schema)) throw new TypeError('lazy() functions must return a valid schema');\n if (this.spec.optional) schema = schema.optional();\n return schema.resolve(options);\n };\n this.builder = builder;\n this.spec = {\n meta: undefined,\n optional: false\n };\n }\n clone(spec) {\n const next = new Lazy(this.builder);\n next.spec = Object.assign({}, this.spec, spec);\n return next;\n }\n optionality(optional) {\n const next = this.clone({\n optional\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n resolve(options) {\n return this._resolve(options.value, options);\n }\n cast(value, options) {\n return this._resolve(value, options).cast(value, options);\n }\n asNestedTest(config) {\n let {\n key,\n index,\n parent,\n options\n } = config;\n let value = parent[index != null ? index : key];\n return this._resolve(value, Object.assign({}, options, {\n value,\n parent\n })).asNestedTest(config);\n }\n validate(value, options) {\n return this._resolve(value, options).validate(value, options);\n }\n validateSync(value, options) {\n return this._resolve(value, options).validateSync(value, options);\n }\n validateAt(path, value, options) {\n return this._resolve(value, options).validateAt(path, value, options);\n }\n validateSyncAt(path, value, options) {\n return this._resolve(value, options).validateSyncAt(path, value, options);\n }\n isValid(value, options) {\n return this._resolve(value, options).isValid(value, options);\n }\n isValidSync(value, options) {\n return this._resolve(value, options).isValidSync(value, options);\n }\n describe(options) {\n return options ? this.resolve(options).describe(options) : {\n type: 'lazy',\n meta: this.spec.meta,\n label: undefined\n };\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n}\n\nfunction setLocale(custom) {\n Object.keys(custom).forEach(type => {\n // @ts-ignore\n Object.keys(custom[type]).forEach(method => {\n // @ts-ignore\n locale[type][method] = custom[type][method];\n });\n });\n}\n\nfunction addMethod(schemaType, name, fn) {\n if (!schemaType || !isSchema(schemaType.prototype)) throw new TypeError('You must provide a yup schema constructor function');\n if (typeof name !== 'string') throw new TypeError('A Method name must be provided');\n if (typeof fn !== 'function') throw new TypeError('Method function must be provided');\n schemaType.prototype[name] = fn;\n}\n\nexport { ArraySchema, BooleanSchema, DateSchema, MixedSchema, NumberSchema, ObjectSchema, Schema, StringSchema, TupleSchema, ValidationError, addMethod, create$2 as array, create$7 as bool, create$7 as boolean, create$4 as date, locale as defaultLocale, getIn, isSchema, create as lazy, create$8 as mixed, create$5 as number, create$3 as object, printValue, reach, create$9 as ref, setLocale, create$6 as string, create$1 as tuple };\n","\n\n\n\n\n","\n\n\n","\n\n\n\n\n","\n\n\n","import type { FileAttachment } from \"@/models/fileAttachment\";\n\nexport const getBase64 = (file: File): Promise => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n const base64AndTypeContent: string = reader.result as string;\n const base64Content: string = base64AndTypeContent.substring(base64AndTypeContent.indexOf(\",\") + 1);\n resolve(base64Content);\n };\n reader.onerror = (error) => reject(error);\n });\n};\n\nexport const exportFilesToBase64 = async (fileList: FileList): Promise => {\n const base64FileList: FileAttachment[] = [];\n const files = Array.from(fileList);\n\n for (const file of files) {\n base64FileList.push({\n fileName: file.name,\n fileBase64Contents: await getBase64(file),\n size: file.size,\n });\n }\n\n return base64FileList;\n};\n\nexport const downloadFile = (fileName: string, fileBase64: string): void => {\n const a = document.createElement(\"a\");\n a.href = fileBase64;\n a.download = fileName;\n a.click();\n};\n\nexport const convertToBytes = (sizeInMB: number): number => sizeInMB * 1024 * 1024;\n\nexport const allowedExtensions: string[] = [\".txt\", \".doc\", \".docx\", \".pdf\"];\nexport const basicAllowedImageExtensions: string[] = [\".jpg\", \".png\"];\nexport const allowedImageExtensions: string[] = [...basicAllowedImageExtensions, \".jpeg\", \".gif\"];\n\nexport const excelAllowedExtensions: string[] = [\n \".csv\",\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n \"application/vnd.ms-excel\",\n \"application/vnd.oasis.opendocument.spreadsheet\",\n];\n\nconst LONG_ACCEPTED_TYPES = new Map([\n [excelAllowedExtensions[1], \".xlsx\"],\n [excelAllowedExtensions[2], \".xls, .xlt, .xla\"],\n [excelAllowedExtensions[3], \".ods\"],\n]);\n\nexport const maxFileSizeInMB = 3;\nexport const fileSize1MB = 1;\n\nexport const convertMIMEToExtension = (mime: string): string | string[] => {\n if (!LONG_ACCEPTED_TYPES.has(mime.trim())) {\n return mime;\n }\n const extension = LONG_ACCEPTED_TYPES.get(mime.trim()) as string;\n if (extension.indexOf(\", \") > 0) {\n return extension.split(\", \");\n }\n return extension;\n};\n","import { DefaultModalName, type ComponentModal, type TextModal } from \"@/components/modal/models\";\nimport useManageModal from \"@/components/modal/useManageModal\";\n\ninterface UseModalReturn {\n openComponentModal: (name: string, config: ComponentModal) => void;\n openTextModal: (config: TextModal) => void;\n}\n\nexport default (): UseModalReturn => {\n const { openModal } = useManageModal();\n const openComponentModal = (name: string, config: ComponentModal): void => openModal(name, config);\n const openTextModal = (config: TextModal): void => openModal(DefaultModalName, config);\n\n return {\n openComponentModal,\n openTextModal,\n };\n};\n","import { Ref } from \"vue\";\nimport useModal from \"@/components/modal/useModal\";\nimport i18n from \"@/i18n\";\nimport { exportFilesToBase64 } from \"@/utils/fileUtils\";\nimport { FileAttachment } from \"@/models/fileAttachment\";\n\nconst shortFileNameLength = 100;\ninterface UploadDocumentProps {\n withoutModal: boolean;\n}\ninterface UseUploadDocumentReturn {\n upload: () => void;\n clearFileSelector: () => void;\n deleteDocument: (resetFileSelector: () => void) => void;\n getFileFromInputAndClear: () => Promise;\n}\n\nconst { openTextModal } = useModal();\n\nexport const useUploadDocument = (fileInput: Ref, props: UploadDocumentProps): UseUploadDocumentReturn => {\n const upload = () => fileInput.value?.click();\n\n const clearFileSelector = () => {\n if (fileInput.value) {\n fileInput.value.value = \"\";\n }\n };\n\n const deleteDocument = (resetFileSelector: () => void) => {\n if (props.withoutModal) {\n resetFileSelector();\n return;\n }\n\n openTextModal({\n title: i18n.global.t(\"inputs.upload_document.prompt.delete.title\"),\n contentText: i18n.global.t(\"inputs.upload_document.prompt.delete.description\"),\n showCancelToClose: true,\n confirmCallback: resetFileSelector,\n });\n };\n\n const getFileFromInputAndClear = async (): Promise => {\n const files = fileInput.value?.files;\n if (!files?.length) {\n return;\n }\n const list = await exportFilesToBase64(files);\n clearFileSelector();\n return {\n ...list[0],\n fileName: getValidLengthFileName(list[0].fileName),\n };\n };\n\n const getValidLengthFileName = (fileName: string): string => {\n if (fileName.length <= shortFileNameLength) {\n return fileName;\n }\n const extension = fileName.indexOf(\".\") > 0 ? fileName.split(\".\").pop() : \"\";\n const fileNameCropped = fileName.substring(0, shortFileNameLength - 1 - (extension?.length ?? 0));\n return `${fileNameCropped}.${extension}`;\n };\n\n return { upload, clearFileSelector, deleteDocument, getFileFromInputAndClear };\n};\n","\n\n\n\n\n","export const maxNumberOfTags = 20;\nexport const maximumNumberOfOptionsInQuestion = 5;\n\nexport const guidTextLength = 36;\nexport const smallTextLength = 16;\nexport const mediumTextLength = 200;\nexport const largeTextLength = 2000;\nexport const xLargeTextLength = 4000;\n\nexport const minLevelAnswer = 1;\nexport const maxLevelAnswer = 10;\n\nexport const MAX_AUTOCOMPLETE_ITEMS_TO_SHOW = 5;\n","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n [0, 65533],\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTML = exports.determineBranch = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importDefault(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n /** Bit that needs to be set to convert an upper case ASCII character to lower case */\n CharCodes[CharCodes[\"To_LOWER_BIT\"] = 32] = \"To_LOWER_BIT\";\n})(CharCodes || (CharCodes = {}));\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction getDecoder(decodeTree) {\n return function decodeHTMLBinary(str, strict) {\n var ret = \"\";\n var lastIdx = 0;\n var strIdx = 0;\n while ((strIdx = str.indexOf(\"&\", strIdx)) >= 0) {\n ret += str.slice(lastIdx, strIdx);\n lastIdx = strIdx;\n // Skip the \"&\"\n strIdx += 1;\n // If we have a numeric entity, handle this separately.\n if (str.charCodeAt(strIdx) === CharCodes.NUM) {\n // Skip the leading \"&#\". For hex entities, also skip the leading \"x\".\n var start = strIdx + 1;\n var base = 10;\n var cp = str.charCodeAt(start);\n if ((cp | CharCodes.To_LOWER_BIT) === CharCodes.LOWER_X) {\n base = 16;\n strIdx += 1;\n start += 1;\n }\n do\n cp = str.charCodeAt(++strIdx);\n while ((cp >= CharCodes.ZERO && cp <= CharCodes.NINE) ||\n (base === 16 &&\n (cp | CharCodes.To_LOWER_BIT) >= CharCodes.LOWER_A &&\n (cp | CharCodes.To_LOWER_BIT) <= CharCodes.LOWER_F));\n if (start !== strIdx) {\n var entity = str.substring(start, strIdx);\n var parsed = parseInt(entity, base);\n if (str.charCodeAt(strIdx) === CharCodes.SEMI) {\n strIdx += 1;\n }\n else if (strict) {\n continue;\n }\n ret += (0, decode_codepoint_js_1.default)(parsed);\n lastIdx = strIdx;\n }\n continue;\n }\n var resultIdx = 0;\n var excess = 1;\n var treeIdx = 0;\n var current = decodeTree[treeIdx];\n for (; strIdx < str.length; strIdx++, excess++) {\n treeIdx = determineBranch(decodeTree, current, treeIdx + 1, str.charCodeAt(strIdx));\n if (treeIdx < 0)\n break;\n current = decodeTree[treeIdx];\n var masked = current & BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!strict || str.charCodeAt(strIdx) === CharCodes.SEMI) {\n resultIdx = treeIdx;\n excess = 0;\n }\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (masked >> 14) - 1;\n if (valueLength === 0)\n break;\n treeIdx += valueLength;\n }\n }\n if (resultIdx !== 0) {\n var valueLength = (decodeTree[resultIdx] & BinTrieFlags.VALUE_LENGTH) >> 14;\n ret +=\n valueLength === 1\n ? String.fromCharCode(decodeTree[resultIdx] & ~BinTrieFlags.VALUE_LENGTH)\n : valueLength === 2\n ? String.fromCharCode(decodeTree[resultIdx + 1])\n : String.fromCharCode(decodeTree[resultIdx + 1], decodeTree[resultIdx + 2]);\n lastIdx = strIdx - excess + 1;\n }\n }\n return ret + str.slice(lastIdx);\n };\n}\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string, allowing for entities not terminated by a semi-colon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str) {\n return htmlDecoder(str, false);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semi-colon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, true);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semi-colon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, true);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuoteType = void 0;\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Num\"] = 35] = \"Num\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n // Special tags\n State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n State[State[\"SpecialStartSequence\"] = 23] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 24] = \"InSpecialTag\";\n State[State[\"BeforeEntity\"] = 25] = \"BeforeEntity\";\n State[State[\"BeforeNumericEntity\"] = 26] = \"BeforeNumericEntity\";\n State[State[\"InNamedEntity\"] = 27] = \"InNamedEntity\";\n State[State[\"InNumericEntity\"] = 28] = \"InNumericEntity\";\n State[State[\"InHexEntity\"] = 29] = \"InHexEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isNumber(c) {\n return c >= CharCodes.Zero && c <= CharCodes.Nine;\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nfunction isHexDigit(c) {\n return ((c >= CharCodes.UpperA && c <= CharCodes.UpperF) ||\n (c >= CharCodes.LowerA && c <= CharCodes.LowerF));\n}\nvar QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType = exports.QuoteType || (exports.QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nvar Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]),\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]),\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]),\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]),\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]),\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // ` this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateSpecialStartSequence = function (c) {\n var isEnd = this.sequenceIndex === this.currentSequence.length;\n var isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n if (!isMatch) {\n this.isSpecial = false;\n }\n else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n };\n /** Look for an end tag. For tags, also decode entities. */\n Tokenizer.prototype.stateInSpecialTag = function (c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n var endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n var actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n }\n else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n };\n Tokenizer.prototype.stateCDATASequence = function (c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n };\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n Tokenizer.prototype.fastForwardTo = function (c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n };\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n Tokenizer.prototype.stateInCommentLike = function (c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n };\n Tokenizer.prototype.startSpecial = function (sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n var lower = c | 0x20;\n this.sectionStart = this.index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this.state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? State.BeforeSpecialS\n : State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.baseState = this.state;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n var lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeEntity = function (c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n this.entityResult = 0;\n if (c === CharCodes.Num) {\n this.state = State.BeforeNumericEntity;\n }\n else if (c === CharCodes.Amp) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.state = State.InNamedEntity;\n this.stateInNamedEntity(c);\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n this.entityExcess += 1;\n this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this.index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (masked >> 14) - 1;\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n this.trieIndex += valueLength;\n }\n else {\n // Add 1 as we have already incremented the excess\n var entityStart = this.index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n // If this is a surrogate pair, consume the next two bytes\n this.entityResult = this.trieIndex;\n this.trieIndex += valueLength;\n this.entityExcess = 0;\n this.sectionStart = this.index + 1;\n if (valueLength === 0) {\n this.emitNamedEntity();\n }\n }\n }\n };\n Tokenizer.prototype.emitNamedEntity = function () {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1:\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~decode_js_1.BinTrieFlags.VALUE_LENGTH);\n break;\n case 2:\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n break;\n case 3: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n }\n }\n };\n Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n if ((c | 0x20) === CharCodes.LowerX) {\n this.entityExcess++;\n this.state = State.InHexEntity;\n }\n else {\n this.state = State.InNumericEntity;\n this.stateInNumericEntity(c);\n }\n };\n Tokenizer.prototype.emitNumericEntity = function (strict) {\n var entityStart = this.index - this.entityExcess - 1;\n var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n if (numberStart !== this.index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n this.sectionStart = this.index + Number(strict);\n this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));\n }\n this.state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else if (isHexDigit(c)) {\n this.entityResult =\n this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.allowLegacyEntity = function () {\n return (!this.xmlMode &&\n (this.baseState === State.Text ||\n this.baseState === State.InSpecialTag));\n };\n /**\n * Remove data that has already been consumed from the buffer.\n */\n Tokenizer.prototype.cleanup = function () {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n };\n Tokenizer.prototype.shouldContinue = function () {\n return this.index < this.buffer.length + this.offset && this.running;\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this.shouldContinue()) {\n var c = this.buffer.charCodeAt(this.index - this.offset);\n if (this.state === State.Text) {\n this.stateText(c);\n }\n else if (this.state === State.SpecialStartSequence) {\n this.stateSpecialStartSequence(c);\n }\n else if (this.state === State.InSpecialTag) {\n this.stateInSpecialTag(c);\n }\n else if (this.state === State.CDATASequence) {\n this.stateCDATASequence(c);\n }\n else if (this.state === State.InAttributeValueDq) {\n this.stateInAttributeValueDoubleQuotes(c);\n }\n else if (this.state === State.InAttributeName) {\n this.stateInAttributeName(c);\n }\n else if (this.state === State.InCommentLike) {\n this.stateInCommentLike(c);\n }\n else if (this.state === State.InSpecialComment) {\n this.stateInSpecialComment(c);\n }\n else if (this.state === State.BeforeAttributeName) {\n this.stateBeforeAttributeName(c);\n }\n else if (this.state === State.InTagName) {\n this.stateInTagName(c);\n }\n else if (this.state === State.InClosingTagName) {\n this.stateInClosingTagName(c);\n }\n else if (this.state === State.BeforeTagName) {\n this.stateBeforeTagName(c);\n }\n else if (this.state === State.AfterAttributeName) {\n this.stateAfterAttributeName(c);\n }\n else if (this.state === State.InAttributeValueSq) {\n this.stateInAttributeValueSingleQuotes(c);\n }\n else if (this.state === State.BeforeAttributeValue) {\n this.stateBeforeAttributeValue(c);\n }\n else if (this.state === State.BeforeClosingTagName) {\n this.stateBeforeClosingTagName(c);\n }\n else if (this.state === State.AfterClosingTagName) {\n this.stateAfterClosingTagName(c);\n }\n else if (this.state === State.BeforeSpecialS) {\n this.stateBeforeSpecialS(c);\n }\n else if (this.state === State.InAttributeValueNq) {\n this.stateInAttributeValueNoQuotes(c);\n }\n else if (this.state === State.InSelfClosingTag) {\n this.stateInSelfClosingTag(c);\n }\n else if (this.state === State.InDeclaration) {\n this.stateInDeclaration(c);\n }\n else if (this.state === State.BeforeDeclaration) {\n this.stateBeforeDeclaration(c);\n }\n else if (this.state === State.BeforeComment) {\n this.stateBeforeComment(c);\n }\n else if (this.state === State.InProcessingInstruction) {\n this.stateInProcessingInstruction(c);\n }\n else if (this.state === State.InNamedEntity) {\n this.stateInNamedEntity(c);\n }\n else if (this.state === State.BeforeEntity) {\n this.stateBeforeEntity(c);\n }\n else if (this.state === State.InHexEntity) {\n this.stateInHexEntity(c);\n }\n else if (this.state === State.InNumericEntity) {\n this.stateInNumericEntity(c);\n }\n else {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n this.index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n if (this.state === State.InNamedEntity) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this.index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n /** Handle any trailing data. */\n Tokenizer.prototype.handleTrailingData = function () {\n var endIndex = this.buffer.length + this.offset;\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InNumericEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InHexEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n };\n Tokenizer.prototype.emitPartial = function (start, endIndex) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribdata(start, endIndex);\n }\n else {\n this.cbs.ontext(start, endIndex);\n }\n };\n Tokenizer.prototype.emitCodePoint = function (cp) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribentity(cp);\n }\n else {\n this.cbs.ontextentity(cp);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = void 0;\nvar Tokenizer_js_1 = __importStar(require(\"./Tokenizer.js\"));\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nvar pTag = new Set([\"p\"]);\nvar tableSectionTags = new Set([\"thead\", \"tbody\"]);\nvar ddtTags = new Set([\"dd\", \"dt\"]);\nvar rtpTags = new Set([\"rt\", \"rp\"]);\nvar openImpliesClose = new Map([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\nvar voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nvar foreignContextElements = new Set([\"math\", \"svg\"]);\nvar htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nvar reNameEnd = /\\s|\\//;\nvar Parser = /** @class */ (function () {\n function Parser(cbs, options) {\n if (options === void 0) { options = {}; }\n var _a, _b, _c, _d, _e;\n this.options = options;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n this.openTagStart = 0;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.foreignContext = [];\n this.buffers = [];\n this.bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n this.writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;\n this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_js_1.default)(this.options, this);\n (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n }\n // Tokenizer event handlers\n /** @internal */\n Parser.prototype.ontext = function (start, endIndex) {\n var _a, _b;\n var data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n this.startIndex = endIndex;\n };\n /** @internal */\n Parser.prototype.ontextentity = function (cp) {\n var _a, _b;\n /*\n * Entities can be emitted on the character, or directly after.\n * We use the section start here to get accurate indices.\n */\n var idx = this.tokenizer.getSectionStart();\n this.endIndex = idx - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, (0, decode_js_1.fromCodePoint)(cp));\n this.startIndex = idx;\n };\n Parser.prototype.isVoidElement = function (name) {\n return !this.options.xmlMode && voidElements.has(name);\n };\n /** @internal */\n Parser.prototype.onopentagname = function (start, endIndex) {\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n };\n Parser.prototype.emitOpenTag = function (name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n var impliesClose = !this.options.xmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 &&\n impliesClose.has(this.stack[this.stack.length - 1])) {\n var el = this.stack.pop();\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, el, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.push(name);\n if (foreignContextElements.has(name)) {\n this.foreignContext.push(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.push(false);\n }\n }\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n };\n Parser.prototype.endOpenTag = function (isImplied) {\n var _a, _b;\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n this.tagname = \"\";\n };\n /** @internal */\n Parser.prototype.onopentagend = function (endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onclosetag = function (start, endIndex) {\n var _a, _b, _c, _d, _e, _f;\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name)) {\n this.foreignContext.pop();\n }\n if (!this.isVoidElement(name)) {\n var pos = this.stack.lastIndexOf(name);\n if (pos !== -1) {\n if (this.cbs.onclosetag) {\n var count = this.stack.length - pos;\n while (count--) {\n // We know the stack has sufficient elements.\n this.cbs.onclosetag(this.stack.pop(), count !== 0);\n }\n }\n else\n this.stack.length = pos;\n }\n else if (!this.options.xmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (!this.options.xmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, \"br\");\n (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\", {}, true);\n (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onselfclosingtag = function (endIndex) {\n this.endIndex = endIndex;\n if (this.options.xmlMode ||\n this.options.recognizeSelfClosing ||\n this.foreignContext[this.foreignContext.length - 1]) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n };\n Parser.prototype.closeCurrentTag = function (isOpenImplied) {\n var _a, _b;\n var name = this.tagname;\n this.endOpenTag(isOpenImplied);\n // Self-closing tags will be on the top of the stack\n if (this.stack[this.stack.length - 1] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n this.stack.pop();\n }\n };\n /** @internal */\n Parser.prototype.onattribname = function (start, endIndex) {\n this.startIndex = start;\n var name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n };\n /** @internal */\n Parser.prototype.onattribdata = function (start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n };\n /** @internal */\n Parser.prototype.onattribentity = function (cp) {\n this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);\n };\n /** @internal */\n Parser.prototype.onattribend = function (quote, endIndex) {\n var _a, _b;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double\n ? '\"'\n : quote === Tokenizer_js_1.QuoteType.Single\n ? \"'\"\n : quote === Tokenizer_js_1.QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n };\n Parser.prototype.getInstructionName = function (value) {\n var idx = value.search(reNameEnd);\n var name = idx < 0 ? value : value.substr(0, idx);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n };\n /** @internal */\n Parser.prototype.ondeclaration = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"!\".concat(name), \"!\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onprocessinginstruction = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"?\".concat(name), \"?\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncomment = function (start, endIndex, offset) {\n var _a, _b, _c, _d;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncdata = function (start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex - offset);\n if (this.options.xmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, \"[CDATA[\".concat(value, \"]]\"));\n (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onend = function () {\n var _a, _b;\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (var i = this.stack.length; i > 0; this.cbs.onclosetag(this.stack[--i], true))\n ;\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n Parser.prototype.reset = function () {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this.buffers.length = 0;\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n };\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n Parser.prototype.parseComplete = function (data) {\n this.reset();\n this.end(data);\n };\n Parser.prototype.getSlice = function (start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n var str = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n str += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return str;\n };\n Parser.prototype.shiftBuffer = function () {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n };\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n Parser.prototype.write = function (chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n };\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n Parser.prototype.end = function (chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n };\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n Parser.prototype.pause = function () {\n this.tokenizer.pause();\n };\n /**\n * Resumes parsing after `pause` was called.\n */\n Parser.prototype.resume = function () {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n };\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n Parser.prototype.parseChunk = function (chunk) {\n this.write(chunk);\n };\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n Parser.prototype.done = function (chunk) {\n this.end(chunk);\n };\n return Parser;\n}());\nexports.Parser = Parser;\n//# sourceMappingURL=Parser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n for (var i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \" \"], [0, \" \"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? function (str, index) { return str.codePointAt(index); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c, index) {\n return (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n };\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nfunction encodeXML(str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = exports.xmlReplacer.exec(str)) !== null) {\n var i = match.index;\n var char = str.charCodeAt(i);\n var next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexports.escape = encodeXML;\nfunction getEscaper(regex, map) {\n return function escape(data) {\n var match;\n var lastIdx = 0;\n var result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this chararcter will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexports.escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = regExp.exec(str)) !== null) {\n var i = match.index;\n ret += str.substring(lastIdx, i);\n var char = str.charCodeAt(i);\n var next = encode_html_js_1.default.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n var nextChar = str.charCodeAt(i + 1);\n var value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entitiy.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n var cp = (0, escape_js_1.getCodePoint)(str, i);\n ret += \"&#x\".concat(cp.toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.DecodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\n/** Determines whether some entities are allowed to be written without a trailing `;`. */\nvar DecodingMode;\n(function (DecodingMode) {\n /** Support legacy HTML entities. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Do not support legacy HTML entities. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === DecodingMode.Strict) {\n return (0, decode_js_1.decodeHTMLStrict)(data);\n }\n return (0, decode_js_1.decodeHTML)(data);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === DecodingMode.Legacy) {\n return (0, decode_js_1.decodeHTML)(data);\n }\n return (0, decode_js_1.decodeHTMLStrict)(data);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return (0, escape_js_1.escapeUTF8)(data);\n if (opts.mode === EncodingMode.Attribute)\n return (0, escape_js_1.escapeAttribute)(data);\n if (opts.mode === EncodingMode.Text)\n return (0, escape_js_1.escapeText)(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return (0, encode_js_1.encodeNonAsciiHTML)(data);\n }\n return (0, encode_js_1.encodeHTML)(data);\n }\n // ASCII and Extensive are equivalent\n return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(attribs);\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"</\".concat(elem.name, \">\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"<![CDATA[\".concat(elem.children[0].data, \"]]>\");\n}\nfunction renderComment(elem) {\n return \"<!--\".concat(elem.data, \"-->\");\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.innerText = exports.textContent = exports.getText = exports.getInnerHTML = exports.getOuterHTML = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\nexports.getOuterHTML = getOuterHTML;\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\nexports.getInnerHTML = getInnerHTML;\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `<br>` tags.\n *\n * @category Stringify\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.getText = getText;\n/**\n * Get a node's text content.\n *\n * @category Stringify\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.textContent = textContent;\n/**\n * Get a node's inner text.\n *\n * @category Stringify\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.innerText = innerText;\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prevElementSibling = exports.nextElementSibling = exports.getName = exports.hasAttrib = exports.getAttributeValue = exports.getSiblings = exports.getParent = exports.getChildren = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Get a node's children.\n *\n * @category Traversal\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];\n}\nexports.getChildren = getChildren;\n/**\n * Get a node's parent.\n *\n * @category Traversal\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\nexports.getParent = getParent;\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first. If we don't\n * have a parent (the element is a root node), we walk the element's `prev` &\n * `next` to get all remaining nodes.\n *\n * @category Traversal\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\nexports.getSiblings = getSiblings;\n/**\n * Gets an attribute from an element.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\nexports.getAttributeValue = getAttributeValue;\n/**\n * Checks whether an element has an attribute.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\nexports.hasAttrib = hasAttrib;\n/**\n * Get the tag name of an element.\n *\n * @category Traversal\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\nexports.getName = getName;\n/**\n * Returns the next element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\nexports.nextElementSibling = nextElementSibling;\n/**\n * Returns the previous element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\nexports.prevElementSibling = prevElementSibling;\n//# sourceMappingURL=traversal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepend = exports.prependChild = exports.append = exports.appendChild = exports.replaceElement = exports.removeElement = void 0;\n/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n childs.splice(childs.lastIndexOf(elem), 1);\n }\n}\nexports.removeElement = removeElement;\n/**\n * Replace an element in the dom\n *\n * @category Manipulation\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n elem.parent = null;\n }\n}\nexports.replaceElement = replaceElement;\n/**\n * Append a child to an element.\n *\n * @category Manipulation\n * @param elem The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(elem, child) {\n removeElement(child);\n child.next = null;\n child.parent = elem;\n if (elem.children.push(child) > 1) {\n var sibling = elem.children[elem.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\nexports.appendChild = appendChild;\n/**\n * Append an element after another.\n *\n * @category Manipulation\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\nexports.append = append;\n/**\n * Prepend a child to an element.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(elem, child) {\n removeElement(child);\n child.parent = elem;\n child.prev = null;\n if (elem.children.unshift(child) !== 1) {\n var sibling = elem.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\nexports.prependChild = prependChild;\n/**\n * Prepend an element before another.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\nexports.prepend = prepend;\n//# sourceMappingURL=manipulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findAll = exports.existsOne = exports.findOne = exports.findOneChild = exports.find = exports.filter = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n if (!Array.isArray(node))\n node = [node];\n return find(test, node, recurse, limit);\n}\nexports.filter = filter;\n/**\n * Search an array of node and its children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var elem = nodes_1[_i];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n break;\n }\n if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n var children = find(test, elem.children, recurse, limit);\n result.push.apply(result, children);\n limit -= children.length;\n if (limit <= 0)\n break;\n }\n }\n return result;\n}\nexports.find = find;\n/**\n * Finds the first element inside of an array that matches a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n * @deprecated Use `Array.prototype.find` directly.\n */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\nexports.findOneChild = findOneChild;\n/**\n * Finds one element in a tree that passes a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first child node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var elem = null;\n for (var i = 0; i < nodes.length && !elem; i++) {\n var checked = nodes[i];\n if (!(0, domhandler_1.isTag)(checked)) {\n continue;\n }\n else if (test(checked)) {\n elem = checked;\n }\n else if (recurse && checked.children.length > 0) {\n elem = findOne(test, checked.children, true);\n }\n }\n return elem;\n}\nexports.findOne = findOne;\n/**\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing the test.\n */\nfunction existsOne(test, nodes) {\n return nodes.some(function (checked) {\n return (0, domhandler_1.isTag)(checked) &&\n (test(checked) ||\n (checked.children.length > 0 &&\n existsOne(test, checked.children)));\n });\n}\nexports.existsOne = existsOne;\n/**\n * Search and array of nodes and its children for elements passing a test function.\n *\n * Same as `find`, but limited to elements and with less options, leading to reduced complexity.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n var _a;\n var result = [];\n var stack = nodes.filter(domhandler_1.isTag);\n var elem;\n while ((elem = stack.shift())) {\n var children = (_a = elem.children) === null || _a === void 0 ? void 0 : _a.filter(domhandler_1.isTag);\n if (children && children.length > 0) {\n stack.unshift.apply(stack, children);\n }\n if (test(elem))\n result.push(elem);\n }\n return result;\n}\nexports.findAll = findAll;\n//# sourceMappingURL=querying.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getElementsByTagType = exports.getElementsByTagName = exports.getElementById = exports.getElements = exports.testElement = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_js_1 = require(\"./querying.js\");\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a\n * particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either of the input\n * functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * @param options An object describing nodes to look for.\n * @returns A function executing all checks in `options` and returning `true` if\n * any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\nexports.testElement = testElement;\n/**\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];\n}\nexports.getElements = getElements;\n/**\n * @category Legacy Query Functions\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_js_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\nexports.getElementById = getElementById;\n/**\n * @category Legacy Query Functions\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\nexports.getElementsByTagName = getElementsByTagName;\n/**\n * @category Legacy Query Functions\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\nexports.getElementsByTagType = getElementsByTagType;\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uniqueSort = exports.compareDocumentPosition = exports.DocumentPosition = exports.removeSubsets = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't subtrees of each other.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\nexports.removeSubsets = removeSubsets;\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nvar DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition = exports.DocumentPosition || (exports.DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document.\n * The return value is a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\nexports.compareDocumentPosition = compareDocumentPosition;\n/**\n * Sort an array of nodes based on their relative position in the document and\n * remove any duplicate nodes. If the array contains nodes that do not belong to\n * the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\nexports.uniqueSort = uniqueSort;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = void 0;\nvar stringify_js_1 = require(\"./stringify.js\");\nvar legacy_js_1 = require(\"./legacy.js\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @category Feeds\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\nexports.getFeed = getFeed;\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_js_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_js_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_js_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs[\"medium\"],\n isDefault: !!attribs[\"isDefault\"],\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs[\"expression\"]) {\n media.expression = attribs[\"expression\"];\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n//# sourceMappingURL=feeds.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify.js\"), exports);\n__exportStar(require(\"./traversal.js\"), exports);\n__exportStar(require(\"./manipulation.js\"), exports);\n__exportStar(require(\"./querying.js\"), exports);\n__exportStar(require(\"./legacy.js\"), exports);\n__exportStar(require(\"./helpers.js\"), exports);\n__exportStar(require(\"./feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultHandler = exports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DomHandler = exports.Parser = void 0;\nvar Parser_js_1 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_1.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_1.DomHandler; } });\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_1.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_js_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param cb A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCb An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(cb, options, elementCb) {\n var handler = new domhandler_1.DomHandler(cb, options, elementCb);\n return new Parser_js_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nexports.ElementType = ElementType;\nvar domutils_1 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_1.getFeed; } });\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = { xmlMode: true }; }\n return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.parseFeed = parseFeed;\nexports.DomUtils = __importStar(require(\"domutils\"));\n//# sourceMappingURL=index.js.map","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/**\n * Srcset Parser\n *\n * By Alex Bell | MIT License\n *\n * JS Parser for the string value that appears in markup <img srcset=\"here\">\n *\n * @returns Array [{url: _, d: _, w: _, h:_}, ...]\n *\n * Based super duper closely on the reference algorithm at:\n * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n *\n * Most comments are copied in directly from the spec\n * (except for comments in parens).\n */\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.parseSrcset = factory();\n\t}\n}(this, function () {\n\n\t// 1. Let input be the value passed to this algorithm.\n\treturn function (input) {\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// Manual is faster than RegEx\n\t\t// http://bjorn.tipling.com/state-and-regular-expressions-in-javascript\n\t\t// http://jsperf.com/whitespace-character/5\n\t\tfunction isSpace(c) {\n\t\t\treturn (c === \"\\u0020\" || // space\n\t\t\tc === \"\\u0009\" || // horizontal tab\n\t\t\tc === \"\\u000A\" || // new line\n\t\t\tc === \"\\u000C\" || // form feed\n\t\t\tc === \"\\u000D\"); // carriage return\n\t\t}\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t\tmatch = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\n\t\t\t// (Don't use \\s, to avoid matching non-breaking space)\n\t\t\tregexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t\t\tregexTrailingCommas = /[,]+$/,\n\t\t\tregexNonNegativeInteger = /^\\d+$/,\n\n\t\t\t// ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t\t\t// Must include at least one digit.\n\t\t\t// According to spec tests any decimal point must be followed by a digit.\n\t\t\t// No leading plus sign is allowed.)\n\t\t\t// https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t\t\tregexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,\n\n\t\t\turl,\n\t\t\tdescriptors,\n\t\t\tcurrentDescriptor,\n\t\t\tstate,\n\t\t\tc,\n\n\t\t\t// 2. Let position be a pointer into input, initially pointing at the start\n\t\t\t// of the string.\n\t\t\tpos = 0,\n\n\t\t\t// 3. Let candidates be an initially empty source set.\n\t\t\tcandidates = [];\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\n\t\t/**\n\t\t * Tokenizes descriptor properties prior to parsing\n\t\t * Returns undefined.\n\t\t */\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t\t// Space character\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors and let current descriptor be the empty string.\n\t\t\t\t\t// Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t/**\n\t\t * Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t * @return undefined\n\t\t */\n\t\t// Declared outside of the while loop so that it's only created once.\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t\t// 10. Let width be absent.\n\t\t\t\t// 11. Let density be absent.\n\t\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t\tw, d, h, i,\n\t\t\t\tcandidate = {},\n\t\t\t\tdesc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tcandidates.push(candidate);\n\t\t\t} else if (console && console.log) {\n\t\t\t\tconsole.log(\"Invalid srcset descriptor found in '\" +\n\t\t\t\t\tinput + \"' at '\" + desc + \"'.\");\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t}\n}));\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","export default {}","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : '<css input>'\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n if (terminalHighlight) {\n if (color) css = terminalHighlight(css)\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n\n let maxWidth = String(end).length\n\n let mark, aside\n if (color) {\n let { bold, red, gray } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n } else {\n mark = aside = str => str\n }\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n return mark('>') + aside(gutter) + line + '\\n ' + spacing + mark('^')\n }\n return ' ' + aside(gutter) + line\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nconst DEFAULT_RAW = {\n colon: ': ',\n indent: ' ',\n beforeDecl: '\\n',\n beforeRule: '\\n',\n beforeOpen: ' ',\n beforeClose: '\\n',\n beforeComment: '\\n',\n after: '\\n',\n emptyBody: '',\n commentLeft: ' ',\n commentRight: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n\n document(node) {\n this.body(node)\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { start, end } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { line: start.line, column: start.column },\n { line: end.line, column: end.column },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n inputId,\n start: value.start,\n end: value.end\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n positionInside(index) {\n let string = this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { line, column }\n }\n\n positionBy(opts) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index)\n } else if (opts.word) {\n let index = this.toString().indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index)\n }\n return pos\n }\n\n rangeBy(opts) {\n let start = {\n line: this.source.start.line,\n column: this.source.start.column\n }\n let end = this.source.end\n ? {\n line: this.source.end.line,\n column: this.source.end.column + 1\n }\n : {\n line: start.line,\n column: start.column + 1\n }\n\n if (opts.word) {\n let index = this.toString().indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index)\n end = this.positionInside(index + opts.word.length)\n }\n } else {\n if (opts.start) {\n start = {\n line: opts.start.line,\n column: opts.start.column\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n line: opts.end.line,\n column: opts.end.column\n }\n } else if (opts.endIndex) {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { line: start.line, column: start.column + 1 }\n }\n\n return { start, end }\n }\n\n getProxyProcessor() {\n return {\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n },\n\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n }\n }\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length))\n }\n\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\nlet { resolve, isAbsolute } = require('path')\nlet { nanoid } = require('nanoid/non-secure')\n\nlet terminalHighlight = require('./terminal-highlight')\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = '<input css ' + nanoid(6) + '>'\n }\n if (this.map) this.map.file = this.from\n }\n\n fromOffset(offset) {\n let lastLine, lineToIndex\n if (!this[fromOffsetCache]) {\n let lines = this.css.split('\\n')\n lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n line: min + 1,\n col: offset - lineToIndex[min] + 1\n }\n }\n\n error(message, line, column, opts = {}) {\n let result, endLine, endColumn\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof start.offset === 'number') {\n let pos = this.fromOffset(start.offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n }\n if (typeof end.offset === 'number') {\n let pos = this.fromOffset(end.offset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n }\n } else if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { line: origin.line, column: origin.column },\n origin.endLine === undefined\n ? origin.column\n : { line: origin.endLine, column: origin.endColumn },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { line, column },\n endLine === undefined ? column : { line: endLine, column: endColumn },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { line, column, endLine, endColumn, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ line, column })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ line: endLine, column: endColumn })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n url: fromUrl.toString(),\n line: from.line,\n column: from.column,\n endLine: to && to.line,\n endColumn: to && to.column\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n get from() {\n return this.file || this.id\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, resolve, relative, sep } = require('path')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.css, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.indexOf('# sourceMappingURL=') === 0) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/(\\n)?\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n this.map.setSourceContent(from, this.css)\n }\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = map.sourcesContent.map(() => null)\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev)\n } else {\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n this.map.addMapping({\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>',\n generated: { line: 1, column: 0 },\n original: { line: 1, column: 0 }\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n path(file) {\n if (file.indexOf('<') === 0) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n if (this.mapOpts.absolute) return file\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n file = relative(from, file)\n return file\n }\n\n toUrl(path) {\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n return encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n }\n\n toFileUrl(path) {\n if (pathToFileURL) {\n return pathToFileURL(path).toString()\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n\n let line = 1\n let column = 1\n\n let noSource = '<no source>'\n let mapping = {\n source: '',\n generated: { line: 0, column: 0 },\n original: { line: 0, column: 0 }\n }\n\n let lines, last\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet Declaration = require('./declaration')\nlet Comment = require('./comment')\nlet Node = require('./node')\n\nlet parse, Rule, AtRule, Root\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markDirtyUp(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markDirtyUp(i)\n }\n }\n}\n\nclass Container extends Node {\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markDirtyUp(i)\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n getProxyProcessor() {\n return {\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n },\n\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n }\n }\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n plugin: this.plugin,\n index: this.index,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, next, quote, content, escape\n let escaped, escapePos, prev, n, currentToken\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n nextToken,\n endOfFile,\n position\n }\n}\n","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet list = {\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n comma(string) {\n return list.split(string, [','], true)\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet tokenizer = require('./tokenize')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n this.customProperty = false\n\n this.createTokenizer()\n this.root.source = { input, start: { offset: 0, line: 1, column: 1 } }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().indexOf('!') === 0 && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().indexOf('!') === 0) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n offset,\n line: pos.line,\n column: pos.col\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n start: this.getPosition(offset),\n input: this.input\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { value, raw }\n }\n node[prop] = value\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n colon(tokens) {\n let brackets = 0\n let token, type, prev\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n // Errors\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word',\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet Container = require('./container')\nlet Parser = require('./parser')\nlet Input = require('./input')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet Container = require('./container')\nlet Document = require('./document')\nlet warnOnce = require('./warn-once')\nlet Result = require('./result')\nlet parse = require('./parse')\nlet Root = require('./root')\n\nconst TYPE_TO_CLASS_NAME = {\n document: 'Document',\n root: 'Root',\n atrule: 'AtRule',\n rule: 'Rule',\n decl: 'Declaration',\n comment: 'Comment'\n}\n\nconst PLUGIN_PROPS = {\n postcssPlugin: true,\n prepare: true,\n Once: true,\n Document: true,\n Root: true,\n Declaration: true,\n Rule: true,\n AtRule: true,\n Comment: true,\n DeclarationExit: true,\n RuleExit: true,\n AtRuleExit: true,\n CommentExit: true,\n RootExit: true,\n DocumentExit: true,\n OnceExit: true\n}\n\nconst NOT_VISITORS = {\n postcssPlugin: true,\n prepare: true,\n Once: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n node,\n events,\n eventIndex: 0,\n visitors: [],\n visitorIndex: 0,\n iterator: 0\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, result: this.result, postcss }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n\n get processor() {\n return this.result.processor\n }\n\n get opts() {\n return this.result.opts\n }\n\n get css() {\n return this.stringify().css\n }\n\n get content() {\n return this.stringify().content\n }\n\n get map() {\n return this.stringify().map\n }\n\n get root() {\n return this.sync().root\n }\n\n get messages() {\n return this.sync().messages\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n toString() {\n return this.css\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\nlet parse = require('./parse')\nconst Result = require('./result')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n\n get processor() {\n return this.result.processor\n }\n\n get opts() {\n return this.result.opts\n }\n\n get css() {\n return this.result.css\n }\n\n get content() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get messages() {\n return []\n }\n\n warnings() {\n return []\n }\n\n toString() {\n return this._css\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet NoWorkResult = require('./no-work-result')\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.24'\n this.plugins = this.normalize(plugins)\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n\n process(css, opts = {}) {\n if (\n this.plugins.length === 0 &&\n typeof opts.parser === 'undefined' &&\n typeof opts.stringifier === 'undefined' &&\n typeof opts.syntax === 'undefined'\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet PreviousMap = require('./previous-map')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Input = require('./input')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet LazyResult = require('./lazy-result')\nlet Container = require('./container')\nlet Processor = require('./processor')\nlet stringify = require('./stringify')\nlet fromJSON = require('./fromJSON')\nlet Document = require('./document')\nlet Warning = require('./warning')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Result = require('./result.js')\nlet Input = require('./input')\nlet parse = require('./parse')\nlet list = require('./list')\nlet Rule = require('./rule')\nlet Root = require('./root')\nlet Node = require('./node')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","const htmlparser = require('htmlparser2');\nconst escapeStringRegexp = require('escape-string-regexp');\nconst { isPlainObject } = require('is-plain-object');\nconst deepmerge = require('deepmerge');\nconst parseSrcset = require('parse-srcset');\nconst { parse: postcssParse } = require('postcss');\n// Tags that can conceivably represent stand-alone media.\nconst mediaTags = [\n 'img', 'audio', 'video', 'picture', 'svg',\n 'object', 'map', 'iframe', 'embed'\n];\n// Tags that are inherently vulnerable to being used in XSS attacks.\nconst vulnerableTags = [ 'script', 'style' ];\n\nfunction each(obj, cb) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n cb(obj[key], key);\n });\n }\n}\n\n// Avoid false positives with .__proto__, .hasOwnProperty, etc.\nfunction has(obj, key) {\n return ({}).hasOwnProperty.call(obj, key);\n}\n\n// Returns those elements of `a` for which `cb(a)` returns truthy\nfunction filter(a, cb) {\n const n = [];\n each(a, function(v) {\n if (cb(v)) {\n n.push(v);\n }\n });\n return n;\n}\n\nfunction isEmptyObject(obj) {\n for (const key in obj) {\n if (has(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction stringifySrcset(parsedSrcset) {\n return parsedSrcset.map(function(part) {\n if (!part.url) {\n throw new Error('URL missing');\n }\n\n return (\n part.url +\n (part.w ? ` ${part.w}w` : '') +\n (part.h ? ` ${part.h}h` : '') +\n (part.d ? ` ${part.d}x` : '')\n );\n }).join(', ');\n}\n\nmodule.exports = sanitizeHtml;\n\n// A valid attribute name.\n// We use a tolerant definition based on the set of strings defined by\n// html.spec.whatwg.org/multipage/parsing.html#before-attribute-name-state\n// and html.spec.whatwg.org/multipage/parsing.html#attribute-name-state .\n// The characters accepted are ones which can be appended to the attribute\n// name buffer without triggering a parse error:\n// * unexpected-equals-sign-before-attribute-name\n// * unexpected-null-character\n// * unexpected-character-in-attribute-name\n// We exclude the empty string because it's impossible to get to the after\n// attribute name state with an empty attribute name buffer.\nconst VALID_HTML_ATTRIBUTE_NAME = /^[^\\0\\t\\n\\f\\r /<=>]+$/;\n\n// Ignore the _recursing flag; it's there for recursive\n// invocation as a guard against this exploit:\n// https://github.com/fb55/htmlparser2/issues/105\n\nfunction sanitizeHtml(html, options, _recursing) {\n if (html == null) {\n return '';\n }\n if (typeof html === 'number') {\n html = html.toString();\n }\n\n let result = '';\n // Used for hot swapping the result variable with an empty string in order to \"capture\" the text written to it.\n let tempResult = '';\n\n function Frame(tag, attribs) {\n const that = this;\n this.tag = tag;\n this.attribs = attribs || {};\n this.tagPosition = result.length;\n this.text = ''; // Node inner text\n this.mediaChildren = [];\n\n this.updateParentNodeText = function() {\n if (stack.length) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.text += that.text;\n }\n };\n\n this.updateParentNodeMediaChildren = function() {\n if (stack.length && mediaTags.includes(this.tag)) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.mediaChildren.push(this.tag);\n }\n };\n }\n\n options = Object.assign({}, sanitizeHtml.defaults, options);\n options.parser = Object.assign({}, htmlParserDefaults, options.parser);\n\n const tagAllowed = function (name) {\n return options.allowedTags === false || (options.allowedTags || []).indexOf(name) > -1;\n };\n\n // vulnerableTags\n vulnerableTags.forEach(function (tag) {\n if (tagAllowed(tag) && !options.allowVulnerableTags) {\n console.warn(`\\n\\n⚠️ Your \\`allowedTags\\` option includes, \\`${tag}\\`, which is inherently\\nvulnerable to XSS attacks. Please remove it from \\`allowedTags\\`.\\nOr, to disable this warning, add the \\`allowVulnerableTags\\` option\\nand ensure you are accounting for this risk.\\n\\n`);\n }\n });\n\n // Tags that contain something other than HTML, or where discarding\n // the text when the tag is disallowed makes sense for other reasons.\n // If we are not allowing these tags, we should drop their content too.\n // For other tags you would drop the tag but keep its content.\n const nonTextTagsArray = options.nonTextTags || [\n 'script',\n 'style',\n 'textarea',\n 'option'\n ];\n let allowedAttributesMap;\n let allowedAttributesGlobMap;\n if (options.allowedAttributes) {\n allowedAttributesMap = {};\n allowedAttributesGlobMap = {};\n each(options.allowedAttributes, function(attributes, tag) {\n allowedAttributesMap[tag] = [];\n const globRegex = [];\n attributes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else {\n allowedAttributesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedAttributesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n });\n }\n const allowedClassesMap = {};\n const allowedClassesGlobMap = {};\n const allowedClassesRegexMap = {};\n each(options.allowedClasses, function(classes, tag) {\n // Implicitly allows the class attribute\n if (allowedAttributesMap) {\n if (!has(allowedAttributesMap, tag)) {\n allowedAttributesMap[tag] = [];\n }\n allowedAttributesMap[tag].push('class');\n }\n\n allowedClassesMap[tag] = classes;\n\n if (Array.isArray(classes)) {\n const globRegex = [];\n allowedClassesMap[tag] = [];\n allowedClassesRegexMap[tag] = [];\n classes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else if (obj instanceof RegExp) {\n allowedClassesRegexMap[tag].push(obj);\n } else {\n allowedClassesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedClassesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n }\n });\n\n const transformTagsMap = {};\n let transformTagsAll;\n each(options.transformTags, function(transform, tag) {\n let transFun;\n if (typeof transform === 'function') {\n transFun = transform;\n } else if (typeof transform === 'string') {\n transFun = sanitizeHtml.simpleTransform(transform);\n }\n if (tag === '*') {\n transformTagsAll = transFun;\n } else {\n transformTagsMap[tag] = transFun;\n }\n });\n\n let depth;\n let stack;\n let skipMap;\n let transformMap;\n let skipText;\n let skipTextDepth;\n let addedText = false;\n\n initializeState();\n\n const parser = new htmlparser.Parser({\n onopentag: function(name, attribs) {\n // If `enforceHtmlBoundary` is `true` and this has found the opening\n // `html` tag, reset the state.\n if (options.enforceHtmlBoundary && name === 'html') {\n initializeState();\n }\n\n if (skipText) {\n skipTextDepth++;\n return;\n }\n const frame = new Frame(name, attribs);\n stack.push(frame);\n\n let skip = false;\n const hasText = !!frame.text;\n let transformedTag;\n if (has(transformTagsMap, name)) {\n transformedTag = transformTagsMap[name](name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n\n if (transformedTag.text !== undefined) {\n frame.innerText = transformedTag.text;\n }\n\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n if (transformTagsAll) {\n transformedTag = transformTagsAll(name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n\n if (!tagAllowed(name) || (options.disallowedTagsMode === 'recursiveEscape' && !isEmptyObject(skipMap)) || (options.nestingLimit != null && depth >= options.nestingLimit)) {\n skip = true;\n skipMap[depth] = true;\n if (options.disallowedTagsMode === 'discard') {\n if (nonTextTagsArray.indexOf(name) !== -1) {\n skipText = true;\n skipTextDepth = 1;\n }\n }\n skipMap[depth] = true;\n }\n depth++;\n if (skip) {\n if (options.disallowedTagsMode === 'discard') {\n // We want the contents but not this tag\n return;\n }\n tempResult = result;\n result = '';\n }\n result += '<' + name;\n\n if (name === 'script') {\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n frame.innerText = '';\n }\n }\n\n if (!allowedAttributesMap || has(allowedAttributesMap, name) || allowedAttributesMap['*']) {\n each(attribs, function(value, a) {\n if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) {\n // This prevents part of an attribute name in the output from being\n // interpreted as the end of an attribute, or end of a tag.\n delete frame.attribs[a];\n return;\n }\n // If the value is empty, and this is a known non-boolean attribute, delete it\n // List taken from https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n if (value === '' && (options.nonBooleanAttributes.includes(a) || options.nonBooleanAttributes.includes('*'))) {\n delete frame.attribs[a];\n return;\n }\n // check allowedAttributesMap for the element and attribute and modify the value\n // as necessary if there are specific values defined.\n let passedAllowedAttributesMapCheck = false;\n if (!allowedAttributesMap ||\n (has(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1) ||\n (allowedAttributesMap['*'] && allowedAttributesMap['*'].indexOf(a) !== -1) ||\n (has(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a)) ||\n (allowedAttributesGlobMap['*'] && allowedAttributesGlobMap['*'].test(a))) {\n passedAllowedAttributesMapCheck = true;\n } else if (allowedAttributesMap && allowedAttributesMap[name]) {\n for (const o of allowedAttributesMap[name]) {\n if (isPlainObject(o) && o.name && (o.name === a)) {\n passedAllowedAttributesMapCheck = true;\n let newValue = '';\n if (o.multiple === true) {\n // verify the values that are allowed\n const splitStrArray = value.split(' ');\n for (const s of splitStrArray) {\n if (o.values.indexOf(s) !== -1) {\n if (newValue === '') {\n newValue = s;\n } else {\n newValue += ' ' + s;\n }\n }\n }\n } else if (o.values.indexOf(value) >= 0) {\n // verified an allowed value matches the entire attribute value\n newValue = value;\n }\n value = newValue;\n }\n }\n }\n if (passedAllowedAttributesMapCheck) {\n if (options.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) {\n if (naughtyHref(name, value)) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'script' && a === 'src') {\n\n let allowed = true;\n\n try {\n const parsed = parseUrl(value);\n\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n const allowedHostname = (options.allowedScriptHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n allowed = false;\n }\n\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'iframe' && a === 'src') {\n let allowed = true;\n try {\n const parsed = parseUrl(value);\n\n if (parsed.isRelativeUrl) {\n // default value of allowIframeRelativeUrls is true\n // unless allowedIframeHostnames or allowedIframeDomains specified\n allowed = has(options, 'allowIframeRelativeUrls')\n ? options.allowIframeRelativeUrls\n : (!options.allowedIframeHostnames && !options.allowedIframeDomains);\n } else if (options.allowedIframeHostnames || options.allowedIframeDomains) {\n const allowedHostname = (options.allowedIframeHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n // Unparseable iframe src\n allowed = false;\n }\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'srcset') {\n try {\n let parsed = parseSrcset(value);\n parsed.forEach(function(value) {\n if (naughtyHref('srcset', value.url)) {\n value.evil = true;\n }\n });\n parsed = filter(parsed, function(v) {\n return !v.evil;\n });\n if (!parsed.length) {\n delete frame.attribs[a];\n return;\n } else {\n value = stringifySrcset(filter(parsed, function(v) {\n return !v.evil;\n }));\n frame.attribs[a] = value;\n }\n } catch (e) {\n // Unparseable srcset\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'class') {\n const allowedSpecificClasses = allowedClassesMap[name];\n const allowedWildcardClasses = allowedClassesMap['*'];\n const allowedSpecificClassesGlob = allowedClassesGlobMap[name];\n const allowedSpecificClassesRegex = allowedClassesRegexMap[name];\n const allowedWildcardClassesGlob = allowedClassesGlobMap['*'];\n const allowedClassesGlobs = [\n allowedSpecificClassesGlob,\n allowedWildcardClassesGlob\n ]\n .concat(allowedSpecificClassesRegex)\n .filter(function (t) {\n return t;\n });\n if (allowedSpecificClasses && allowedWildcardClasses) {\n value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs);\n } else {\n value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs);\n }\n if (!value.length) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'style') {\n if (options.parseStyleAttributes) {\n try {\n const abstractSyntaxTree = postcssParse(name + ' {' + value + '}');\n const filteredAST = filterCss(abstractSyntaxTree, options.allowedStyles);\n\n value = stringifyStyleAttributes(filteredAST);\n\n if (value.length === 0) {\n delete frame.attribs[a];\n return;\n }\n } catch (e) {\n if (typeof window !== 'undefined') {\n console.warn('Failed to parse \"' + name + ' {' + value + '}' + '\", If you\\'re running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547');\n }\n delete frame.attribs[a];\n return;\n }\n } else if (options.allowedStyles) {\n throw new Error('allowedStyles option cannot be used together with parseStyleAttributes: false.');\n }\n }\n result += ' ' + a;\n if (value && value.length) {\n result += '=\"' + escapeHtml(value, true) + '\"';\n }\n } else {\n delete frame.attribs[a];\n }\n });\n }\n if (options.selfClosing.indexOf(name) !== -1) {\n result += ' />';\n } else {\n result += '>';\n if (frame.innerText && !hasText && !options.textFilter) {\n result += escapeHtml(frame.innerText);\n addedText = true;\n }\n }\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n },\n ontext: function(text) {\n if (skipText) {\n return;\n }\n const lastFrame = stack[stack.length - 1];\n let tag;\n\n if (lastFrame) {\n tag = lastFrame.tag;\n // If inner text was set by transform function then let's use it\n text = lastFrame.innerText !== undefined ? lastFrame.innerText : text;\n }\n\n if (options.disallowedTagsMode === 'discard' && ((tag === 'script') || (tag === 'style'))) {\n // htmlparser2 gives us these as-is. Escaping them ruins the content. Allowing\n // script tags is, by definition, game over for XSS protection, so if that's\n // your concern, don't allow them. The same is essentially true for style tags\n // which have their own collection of XSS vectors.\n result += text;\n } else {\n const escaped = escapeHtml(text, false);\n if (options.textFilter && !addedText) {\n result += options.textFilter(escaped, tag);\n } else if (!addedText) {\n result += escaped;\n }\n }\n if (stack.length) {\n const frame = stack[stack.length - 1];\n frame.text += text;\n }\n },\n onclosetag: function(name, isImplied) {\n\n if (skipText) {\n skipTextDepth--;\n if (!skipTextDepth) {\n skipText = false;\n } else {\n return;\n }\n }\n\n const frame = stack.pop();\n if (!frame) {\n // Do not crash on bad markup\n return;\n }\n\n if (frame.tag !== name) {\n // Another case of bad markup.\n // Push to stack, so that it will be used in future closing tags.\n stack.push(frame);\n return;\n }\n\n skipText = options.enforceHtmlBoundary ? name === 'html' : false;\n depth--;\n const skip = skipMap[depth];\n if (skip) {\n delete skipMap[depth];\n if (options.disallowedTagsMode === 'discard') {\n frame.updateParentNodeText();\n return;\n }\n tempResult = result;\n result = '';\n }\n\n if (transformMap[depth]) {\n name = transformMap[depth];\n delete transformMap[depth];\n }\n\n if (options.exclusiveFilter && options.exclusiveFilter(frame)) {\n result = result.substr(0, frame.tagPosition);\n return;\n }\n\n frame.updateParentNodeMediaChildren();\n frame.updateParentNodeText();\n\n if (\n // Already output />\n options.selfClosing.indexOf(name) !== -1 ||\n // Escaped tag, closing tag is implied\n (isImplied && !tagAllowed(name) && [ 'escape', 'recursiveEscape' ].indexOf(options.disallowedTagsMode) >= 0)\n ) {\n if (skip) {\n result = tempResult;\n tempResult = '';\n }\n return;\n }\n\n result += '</' + name + '>';\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n addedText = false;\n }\n }, options.parser);\n parser.write(html);\n parser.end();\n\n return result;\n\n function initializeState() {\n result = '';\n depth = 0;\n stack = [];\n skipMap = {};\n transformMap = {};\n skipText = false;\n skipTextDepth = 0;\n }\n\n function escapeHtml(s, quote) {\n if (typeof (s) !== 'string') {\n s = s + '';\n }\n if (options.parser.decodeEntities) {\n s = s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n }\n // TODO: this is inadequate because it will pass `&0;`. This approach\n // will not work, each & must be considered with regard to whether it\n // is followed by a 100% syntactically valid entity or not, and escaped\n // if it is not. If this bothers you, don't set parser.decodeEntities\n // to false. (The default is true.)\n s = s.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, '&') // Match ampersands not part of existing HTML entity\n .replace(/</g, '<')\n .replace(/>/g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n return s;\n }\n\n function naughtyHref(name, href) {\n // Browsers ignore character codes of 32 (space) and below in a surprising\n // number of situations. Start reading here:\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#Embedded_tab\n // eslint-disable-next-line no-control-regex\n href = href.replace(/[\\x00-\\x20]+/g, '');\n // Clobber any comments in URLs, which the browser might\n // interpret inside an XML data island, allowing\n // a javascript: URL to be snuck through\n while (true) {\n const firstIndex = href.indexOf('<!--');\n if (firstIndex === -1) {\n break;\n }\n const lastIndex = href.indexOf('-->', firstIndex + 4);\n if (lastIndex === -1) {\n break;\n }\n href = href.substring(0, firstIndex) + href.substring(lastIndex + 3);\n }\n // Case insensitive so we don't get faked out by JAVASCRIPT #1\n // Allow more characters after the first so we don't get faked\n // out by certain schemes browsers accept\n const matches = href.match(/^([a-zA-Z][a-zA-Z0-9.\\-+]*):/);\n if (!matches) {\n // Protocol-relative URL starting with any combination of '/' and '\\'\n if (href.match(/^[/\\\\]{2}/)) {\n return !options.allowProtocolRelative;\n }\n\n // No scheme\n return false;\n }\n const scheme = matches[1].toLowerCase();\n\n if (has(options.allowedSchemesByTag, name)) {\n return options.allowedSchemesByTag[name].indexOf(scheme) === -1;\n }\n\n return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1;\n }\n\n function parseUrl(value) {\n value = value.replace(/^(\\w+:)?\\s*[\\\\/]\\s*[\\\\/]/, '$1//');\n if (value.startsWith('relative:')) {\n // An attempt to exploit our workaround for base URLs being\n // mandatory for relative URL validation in the WHATWG\n // URL parser, reject it\n throw new Error('relative: exploit attempt');\n }\n // naughtyHref is in charge of whether protocol relative URLs\n // are cool. Here we are concerned just with allowed hostnames and\n // whether to allow relative URLs.\n //\n // Build a placeholder \"base URL\" against which any reasonable\n // relative URL may be parsed successfully\n let base = 'relative://relative-site';\n for (let i = 0; (i < 100); i++) {\n base += `/${i}`;\n }\n\n const parsed = new URL(value, base);\n\n const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';\n return {\n isRelativeUrl,\n url: parsed\n };\n }\n /**\n * Filters user input css properties by allowlisted regex attributes.\n * Modifies the abstractSyntaxTree object.\n *\n * @param {object} abstractSyntaxTree - Object representation of CSS attributes.\n * @property {array[Declaration]} abstractSyntaxTree.nodes[0] - Each object cointains prop and value key, i.e { prop: 'color', value: 'red' }.\n * @param {object} allowedStyles - Keys are properties (i.e color), value is list of permitted regex rules (i.e /green/i).\n * @return {object} - The modified tree.\n */\n function filterCss(abstractSyntaxTree, allowedStyles) {\n if (!allowedStyles) {\n return abstractSyntaxTree;\n }\n\n const astRules = abstractSyntaxTree.nodes[0];\n let selectedRule;\n\n // Merge global and tag-specific styles into new AST.\n if (allowedStyles[astRules.selector] && allowedStyles['*']) {\n selectedRule = deepmerge(\n allowedStyles[astRules.selector],\n allowedStyles['*']\n );\n } else {\n selectedRule = allowedStyles[astRules.selector] || allowedStyles['*'];\n }\n\n if (selectedRule) {\n abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []);\n }\n\n return abstractSyntaxTree;\n }\n\n /**\n * Extracts the style attributes from an AbstractSyntaxTree and formats those\n * values in the inline style attribute format.\n *\n * @param {AbstractSyntaxTree} filteredAST\n * @return {string} - Example: \"color:yellow;text-align:center !important;font-family:helvetica;\"\n */\n function stringifyStyleAttributes(filteredAST) {\n return filteredAST.nodes[0].nodes\n .reduce(function(extractedAttributes, attrObject) {\n extractedAttributes.push(\n `${attrObject.prop}:${attrObject.value}${attrObject.important ? ' !important' : ''}`\n );\n return extractedAttributes;\n }, [])\n .join(';');\n }\n\n /**\n * Filters the existing attributes for the given property. Discards any attributes\n * which don't match the allowlist.\n *\n * @param {object} selectedRule - Example: { color: red, font-family: helvetica }\n * @param {array} allowedDeclarationsList - List of declarations which pass the allowlist.\n * @param {object} attributeObject - Object representing the current css property.\n * @property {string} attributeObject.type - Typically 'declaration'.\n * @property {string} attributeObject.prop - The CSS property, i.e 'color'.\n * @property {string} attributeObject.value - The corresponding value to the css property, i.e 'red'.\n * @return {function} - When used in Array.reduce, will return an array of Declaration objects\n */\n function filterDeclarations(selectedRule) {\n return function (allowedDeclarationsList, attributeObject) {\n // If this property is allowlisted...\n if (has(selectedRule, attributeObject.prop)) {\n const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) {\n return regularExpression.test(attributeObject.value);\n });\n\n if (matchesRegex) {\n allowedDeclarationsList.push(attributeObject);\n }\n }\n return allowedDeclarationsList;\n };\n }\n\n function filterClasses(classes, allowed, allowedGlobs) {\n if (!allowed) {\n // The class attribute is allowed without filtering on this tag\n return classes;\n }\n classes = classes.split(/\\s+/);\n return classes.filter(function(clss) {\n return allowed.indexOf(clss) !== -1 || allowedGlobs.some(function(glob) {\n return glob.test(clss);\n });\n }).join(' ');\n }\n}\n\n// Defaults are accessible to you so that you can use them as a starting point\n// programmatically if you wish\n\nconst htmlParserDefaults = {\n decodeEntities: true\n};\nsanitizeHtml.defaults = {\n allowedTags: [\n // Sections derived from MDN element categories and limited to the more\n // benign categories.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n // Content sectioning\n 'address', 'article', 'aside', 'footer', 'header',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup',\n 'main', 'nav', 'section',\n // Text content\n 'blockquote', 'dd', 'div', 'dl', 'dt', 'figcaption', 'figure',\n 'hr', 'li', 'main', 'ol', 'p', 'pre', 'ul',\n // Inline text semantics\n 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn',\n 'em', 'i', 'kbd', 'mark', 'q',\n 'rb', 'rp', 'rt', 'rtc', 'ruby',\n 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u', 'var', 'wbr',\n // Table content\n 'caption', 'col', 'colgroup', 'table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr'\n ],\n // Tags that cannot be boolean\n nonBooleanAttributes: [\n 'abbr', 'accept', 'accept-charset', 'accesskey', 'action',\n 'allow', 'alt', 'as', 'autocapitalize', 'autocomplete',\n 'blocking', 'charset', 'cite', 'class', 'color', 'cols',\n 'colspan', 'content', 'contenteditable', 'coords', 'crossorigin',\n 'data', 'datetime', 'decoding', 'dir', 'dirname', 'download',\n 'draggable', 'enctype', 'enterkeyhint', 'fetchpriority', 'for',\n 'form', 'formaction', 'formenctype', 'formmethod', 'formtarget',\n 'headers', 'height', 'hidden', 'high', 'href', 'hreflang',\n 'http-equiv', 'id', 'imagesizes', 'imagesrcset', 'inputmode',\n 'integrity', 'is', 'itemid', 'itemprop', 'itemref', 'itemtype',\n 'kind', 'label', 'lang', 'list', 'loading', 'low', 'max',\n 'maxlength', 'media', 'method', 'min', 'minlength', 'name',\n 'nonce', 'optimum', 'pattern', 'ping', 'placeholder', 'popover',\n 'popovertarget', 'popovertargetaction', 'poster', 'preload',\n 'referrerpolicy', 'rel', 'rows', 'rowspan', 'sandbox', 'scope',\n 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src',\n 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'style',\n 'tabindex', 'target', 'title', 'translate', 'type', 'usemap',\n 'value', 'width', 'wrap',\n // Event handlers\n 'onauxclick', 'onafterprint', 'onbeforematch', 'onbeforeprint',\n 'onbeforeunload', 'onbeforetoggle', 'onblur', 'oncancel',\n 'oncanplay', 'oncanplaythrough', 'onchange', 'onclick', 'onclose',\n 'oncontextlost', 'oncontextmenu', 'oncontextrestored', 'oncopy',\n 'oncuechange', 'oncut', 'ondblclick', 'ondrag', 'ondragend',\n 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart',\n 'ondrop', 'ondurationchange', 'onemptied', 'onended',\n 'onerror', 'onfocus', 'onformdata', 'onhashchange', 'oninput',\n 'oninvalid', 'onkeydown', 'onkeypress', 'onkeyup',\n 'onlanguagechange', 'onload', 'onloadeddata', 'onloadedmetadata',\n 'onloadstart', 'onmessage', 'onmessageerror', 'onmousedown',\n 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout',\n 'onmouseover', 'onmouseup', 'onoffline', 'ononline', 'onpagehide',\n 'onpageshow', 'onpaste', 'onpause', 'onplay', 'onplaying',\n 'onpopstate', 'onprogress', 'onratechange', 'onreset', 'onresize',\n 'onrejectionhandled', 'onscroll', 'onscrollend',\n 'onsecuritypolicyviolation', 'onseeked', 'onseeking', 'onselect',\n 'onslotchange', 'onstalled', 'onstorage', 'onsubmit', 'onsuspend',\n 'ontimeupdate', 'ontoggle', 'onunhandledrejection', 'onunload',\n 'onvolumechange', 'onwaiting', 'onwheel'\n ],\n disallowedTagsMode: 'discard',\n allowedAttributes: {\n a: [ 'href', 'name', 'target' ],\n // We don't currently allow img itself by default, but\n // these attributes would make sense if we did.\n img: [ 'src', 'srcset', 'alt', 'title', 'width', 'height', 'loading' ]\n },\n // Lots of these won't come up by default because we don't allow them\n selfClosing: [ 'img', 'br', 'hr', 'area', 'base', 'basefont', 'input', 'link', 'meta' ],\n // URL schemes we permit\n allowedSchemes: [ 'http', 'https', 'ftp', 'mailto', 'tel' ],\n allowedSchemesByTag: {},\n allowedSchemesAppliedToAttributes: [ 'href', 'src', 'cite' ],\n allowProtocolRelative: true,\n enforceHtmlBoundary: false,\n parseStyleAttributes: true\n};\n\nsanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge) {\n merge = (merge === undefined) ? true : merge;\n newAttribs = newAttribs || {};\n\n return function(tagName, attribs) {\n let attrib;\n if (merge) {\n for (attrib in newAttribs) {\n attribs[attrib] = newAttribs[attrib];\n }\n } else {\n attribs = newAttribs;\n }\n\n return {\n tagName: newTagName,\n attribs: attribs\n };\n };\n};\n","import i18n from \"@/i18n\";\nimport sanitizeHtml from \"sanitize-html\";\n\nconst urlRegExp = /^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_+.~#?&/=]*)$/;\n\nexport const toCapitalize = (text: string): string => text.charAt(0).toUpperCase() + text.slice(1);\n\nexport const toHtml = (text: string | undefined, configuration?: { keepOriginalNewLines: boolean }): string => {\n if (!text || isBlank(text)) {\n return \"\";\n }\n\n const keepOriginalNewLines = configuration?.keepOriginalNewLines === true;\n\n text = text.replace(/(?:\\r\\n|\\\\n|\\\\r|\\r|\\n)+$/g, \"\"); // Remove last new lines\n\n if (!keepOriginalNewLines) {\n text = text.replace(/(?:\\r\\n|\\\\n|\\\\r|\\r|\\n)/g, \"<br />\"); // Convert new lines to HTML\n }\n\n const allowedTags = keepOriginalNewLines ? [] : [\"br\"];\n const sanitizeOptions = {\n allowedTags: allowedTags,\n allowedAttributes: {},\n allowedIframeHostnames: [],\n };\n return sanitizeHtml(text, sanitizeOptions);\n};\n\nexport const toTitleHtml = (text: string | undefined): string => toHtml(text, { keepOriginalNewLines: true });\n\nexport const isBlank = (text: string | undefined): boolean => !text || /^\\s*$/.test(text);\n\nexport const containsInsensitive = (text: string | undefined, containedText: string): boolean => {\n if (!text || isBlank(text)) {\n return false;\n }\n const normalizedText = text.normalize(\"NFD\").replace(/\\p{Diacritic}+/gu, \"\");\n const normalizedContainedText = containedText.normalize(\"NFD\").replace(/\\p{Diacritic}+/gu, \"\");\n\n const regExp = new RegExp(normalizedContainedText, \"gi\");\n return regExp.test(normalizedText);\n};\n\nexport const compareStrings = (string1: string, string2: string, ascending = true): number => {\n const orderModifier = ascending ? 1 : -1;\n return orderModifier * string1.localeCompare(string2);\n};\n\nexport const isValidUrl = (text: string): boolean => urlRegExp.test(text);\n\nexport const concatWithAnd = (texts?: string[]): string => {\n if (!texts || !Intl.ListFormat) {\n return \"\";\n }\n const formatter = new Intl.ListFormat(i18n.global.locale.value, { style: \"long\", type: \"conjunction\" });\n return formatter.format(texts);\n};\n","import i18n from \"@/i18n\";\n\nexport const compareNumbers = (number1: number, number2: number, ascending: boolean): number => {\n const orderModifier = ascending ? 1 : -1;\n return orderModifier * (number1 > number2 ? 1 : -1);\n};\n\nexport const formatNumber = (value: number): string => Intl.NumberFormat(i18n.global.locale.value).format(value);\nexport const createArray = (length: number): number[] => [...Array(length).keys()].map((value) => value + 1);\n","import i18n from \"@/i18n\";\nimport { toCapitalize } from \"@/utils/stringUtils\";\nimport { compareNumbers } from \"@/utils/numberUtils\";\n\nconst millisecondsInDay = 1000 * 3600 * 24;\nconst minutesInHour = 60;\n\nexport const parseDateToString = (date: Date | undefined): string => {\n if (!date) {\n return \"\";\n }\n if (isToday(date)) {\n return i18n.global.t(\"shared.today\");\n }\n if (isYesterday(date)) {\n return i18n.global.t(\"shared.yesterday\");\n }\n return date.toLocaleDateString();\n};\n\nexport const parseDateToMonthLongDate = (date: Date): string => {\n // request a month long date: March 17, 2022\n const opt: Intl.DateTimeFormatOptions = { year: \"numeric\", month: \"long\", day: \"numeric\" };\n return date.toLocaleDateString(i18n.global.locale.value || \"en\", opt);\n};\n\nexport const isToday = (date: Date): boolean => isSameDay(date, new Date());\nexport const today = (): Date => removeTime(new Date());\nexport const removeTime = (date: Date): Date => new Date(date.getFullYear(), date.getMonth(), date.getDate());\n\nexport const isSameDay = (date1: Date, date2: Date): boolean => {\n const d1 = new Date(date1);\n const d2 = new Date(date2);\n\n return d1.getFullYear() === d2.getFullYear() && d1.getMonth() === d2.getMonth() && d1.getDate() === d2.getDate();\n};\n\nexport const isYesterday = (date: Date): boolean => {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n return isSameDay(date, yesterday);\n};\n\nexport const getMonthName = (month: number): string => toCapitalize(getMonth(month, \"onlyMonth\"));\nexport const getMonthShortName = (month: number): string => toCapitalize(getMonth(month, \"onlyMonth\"));\n\nconst getMonth = (month: number, format: string): string => {\n const date = new Date();\n date.setMonth(month);\n return i18n.global.d(date, format);\n};\n\nexport const compareDates = (date1: Date, date2: Date, ascending: boolean): number =>\n compareNumbers(date1.getTime(), date2.getTime(), ascending);\n\nexport const dayAfter = (date: Date): Date => new Date(date.getTime() + millisecondsInDay);\n\nexport const daysBetweenDates = (start: Date | undefined, end: Date | undefined): number => {\n if (!start || !end) {\n return 0;\n }\n const difference = end.getTime() - start.getTime();\n return Math.ceil(difference / millisecondsInDay);\n};\n\nexport const isBiggerThanToday = (date: Date): boolean => daysBetweenDates(new Date(), date) > 0;\nexport const isEqualOrBiggerThanToday = (date: Date): boolean => daysBetweenDates(new Date(), date) >= 0;\nexport const isSmallerThanToday = (date: Date): boolean => daysBetweenDates(new Date(), date) < 0;\nexport const isEqualOrSmallerThanToday = (date: Date): boolean => daysBetweenDates(new Date(), date) <= 0;\nexport const isInRange = (startDate: Date, endDate: Date, theDate: Date): boolean => theDate >= startDate && theDate <= endDate;\nexport const convertDateOnlyToLocale = (date: Date): Date => {\n const offsetHours = -(date.getTimezoneOffset() / minutesInHour);\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), offsetHours);\n};\nexport const toIsoDate = (date: Date): string => date.toISOString().split(\"T\")[0];\n","import i18n from \"@/i18n\";\nimport type { DateSchema, AnyObject, StringSchema, MixedSchema, ObjectSchema } from \"yup\";\nimport { date as yupDate, mixed as yupMixed, string as yupString, object as yupObject } from \"yup\";\nimport type { FileAttachment } from \"@/models/fileAttachment\";\nimport { mediumTextLength } from \"@/constants/restrictions\";\nimport { dayAfter, removeTime, today } from \"@/utils/dateUtils\";\nimport { convertMIMEToExtension, convertToBytes } from \"@/utils/fileUtils\";\nimport { isValidUrl } from \"@/utils/stringUtils\";\n\ntype YupDateSchema = DateSchema<Date | undefined, AnyObject>;\n\nexport interface TodaySchemaOptions {\n dateSet?: Date;\n required?: boolean;\n}\nexport interface EndDateSchemaOptions {\n startDateFieldName: string;\n canBeEqualToStartDate: boolean;\n required?: boolean;\n}\nexport interface StringSchemaOptions {\n maxLength?: number;\n required?: boolean;\n}\n\ninterface UseFormSchemaReturn {\n dateSchema: (required?: boolean) => YupDateSchema;\n startDateMinTodaySchema: (options?: TodaySchemaOptions) => YupDateSchema;\n endDateSchema: (options: EndDateSchemaOptions) => YupDateSchema;\n attachmentSchema: (extensions: string[], maxFileSizeInMB?: number) => MixedSchema<FileAttachment | undefined, AnyObject>;\n stringSchema: (options?: StringSchemaOptions) => StringSchema<string | undefined>;\n stringUrlSchema: (options?: StringSchemaOptions) => StringSchema<string | undefined>;\n inputRequiredText: () => string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yupObject: (schema: any) => ObjectSchema<any>;\n}\n\nconst inputRequiredText = (): string => i18n.global.t(\"inputs.required\");\n\nexport default (): UseFormSchemaReturn => {\n const endDateSchema = (options: EndDateSchemaOptions) => {\n return dateSchema(options.required ?? true)\n .min(today(), i18n.global.t(\"inputs.date_today_or_later\"))\n .when(options.startDateFieldName, ([start], schema) => {\n if (start) {\n const minDate = options.canBeEqualToStartDate ? start : dayAfter(start);\n return schema.min(\n minDate,\n i18n.global.t(\"inputs.a_date_has_to_be_after_another_date\", {\n first: i18n.global.t(\"inputs.end_date\"),\n second: i18n.global.t(\"inputs.start_date\"),\n })\n );\n }\n return schema;\n });\n };\n const dateSchema = (required = true) => {\n const schema = yupDate();\n return required ? schema.required(inputRequiredText()) : schema;\n };\n const attachmentSchema = (extensions: string[], maxFileSizeInMB = 0) =>\n yupMixed<FileAttachment>()\n .test(\"attachment-extension\", i18n.global.t(\"inputs.upload_document.invalid_extension\"), (f) =>\n f\n ? extensions\n .map((type) => convertMIMEToExtension(type))\n .some((ext) =>\n Array.isArray(ext) ? ext.some((e) => f.fileName.toLowerCase().endsWith(e)) : f.fileName.toLowerCase().endsWith(ext)\n )\n : true\n )\n .test(\"attachment-max-size\", i18n.global.t(\"inputs.upload_document.maximum_size_MB\", { size: maxFileSizeInMB }), (f) =>\n maxFileSizeInMB && f?.size ? f?.size <= convertToBytes(maxFileSizeInMB) : true\n );\n const stringSchema = (options?: StringSchemaOptions) => {\n const maxLength = options?.maxLength ?? mediumTextLength;\n const required = options?.required !== undefined ? options.required : true;\n const schema = yupString().max(maxLength, i18n.global.t(\"inputs.max_length_exceeded\", { maxLength })).trim();\n return required ? schema.required(inputRequiredText()) : schema;\n };\n const stringUrlSchema = (options?: StringSchemaOptions) => {\n return stringSchema(options).test(\n \"link-url\",\n i18n.global.t(\"inputs.url_not_valid\"),\n (l) => l === undefined || l === \"\" || isValidUrl(l)\n );\n };\n\n const startDateMinTodaySchema = (options?: TodaySchemaOptions) => {\n const todayNow = today();\n const minDateApplicationAlreadySet = options?.dateSet && options.dateSet.getTime() < todayNow.getTime();\n return dateSchema(options?.required).min(\n minDateApplicationAlreadySet && options.dateSet ? removeTime(options.dateSet) : todayNow,\n minDateApplicationAlreadySet ? i18n.global.t(\"inputs.DateNotValid\") : i18n.global.t(\"inputs.date_today_or_later\")\n );\n };\n return {\n startDateMinTodaySchema,\n endDateSchema,\n attachmentSchema,\n stringSchema,\n dateSchema,\n inputRequiredText,\n stringUrlSchema,\n yupObject,\n };\n};\n","import type { FileAttachment } from \"@/models/fileAttachment\";\nimport type { Ref } from \"vue\";\n\nimport useHttpClient from \"@/services/shared/useHttpClient\";\n\nconst BASE_URL = \"/api/me/picture\";\nconst { post, httpDelete, loading } = useHttpClient();\n\ninterface UseMePictureServiceReturn {\n savePicture: (picture: FileAttachment) => Promise<void>;\n deletePicture: () => Promise<void>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseMePictureServiceReturn => {\n const savePicture = (picture: FileAttachment): Promise<void> => post(BASE_URL, picture);\n const deletePicture = (): Promise<void> => httpDelete(BASE_URL);\n\n return { savePicture, deletePicture, loading };\n};\n","import type { Ref } from \"vue\";\nimport type { CompanyGoal } from \"@/models/companyGoal\";\nimport type { EmployeeBasicInformation } from \"@/models/employeeBasicInformation\";\nimport type { EmployeeInformation } from \"@/models/employee/employeeInformation\";\nimport type { EmployeeRoleRequest } from \"@/models/requests/employeeRoleRequest\";\nimport type { IdealJob } from \"@/models/idealJob\";\nimport type { IdealLearning } from \"@/models/idealLearning\";\nimport type { Interest } from \"@/models/interest\";\nimport type { ProfileInformation } from \"@/models/profileInformation\";\nimport type { Question } from \"@/models/question\";\nimport type { Hobby } from \"@/models/hobby\";\nimport type { CompanyEmployeeGroupWithEmployees } from \"@/models/companyEmployeeGroup\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\n\nconst BASE_URL = \"/api/employees\";\nconst { get, put, loading, appBaseUrl } = useHttpClient();\n\ninterface UseEmployeeServiceReturn {\n search: (searchTerm: string, numberOfItems: number) => Promise<ProfileInformation[]>;\n getProfileInformation: (employeeId: number) => Promise<ProfileInformation>;\n getQuestions: (employeeId: number) => Promise<Question[]>;\n getIdealJob: (employeeId: number) => Promise<IdealJob>;\n getCurriculumUrl: (employeeId: number) => string;\n getJobExperienceAttachmentUrl: (employeeId: number, jobExperienceId: number) => string;\n getBasicInformation: (employeeId: number) => Promise<EmployeeBasicInformation>;\n getEducationAttachmentUrl: (employeeId: number, educationId: number) => string;\n getEmployees: () => Promise<EmployeeInformation[]>;\n putEmployeeRole: (request: EmployeeRoleRequest) => Promise<void>;\n putEmployeeLanguage: (language: string) => Promise<void>;\n getEmployeeGoals: (employeeId: number) => Promise<CompanyGoal[]>;\n getEmployeeHobbies: (employeeId: number) => Promise<Hobby[]>;\n getInterests: (employeeId: number) => Promise<Interest[] | undefined>;\n getIdealLearnings: (employeeId: number) => Promise<IdealLearning[] | undefined>;\n getEmployeePictureUrl: (employeeId: number) => string;\n getEmployeeManagedGroups: () => Promise<CompanyEmployeeGroupWithEmployees[]>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseEmployeeServiceReturn => {\n const search = (searchTerm: string, numberOfItems: number): Promise<ProfileInformation[]> =>\n get(`${BASE_URL}/search?searchTerm=${searchTerm}&numberOfItems=${numberOfItems}`);\n\n const getProfileInformation = (employeeId: number): Promise<ProfileInformation> => get(`${BASE_URL}/${employeeId}/profile`);\n const getQuestions = (employeeId: number): Promise<Question[]> => get(`${BASE_URL}/${employeeId}/questions`);\n const getIdealJob = (employeeId: number): Promise<IdealJob> => get(`${BASE_URL}/${employeeId}/my-ideal-job`);\n const getEmployees = (): Promise<EmployeeInformation[]> => get(BASE_URL);\n const getEmployeeGoals = (employeeId: number): Promise<CompanyGoal[]> => get(`${BASE_URL}/${employeeId}/goals`);\n const getEmployeeHobbies = (employeeId: number): Promise<Hobby[]> => get(`${BASE_URL}/${employeeId}/hobbies`);\n const getEmployeePictureUrl = (employeeId: number): string => `${appBaseUrl}${BASE_URL}/${employeeId}/picture`;\n const getInterests = (employeeId: number): Promise<Interest[] | undefined> => get(`${BASE_URL}/${employeeId}/interests`);\n const getBasicInformation = (employeeId: number): Promise<EmployeeBasicInformation> => get(`${BASE_URL}/${employeeId}/basic-information`);\n\n const putEmployeeRole = (request: EmployeeRoleRequest): Promise<void> => put(`${BASE_URL}/role`, request);\n const putEmployeeLanguage = (language: string): Promise<void> => put(`${BASE_URL}/language`, { language: language });\n\n const getIdealLearnings = (employeeId: number): Promise<IdealLearning[] | undefined> => get(`${BASE_URL}/${employeeId}/ideal-learnings`);\n\n const getCurriculumUrl = (employeeId: number): string => `${appBaseUrl}${BASE_URL}/${employeeId}/curriculum`;\n const getJobExperienceAttachmentUrl = (employeeId: number, jobExperienceId: number): string =>\n `${appBaseUrl}${BASE_URL}/${employeeId}/job-experience/${jobExperienceId}/attachment`;\n const getEducationAttachmentUrl = (employeeId: number, educationId: number): string =>\n `${appBaseUrl}${BASE_URL}/${employeeId}/education/${educationId}/attachment`;\n const getEmployeeManagedGroups = (): Promise<CompanyEmployeeGroupWithEmployees[]> => get(`${BASE_URL}/managed-groups`);\n\n return {\n search,\n getProfileInformation,\n getQuestions,\n getIdealJob,\n getBasicInformation,\n getCurriculumUrl,\n getJobExperienceAttachmentUrl,\n getEducationAttachmentUrl,\n getEmployees,\n putEmployeeRole,\n putEmployeeLanguage,\n getEmployeeGoals,\n getEmployeeHobbies,\n getEmployeePictureUrl,\n getInterests,\n getIdealLearnings,\n getEmployeeManagedGroups,\n loading,\n };\n};\n","<template>\n <AppUploadDocument\n v-model=\"attachment\"\n :accept=\"basicAllowedImageExtensions.join()\"\n :download-url=\"getEmployeePictureUrl(props.employeeId)\"\n :label=\"$t('pages.header.picture-uploader.label')\"\n :maximum-size=\"fileSize1MB\"\n :error=\"attachmentError\"\n :without-modal=\"!validAvatar\"\n button-variant=\"primary\"\n class=\"margin-b--s\"\n close-button\n data-cy=\"avatar-upload-document\"\n @update:model-value=\"updated\"\n @close=\"$emit('close')\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport { useField, useForm } from \"vee-validate\";\nimport { object as yupObject } from \"yup\";\n\nimport AppUploadDocument from \"@/components/uploadDocument/AppUploadDocument.vue\";\n\nimport type { FileAttachment } from \"@/models/fileAttachment\";\nimport useFormSchema from \"@/services/useFormSchema\";\nimport useMePictureService from \"@/services/useMePictureService\";\nimport useEmployeeService from \"@/services/useEmployeeService\";\nimport { fileSize1MB, basicAllowedImageExtensions } from \"@/utils/fileUtils\";\n\ninterface Props {\n employeeId: number;\n pictureName?: string;\n}\nconst props = defineProps<Props>();\n\ndefineEmits<(e: \"close\") => void>();\n\nconst { savePicture, deletePicture } = useMePictureService();\nconst { getEmployeePictureUrl } = useEmployeeService();\nconst { attachmentSchema } = useFormSchema();\n\nconst validAvatar = ref<boolean>(true);\n\nconst resourceSchema = yupObject({\n attachment: attachmentSchema(basicAllowedImageExtensions, fileSize1MB),\n});\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: attachment, errorMessage: attachmentError } = useField<FileAttachment | undefined>(\"attachment\");\n\nonMounted(() => setAttachmentName(props.pictureName));\n\nconst setAttachmentName = (name?: string): void => {\n if (!name) {\n return;\n }\n attachment.value = { fileName: name };\n};\nconst updated = async (avatarAttachment: FileAttachment | undefined) => {\n if (!avatarAttachment && !validAvatar.value) {\n return;\n }\n\n const formValidation = await form.validate();\n if (!formValidation.valid) {\n validAvatar.value = false;\n return;\n }\n\n if (!avatarAttachment) {\n await deletePicture();\n } else {\n try {\n await save(avatarAttachment);\n } catch (error) {\n /* empty */\n }\n }\n\n refreshPage();\n};\n\nconst save = async (attachment: FileAttachment) => savePicture(attachment);\n\nconst refreshPage = () => window.history.go(0);\n</script>\n","<template>\n <label class=\"app-input-generic\">\n <span v-if=\"label\" class=\"text text--secondary\">{{ label }}</span>\n <slot></slot>\n <AppInputError v-if=\"shouldShowError\" :error=\"error\" />\n </label>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport AppInputError from \"@/components/AppInputError.vue\";\n\ninterface Props {\n label?: string;\n error?: string;\n omitErrorIfNoError?: boolean;\n}\nconst props = defineProps<Props>();\n\nconst shouldShowError = computed(() => !props.omitErrorIfNoError || !!props.error);\n</script>\n\n<style scoped lang=\"scss\">\n.app-input-generic {\n display: flex;\n flex-direction: column;\n\n :deep(.input) {\n padding: 9px 9px;\n margin: 10px 0 4px 0;\n border: 1px solid var(--color-input-border);\n\n &:focus-visible {\n outline: none;\n }\n\n &:hover,\n &:focus,\n &:active {\n border: 1px solid var(--color-input-border--focus);\n }\n\n &:disabled {\n border: none;\n }\n }\n}\n</style>\n","<template>\n <AppInputGeneric :label=\"label\" :omit-error-if-no-error=\"true\" data-cy=\"app-select\" class=\"app-input-select\">\n <select v-model=\"value\" class=\"input select\" :disabled=\"disabled\" :class=\"selectClasses\">\n <option v-for=\"item in items\" :key=\"item.value\" :value=\"item.value\">{{ item.text }}</option>\n </select>\n </AppInputGeneric>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport AppInputGeneric from \"@/components/AppInputGeneric.vue\";\nimport type { SelectOption } from \"@/components/table/Column\";\n\ninterface Props {\n modelValue: string;\n items: SelectOption[];\n disabled?: boolean;\n label?: string;\n keepMargin?: boolean;\n inline?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), {\n keepMargin: true,\n});\n\nconst emit = defineEmits<(e: \"update:modelValue\", value: string) => void>();\n\nconst value = computed({\n get: () => props.modelValue,\n set: (val) => emit(\"update:modelValue\", val),\n});\n\nconst selectClasses = computed(() => ({\n \"select--keep-margin\": props.keepMargin,\n \"select--inline\": props.inline,\n}));\n</script>\n\n<style scoped lang=\"scss\">\n.app-input-select {\n .select {\n padding: 10px 10px;\n margin: 0 0 4px 0;\n background-color: rgba(0, 0, 0, 0);\n cursor: pointer;\n\n &--keep-margin {\n margin-top: 10px;\n }\n\n &--inline {\n padding: var(--space-xs);\n margin: 0;\n max-width: 20rem;\n }\n }\n}\n</style>\n","<template>\n <AppSelect\n v-model=\"$i18n.locale\"\n :items=\"availableLocales\"\n :label=\"$t('pages.header.profile-editor.app-settings.languages.title')\"\n @change=\"handleLanguageChanged\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppSelect from \"@/components/AppSelect.vue\";\nimport useEmployeeService from \"@/services/useEmployeeService\";\nimport { STORES, useStorageService } from \"@/services/infrastructure/storageService\";\n\nconst { putEmployeeLanguage } = useEmployeeService();\nconst { store } = useStorageService<string>(STORES.language_key);\n\nconst availableLocales = computed<{ value: string; text: string }[]>(() => {\n return i18n.global.availableLocales\n .map((l) => ({ value: l, text: i18n.global.t(`pages.header.profile-editor.app-settings.languages.${l}`) }))\n .sort((a, b): number => a.text.localeCompare(b.text));\n});\n\nconst handleLanguageChanged = async () => {\n await putEmployeeLanguage(i18n.global.locale.value);\n store(i18n.global.locale.value);\n};\n</script>\n","<template>\n <AppInputGeneric :label=\"label\" :error=\"error\">\n <input\n v-model=\"modelValueString\"\n type=\"date\"\n class=\"input text\"\n :disabled=\"disabled\"\n :min=\"getIsoDate(minDate)\"\n :max=\"getIsoDate(maxDate)\"\n @input=\"handleInput\" />\n </AppInputGeneric>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, watch } from \"vue\";\nimport AppInputGeneric from \"@/components/AppInputGeneric.vue\";\nimport { convertDateOnlyToLocale, toIsoDate } from \"@/utils/dateUtils\";\n\ninterface Props {\n modelValue?: Date;\n minDate?: Date;\n maxDate?: Date;\n label?: string;\n disabled?: boolean;\n error?: string;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"update:modelValue\", value: Date | undefined) => void>();\n\nconst modelValueString = ref<string | undefined>();\nconst modelChangeHandled = ref<boolean>(false);\n\nconst getIsoDate = (date?: Date) => (date ? toIsoDate(date) : undefined);\nconst handleInput = (event: Event): void => {\n const input: HTMLInputElement = event.target as HTMLInputElement;\n const value = input.valueAsDate ?? undefined;\n modelChangeHandled.value = true;\n emit(\"update:modelValue\", value);\n};\nconst setModelValueFromProp = () =>\n (modelValueString.value = props.modelValue ? toIsoDate(convertDateOnlyToLocale(props.modelValue)) : undefined);\n\nonMounted(setModelValueFromProp);\nwatch(\n () => props.modelValue,\n () => {\n if (!modelChangeHandled.value) {\n setModelValueFromProp();\n }\n modelChangeHandled.value = false;\n }\n);\n</script>\n","import type { EmployeeBasicInformation } from \"@/models/employeeBasicInformation\";\nimport type { ProfileInformation } from \"@/models/profileInformation\";\nimport type { FileAttachment } from \"@/models/fileAttachment\";\nimport type { Ref } from \"vue\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\n\nconst BASE_URL = \"/api/me\";\nconst { get, put, post, httpDelete, loading, appBaseUrl } = useHttpClient();\n\ninterface UseMeServiceReturn {\n deleteCurriculum: () => Promise<ProfileInformation>;\n getBasicInformation: () => Promise<EmployeeBasicInformation>;\n getBasicProfile: () => Promise<ProfileInformation>;\n getCurriculumUrl: () => string;\n getProfileInformation: () => Promise<ProfileInformation>;\n importProfile: (profile: FileAttachment) => Promise<void>;\n saveCurriculum: (curriculum: FileAttachment) => Promise<void>;\n updateAboutMe: (aboutMe: string) => Promise<void>;\n updateBirthDate: (birthDate: Date) => Promise<void>;\n updateCalculateLearningPath: (calculate: boolean) => Promise<void>;\n getFeedbackEmail: () => Promise<string>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseMeServiceReturn => {\n const deleteCurriculum = (): Promise<ProfileInformation> => httpDelete(`${BASE_URL}/curriculum`);\n\n const getBasicInformation = () => get<EmployeeBasicInformation>(`${BASE_URL}/basic-information`);\n const getBasicProfile = () => get<ProfileInformation>(`${BASE_URL}/basic-profile`);\n const getProfileInformation = () => get<ProfileInformation>(BASE_URL);\n const importProfile = (profile: FileAttachment) => post<void>(`${BASE_URL}/import-profile/`, profile);\n const saveCurriculum = (curriculum: FileAttachment) => post<void>(`${BASE_URL}/curriculum/`, curriculum);\n const updateAboutMe = (aboutMe: string) => put<void>(`${BASE_URL}/about-me`, { aboutMe });\n const updateBirthDate = (birthDate: Date) => put<void>(`${BASE_URL}/birth-date`, { birthDate });\n const updateCalculateLearningPath = (calculate: boolean) => put<void>(`${BASE_URL}/calculate-learning-path`, { calculate });\n const getCurriculumUrl = () => `${appBaseUrl}${BASE_URL}/curriculum`;\n const getFeedbackEmail = () => get<string>(`${BASE_URL}/feedbackEmail`);\n\n return {\n deleteCurriculum,\n getBasicInformation,\n getBasicProfile,\n getCurriculumUrl,\n getProfileInformation,\n importProfile,\n saveCurriculum,\n updateAboutMe,\n updateBirthDate,\n getFeedbackEmail,\n updateCalculateLearningPath,\n loading,\n };\n};\n","<template>\n <div class=\"birth-date-selector\">\n <AppInputDate\n v-model=\"birthDateField\"\n data-cy=\"birthDate-selector\"\n :error=\"birthDateFieldError\"\n :label=\"$t('pages.header.profile-editor.personal-information.birthDate')\"\n :min-date=\"minDate\"\n :max-date=\"maxDate\"\n @update:model-value=\"changed = true\" />\n <AppLinkButton v-if=\"changed\" :text=\"$t('buttons.save')\" data-cy=\"birthDate-save\" @click=\"handleSave\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { onMounted, ref } from \"vue\";\nimport { useField, useForm } from \"vee-validate\";\nimport i18n from \"@/i18n\";\nimport AppInputDate from \"@/components/AppInputDate.vue\";\nimport AppLinkButton from \"@/components/AppLinkButton.vue\";\nimport useMeService from \"@/services/useMeService\";\nimport useFormSchema from \"@/services/useFormSchema\";\nimport { convertDateOnlyToLocale } from \"@/utils/dateUtils\";\n\ninterface Props {\n birthDate?: Date;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"updated\", newDate: Date) => void>();\n\nconst { updateBirthDate } = useMeService();\nconst { yupObject, dateSchema } = useFormSchema();\n\nconst changed = ref<boolean>();\n\nconst minDate: Date = new Date(1920, 0, 1);\nconst maxDate: Date = convertDateOnlyToLocale(new Date(new Date().getFullYear() - 17, 11, 31));\n\nconst outOfRangeError = i18n.global.t(\"errors.BirthDateOutOfRange\");\nconst resourceSchema = yupObject({\n birthDateField: dateSchema(true).min(minDate, outOfRangeError).max(maxDate, outOfRangeError),\n});\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: birthDateField, errorMessage: birthDateFieldError } = useField<Date | undefined>(\"birthDateField\");\n\nonMounted(() => (birthDateField.value = props.birthDate));\n\nconst handleSave = async () => {\n const result = await form.validate();\n if (!result.valid || !birthDateField.value) {\n return;\n }\n await updateBirthDate(birthDateField.value);\n changed.value = false;\n emit(\"updated\", birthDateField.value);\n};\n</script>\n\n<style scoped lang=\"scss\">\n.birth-date-selector {\n display: grid;\n grid-template-columns: 1fr auto;\n column-gap: 1rem;\n align-items: center;\n}\n</style>\n","<template>\n <div class=\"profile-editor margin-b--s margin-t--s\">\n <span class=\"text text--bold margin-b--s\">\n {{ $t(\"pages.header.profile-editor.personal-information.title\") }}\n </span>\n <AppDateBirthSelector :birth-date=\"birthDate\" @updated=\"updatedBirthDate\" />\n <span class=\"text text--bold margin-b--s\">\n {{ $t(\"pages.header.profile-editor.app-settings.title\") }}\n </span>\n <AppLanguageSelector />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AppLanguageSelector from \"@/components/AppLanguageSelector.vue\";\nimport AppDateBirthSelector from \"@/components/AppBirthDateSelector.vue\";\n\ninterface Props {\n birthDate?: Date;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"updatedBirthDate\", newDate: Date) => void>();\n\nconst updatedBirthDate = (newBirthDate: Date) => emit(\"updatedBirthDate\", newBirthDate);\n</script>\n\n<style scoped lang=\"scss\">\n.profile-editor {\n display: flex;\n flex-direction: column;\n gap: 0.1rem;\n\n &__item {\n display: flex;\n flex-direction: column;\n }\n}\n</style>\n","<template>\n <div class=\"feedback margin-b--xs\">\n <AppButton :text=\"$t('shared.feedback-sender.feedback-button')\" size=\"full-width\" variant=\"secondary\" @onclick=\"sendFeedback\" />\n <AppButton :text=\"$t('shared.feedback-sender.bug-button')\" size=\"full-width\" variant=\"primary\" @onclick=\"sendBug\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport i18n from \"@/i18n\";\nimport AppButton from \"@/components/AppButton.vue\";\n\ninterface Props {\n feedbackEmail: string;\n}\nconst props = defineProps<Props>();\n\nconst sendFeedback = () => {\n window.location.href = `mailto:${props.feedbackEmail}?subject=Feedback&body=${encodeURIComponent(\n i18n.global.t(\"shared.feedback-sender.feedback-message\")\n )}`;\n};\nconst sendBug = () => {\n window.location.href = `mailto:${props.feedbackEmail}?subject=Bug&body=${encodeURIComponent(\n i18n.global.t(\"shared.feedback-sender.bug-message\")\n )}`;\n};\n</script>\n<style lang=\"scss\" scoped>\n.feedback {\n display: flex;\n flex-direction: row;\n gap: 12px;\n}\n</style>\n","export default \"__VITE_ASSET__280bff34__\"","<template>\n <div class=\"profile-avatar\" :class=\"`profile-avatar--size-${props.size}`\" @click=\"!editable ? $emit('click') : null\">\n <div class=\"profile-avatar__avatar\" :class=\"avatarClass\" data-cy=\"avatar\">\n <img\n v-if=\"hasPicture\"\n data-cy=\"avatar-img\"\n :src=\"pictureUrl\"\n class=\"profile-avatar__picture\"\n :class=\"{ 'profile-avatar__picture-default': !information.hasPicture && !information.pictureName }\"\n alt=\"\"\n @load=\"showPicture = true\" />\n <span v-if=\"!hasPicture && initials\" data-cy=\"avatar-initials\" class=\"text text--xl initials\">{{ initials }}</span>\n </div>\n <div v-if=\"editable\" class=\"profile-avatar__overlay\">\n <span\n class=\"profile-avatar__edit icon icon-pencil text text--xxl\"\n :title=\"$t('buttons.edit')\"\n data-cy=\"avatar-edit\"\n @click=\"$emit('click')\"></span>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from \"vue\";\nimport i18n from \"@/i18n\";\nimport useEmployeeService from \"@/services/useEmployeeService\";\nimport avatarImageUrl from \"@/assets/images/avatar.svg\";\nimport type { AvatarInformation } from \"@/models/employee/avatarInformation\";\n\ntype AvatarColors = \"default\" | \"alternative\";\n\nconst { getEmployeePictureUrl } = useEmployeeService();\n\ninterface Props {\n information: AvatarInformation;\n size: \"s\" | \"l\" | \"m\";\n color?: AvatarColors;\n editable?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), { size: \"m\", color: \"default\" });\n\nconst pictureUrl = ref<string>(\"\");\nconst showPicture = ref<boolean>(false);\nconst hasPicture = computed<boolean>(() => !!props.information.hasPicture || !!props.information.pictureName || !initials.value);\n\ndefineEmits<(e: \"click\") => void>();\n\nonMounted(() => {\n if (!hasPicture.value) {\n return;\n }\n pictureUrl.value =\n props.information.hasPicture || props.information.pictureName ? getEmployeePictureUrl(props.information.id) : avatarImageUrl;\n});\n\nconst avatarClass = computed(() => {\n const defaultAvatarImage = !props.information.pictureName && !initials.value;\n const color: AvatarColors = defaultAvatarImage ? \"alternative\" : props.color;\n return {\n [`profile-avatar__avatar--color-${color}`]: !showPicture.value || defaultAvatarImage,\n };\n});\n\nconst initials = computed(() => {\n return i18n.global.t(\"avatar.initials\", {\n first: props.information.firstName?.substring(0, 1),\n last: props.information.lastName?.substring(0, 1),\n });\n});\n</script>\n\n<style scoped lang=\"scss\">\n.profile-avatar {\n --border-radius: var(--space-m);\n\n position: relative;\n max-width: 400px;\n width: var(--size);\n height: var(--size);\n & .initials {\n font-size: 1.8rem;\n }\n\n &--size {\n &-s {\n --size: 40px;\n --border-radius: var(--space-s);\n }\n\n &-m {\n --size: 64px;\n }\n\n &-l {\n --size: 80px;\n\n & .initials {\n font-size: 4rem;\n }\n }\n }\n\n &__avatar {\n height: 100%;\n width: 100%;\n display: flex;\n\n border-radius: var(--border-radius);\n\n &--color-alternative {\n background-color: var(--color-avatar-alternative);\n\n & .initials {\n color: var(--color-avatar-text-alternative);\n }\n }\n\n &--color-default {\n background-color: var(--color-avatar-default);\n }\n }\n\n &__picture {\n border-radius: var(--border-radius);\n width: 100%;\n object-fit: cover;\n\n &-default {\n padding: 0.8rem;\n }\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n opacity: 0;\n background-color: rgba(51, 51, 51, 0.75);\n border-radius: var(--border-radius);\n transition: 0.3s ease;\n z-index: 2;\n }\n\n &__edit {\n position: absolute;\n left: 50%;\n transform: translate(-50%, -50%);\n top: 50%;\n -ms-transform: translate(-50%, -50%);\n color: #ffff;\n text-align: center;\n cursor: pointer;\n }\n\n &:hover &__overlay {\n opacity: 1;\n }\n}\n\n.text {\n margin: auto;\n}\n</style>\n","<template>\n <div class=\"avatar-container\">\n <AppProfileAvatar size=\"s\" :information=\"profileInfo\" data-cy=\"avatar-header\" />\n <div class=\"avatar-container__menu\" :class=\"{ 'avatar-container__menu--show': showMenu }\" tabindex=\"0\">\n <div class=\"avatar-container__info\">\n <AppProfileAvatar size=\"m\" editable :information=\"profileInfo\" @click=\"updatingAvatar = !updatingAvatar\" />\n <div>\n <div class=\"margin-b--xs text text--bold\">{{ profileInfo.firstName }} {{ profileInfo.lastName }}</div>\n <div class=\"margin-b--xs\">{{ profileInfo.email }}</div>\n <div v-if=\"profileInfo.role\" class=\"margin-b--xs\">\n <span class=\"text text--bold\">{{ $t(\"pages.header.role\") }}:</span> {{ $t(`roles.${profileInfo.role.toLowerCase()}`) }}\n </div>\n </div>\n </div>\n <AppProfileAvatarEditor\n v-if=\"updatingAvatar\"\n :employee-id=\"profileInfo.id\"\n :picture-name=\"profileInfo.pictureName\"\n @close=\"updatingAvatar = false\" />\n <AppProfileEditor :birth-date=\"profileInfo.birthDate\" @updated-birth-date=\"updatedBirthDate\" />\n <AppFeedbackSender v-if=\"feedbackEmail\" :feedback-email=\"feedbackEmail\" />\n <AppButton\n v-if=\"currentRoute.meta.isAppArea && (profileInfo.role === UserRole.Administrator || profileInfo.role === UserRole.ITManager)\"\n :text=\"$t(`pages.header.goToAdministratorArea`)\"\n class=\"margin-b--xs\"\n size=\"full-width\"\n variant=\"secondary\"\n @onclick=\"goToAdministratorArea()\" />\n <AppButton\n v-if=\"currentRoute.meta.isAdministratorArea\"\n :text=\"$t('pages.header.goToEmployeeArea')\"\n class=\"margin-b--xs\"\n size=\"full-width\"\n variant=\"secondary\"\n @onclick=\"goToEmployeeArea()\" />\n <AppButton :text=\"$t('pages.header.logout')\" variant=\"primary\" size=\"full-width\" data-cy=\"log-out\" @onclick=\"redirectToLogOut()\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onBeforeMount } from \"vue\";\nimport router from \"@/router/router\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppProfileAvatarEditor from \"@/components/AppProfileAvatarEditor.vue\";\nimport AppProfileEditor from \"@/components/AppProfileEditor.vue\";\nimport AppFeedbackSender from \"@/components/AppFeedbackSender.vue\";\nimport AppProfileAvatar from \"@/components/AppProfileAvatar.vue\";\nimport useAuthenticationService from \"@/services/useAuthenticationService\";\nimport { UserRole } from \"@/models/userRole\";\nimport type { EmployeeBasicInformation } from \"@/models/employeeBasicInformation\";\nimport useMeService from \"@/services/useMeService\";\n\ninterface Props {\n profileInfo: EmployeeBasicInformation;\n showMenu: boolean;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"updatedBirthDate\", newDate: Date) => void>();\n\nconst { redirectToLogOut, cleanUser } = useAuthenticationService();\n\nconst currentRoute = router.currentRoute;\n\nconst updatingAvatar = ref<boolean>(false);\n\nconst goToAdministratorArea = async () => {\n if (props.profileInfo.role === UserRole.Administrator) {\n await router.push({ name: \"default-admin\" });\n return;\n }\n await router.push({ name: \"default-it-manager\" });\n};\nconst goToEmployeeArea = async () => {\n cleanUser();\n await router.push({ name: \"default\" });\n};\nconst updatedBirthDate = (newBirthDate: Date) => emit(\"updatedBirthDate\", newBirthDate);\n\nconst { getFeedbackEmail } = useMeService();\nconst feedbackEmail = ref<string | undefined>(undefined);\nonBeforeMount(async () => (feedbackEmail.value = await getFeedbackEmail()));\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n.avatar-container {\n cursor: pointer;\n position: relative;\n\n &__info {\n display: flex;\n flex-direction: row;\n gap: var(--space-m);\n }\n\n &__menu {\n cursor: auto;\n background: var(--color-neutral-100);\n visibility: hidden;\n opacity: 0;\n position: absolute;\n transition: all 1.5s ease;\n right: 0;\n padding: var(--space-m);\n max-width: min(80vw, 40rem);\n margin-top: var(--space-xs);\n border-radius: var(--default-border-radius);\n box-shadow: 0 8px 24px rgba(26, 26, 26, 0.04);\n z-index: var(--z-index-toaster);\n &--show {\n visibility: visible;\n opacity: 1;\n display: block;\n transition: all 0.3s ease;\n }\n }\n}\n</style>\n","<template>\n <div class=\"container\">\n <div class=\"logo\">\n <router-link :to=\"rootUrl\">\n <img src=\"@/assets/images/logo.svg\" alt=\"\" data-cy=\"logo-responsive\" />\n </router-link>\n </div>\n <div id=\"header-button-container\"></div>\n <AvatarContainer\n v-if=\"profileInfo\"\n v-click-outside=\"() => (showMenu = false)\"\n :show-menu=\"showMenu\"\n :profile-info=\"profileInfo\"\n @updated-birth-date=\"updatedBirthDate\"\n @click=\"showMenu = true\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onBeforeMount, ref } from \"vue\";\nimport AvatarContainer from \"@/layout/shared/AvatarContainer.vue\";\nimport useMeService from \"@/services/useMeService\";\nimport type { EmployeeBasicInformation } from \"@/models/employeeBasicInformation\";\n\ninterface Props {\n rootUrl: string;\n}\ndefineProps<Props>();\n\nconst { getBasicInformation } = useMeService();\n\nconst profileInfo = ref<EmployeeBasicInformation>();\nconst showMenu = ref<boolean>(false);\n\nconst updatedBirthDate = (newDate: Date) => {\n if (profileInfo.value) {\n profileInfo.value.birthDate = newDate;\n }\n};\n\nonBeforeMount(async () => (profileInfo.value = await getBasicInformation()));\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n.container {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: var(--space-m) var(--space-xxl);\n @media only screen and (max-width: $medium-screen-breakpoint) {\n padding: var(--space-s) var(--space-m);\n position: sticky;\n top: 0;\n background: var(--color-background);\n z-index: 1;\n box-shadow: 0 0 6px 2px var(--color-background);\n }\n}\n.logo {\n display: none;\n width: 200px;\n @media only screen and (max-width: $medium-screen-breakpoint) {\n display: block;\n }\n}\n</style>\n","<template>\n <div class=\"layout-menu-item\" :title=\"text\" :data-cy=\"icon\">\n <div class=\"icon-container\">\n <span class=\"icon\" :class=\"iconClass\"></span>\n </div>\n <div class=\"text-container text text--l\">{{ text }}</div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport type { MenuOptionIcon } from \"@/layout/models/menu-option\";\n\ninterface Props {\n icon: MenuOptionIcon;\n text: string;\n}\n\nconst props = defineProps<Props>();\n\nconst iconClass = computed(() => `icon-${props.icon}`);\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n\n.layout-menu-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n width: 100%;\n}\n\n.icon-container {\n flex: 0 0 70px;\n font-size: 3.2rem;\n text-align: center;\n}\n\n.text-container {\n padding: 0 var(--space-s);\n}\n\n@media only screen and (max-width: $large-screen-breakpoint) {\n .text-container {\n display: none;\n }\n}\n\n@media only screen and (max-width: $medium-screen-breakpoint) {\n .layout-menu-item {\n display: block;\n }\n}\n</style>\n","<template>\n <div class=\"layout-menu\">\n <div class=\"logo\">\n <router-link :to=\"rootUrl\">\n <img src=\"@/assets/images/logo.svg\" alt=\"\" data-cy=\"logo\" />\n </router-link>\n </div>\n <nav class=\"nav\">\n <div v-for=\"menuOption in menuOptionsToShow\" :key=\"menuOption.url\">\n <router-link :to=\"menuOption.url\" class=\"nav__link\" active-class=\"nav__link--active\">\n <AppMenuItem :icon=\"menuOption.icon\" :text=\"menuOption.text\" />\n </router-link>\n </div>\n </nav>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { MenuOption } from \"@/layout/models/menu-option\";\nimport AppMenuItem from \"@/layout/shared/LayoutMenuItem.vue\";\nimport { computed } from \"vue\";\nimport useFeatureFlags from \"@/services/useFeatureFlags\";\ninterface Props {\n menuOptions: MenuOption[];\n rootUrl: string;\n}\nconst props = defineProps<Props>();\nconst { checkFeatureFlag } = useFeatureFlags();\nconst menuOptionsToShow = computed<MenuOption[]>(() =>\n props.menuOptions.filter((option) => !option.hide && checkFeatureFlag(option.featureFlag))\n);\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n\n.layout-menu {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.nav {\n display: flex;\n flex-direction: column;\n padding: 0 var(--space-s);\n overflow-y: auto;\n\n &__link {\n display: flex;\n align-items: center;\n height: 64px;\n opacity: 0.6;\n transition: background 0.3s ease;\n\n &:hover {\n opacity: 1;\n }\n\n &--active {\n background: var(--color-sidebar-menu--active);\n border-radius: var(--default-border-radius);\n opacity: 1;\n }\n }\n}\n\n.logo {\n padding: 50px 10px;\n\n img {\n width: 210px;\n }\n}\n\n@media only screen and (max-width: $large-screen-breakpoint) {\n .nav {\n padding: 0;\n\n &__link {\n padding-right: 0;\n border-radius: 0;\n }\n }\n\n .logo {\n img {\n width: 100%;\n }\n }\n}\n@media only screen and (max-width: $medium-screen-breakpoint) {\n .layout-menu {\n padding: 0;\n .logo {\n display: none;\n }\n .nav {\n flex-direction: row;\n &__link {\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n width: 64px;\n }\n }\n }\n}\n</style>\n","<template>\n <div class=\"layout-base\">\n <div class=\"menu\">\n <LayoutMenu :menu-options=\"menuOptions\" :root-url=\"rootUrl\" />\n </div>\n <div class=\"content\">\n <AppLoading v-if=\"isLoading\" />\n <LayoutHeader :root-url=\"rootUrl\" />\n <router-view />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport AppLoading from \"@/components/AppLoading.vue\";\nimport LayoutHeader from \"@/layout/shared/LayoutHeader.vue\";\nimport LayoutMenu from \"@/layout/shared/LayoutMenu.vue\";\nimport type { MenuOption } from \"@/layout/models/menu-option\";\nimport { networkStateStore } from \"@/services/shared/networkStateStore\";\n\ninterface Props {\n menuOptions: MenuOption[];\n rootUrl: string;\n}\ndefineProps<Props>();\n\nconst isLoading = computed(() => networkStateStore.state.numberOfCallsActives > 0);\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n\n.layout-base {\n display: grid;\n grid-template-areas:\n \"menu content\"\n \"menu content\";\n grid-template-rows: auto 1fr;\n grid-template-columns: 28rem 1fr;\n height: 100vh;\n\n @media only screen and (max-width: $large-screen-breakpoint) {\n grid-template-columns: 72px 1fr;\n }\n\n @media only screen and (max-width: $medium-screen-breakpoint) {\n display: initial;\n padding-bottom: 64px;\n .content {\n overflow-y: scroll;\n height: calc(100vh - 64px);\n }\n .menu {\n position: absolute;\n bottom: 0;\n height: 64px;\n width: 100%;\n }\n }\n}\n.menu {\n grid-area: menu;\n padding: 0;\n background-color: var(--color-sidebar-menu);\n box-shadow: 0 0 12px var(--color-sidebar-menu-shadow);\n}\n.content {\n grid-area: content;\n overflow-y: scroll;\n}\n</style>\n","import i18n from \"@/i18n\";\nimport type { MenuOption, MenuOptionIcon } from \"@/layout/models/menu-option\";\n\ninterface UseLayoutReturn {\n getOption: (optionId: MenuOptionIcon, urlSuffix?: string, textKey?: string) => MenuOption;\n}\n\ntype LayoutType = \"admin\" | \"app\" | \"it-manager\";\n\nexport const useLayout = (type: LayoutType): UseLayoutReturn => {\n const getOption = (icon: MenuOptionIcon, urlSuffix?: string, textKey?: string): MenuOption => {\n urlSuffix = urlSuffix ?? icon;\n textKey = textKey ?? getTitleKey(icon);\n return {\n url: `/${type}/${urlSuffix}`,\n icon: icon,\n text: i18n.global.t(textKey),\n };\n };\n\n const getTitleKey = (icon: MenuOptionIcon) => {\n const pageKey = type === \"admin\" ? `${type}.` : \"\";\n return `pages.${pageKey}${icon.replace(\"-\", \"_\")}.title`;\n };\n\n return { getOption };\n};\n","<template>\n <LayoutBase :menu-options=\"menuOptions\" root-url=\"/app\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport type { MenuOption } from \"@/layout/models/menu-option\";\nimport LayoutBase from \"@/layout/shared/LayoutBase.vue\";\nimport { useLayout } from \"@/layout/shared/useLayout\";\nimport useAuthenticationService from \"@/services/useAuthenticationService\";\n\nconst { getOption } = useLayout(\"app\");\nconst { isGroupManager } = useAuthenticationService();\nconst menuOptions = ref<MenuOption[]>([]);\n\nonMounted(async () => {\n const isUserGroupManager = await isGroupManager();\n menuOptions.value = [\n getOption(\"my-profile\"),\n getOption(\"ai-assistant\"),\n getOption(\"current-experience\", \"my-current-job\"),\n getOption(\"ideal-job\", \"my-ideal-job\", \"entities.my_ideal_job.title\"),\n getOption(\"my-interests\"),\n getOption(\"learning\", \"my-learning\"),\n getOption(\"goals-challenges\"),\n { ...getOption(\"group\", \"my-groups\", \"pages.my_groups.title\"), hide: !isUserGroupManager },\n ];\n});\n</script>\n","<template>\n <div v-show=\"shouldBeShown\" class=\"layout\">\n <label\n v-for=\"(tab, index) in tabsAllowed\"\n :key=\"tab.dataCy\"\n class=\"nav\"\n :class=\"{ 'nav--checked': tab.isChecked ?? index === 0 }\"\n :data-cy=\"tab.dataCy\">\n <input :name=\"tabId\" type=\"radio\" class=\"nav home-radio\" :checked=\"tab.isChecked ?? index === 0\" @click=\"tab.action\" />\n <span class=\"text text--bold text--line-clamp-2\"> {{ tab.text }} </span>\n </label>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport useFeatureFlags from \"@/services/useFeatureFlags\";\n\nexport interface Tab {\n text: string;\n action?: () => void;\n isChecked?: boolean;\n dataCy: string;\n featureFlag?: string;\n}\n\ninterface Props {\n tabs: Tab[];\n tabId: string;\n showIfOnlyOneAvailable?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), { showIfOnlyOneAvailable: true });\n\nconst { checkFeatureFlag } = useFeatureFlags();\nconst tabsAllowed = computed(() => props.tabs.filter((tab) => checkFeatureFlag(tab.featureFlag)));\nconst shouldBeShown = computed(\n () => tabsAllowed.value.length === props.tabs.length || tabsAllowed.value.length !== 1 || props.showIfOnlyOneAvailable\n);\n</script>\n\n<style scoped lang=\"scss\">\n.layout {\n display: inline-flex;\n min-height: var(--space-xl);\n overflow: hidden;\n border-color: var(--color-app-tab-border);\n border-style: solid;\n border-width: 1px;\n border-radius: var(--default-border-radius);\n}\n\ninput[type=\"radio\"] {\n display: none;\n}\nlabel {\n width: inherit;\n}\n\nlabel.nav {\n flex-grow: 1;\n cursor: pointer;\n user-select: none;\n background-color: transparent;\n transition: background-color 0.4s, padding-left 0.2s;\n\n span {\n display: flex;\n place-items: center;\n text-align: center;\n height: 100%;\n padding: var(--space-xs) var(--space-s);\n transition: color 0.4s;\n }\n\n &:hover {\n background: var(--color-sidebar-menu--hover);\n span {\n color: var(--color-primary-accent1);\n }\n }\n\n & + & {\n border-left: 1px solid var(--color-app-tab-border);\n }\n\n input[type=\"radio\"]:checked + span {\n background: var(--color-app-tab-background--checked);\n color: var(--color-app-tab-text);\n }\n\n &:has(input[type=\"radio\"]:checked) {\n pointer-events: none;\n }\n}\n</style>\n","<template>\n <AppTab :tabs=\"tabs\" :tab-id=\"$t('pages-my-profile.dashboard.tab')\" />\n</template>\n\n<script setup lang=\"ts\">\nimport AppTab, { type Tab } from \"@/components/AppTab.vue\";\nimport i18n from \"@/i18n\";\nimport router from \"@/router/router\";\n\ninterface Props {\n current: \"Profile\" | \"Dashboard\";\n}\n\nconst props = defineProps<Props>();\n\nconst tabs: Tab[] = [\n {\n text: i18n.global.t(\"pages-my-profile.profile_updating.tab\"),\n action: () => router.push({ name: \"my-profile-overview\" }),\n isChecked: props.current === \"Profile\",\n dataCy: \"nav-profile\",\n },\n {\n text: i18n.global.t(\"pages-my-profile.dashboard.tab\"),\n action: () => router.push({ name: \"my-profile-dashboard\" }),\n isChecked: props.current === \"Dashboard\",\n dataCy: \"nav-dashboard\",\n },\n];\n</script>\n","<template>\n <apexchart type=\"radar\" height=\"450\" :options=\"chartOptions\" :series=\"series\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport i18n from \"@/i18n\";\n\ninterface Props {\n seriesValues: number[][];\n categoryNames: string[];\n}\n\nconst props = defineProps<Props>();\n\nconst labelNames: string[] = [\n \"\",\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.graph.labels.0\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.graph.labels.1\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.graph.labels.2\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.graph.labels.3\"),\n];\n\nconst seriesNames: string[] = [\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.graph.series.1\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.graph.series.2\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.graph.series.3\"),\n];\n\nconst series = seriesNames.map((name, index) => ({\n name: name,\n data: props.seriesValues[index],\n}));\nconst xAxisColors = props.categoryNames.map(() => \"#1a1a1a\");\nconst yAxisColors = props.categoryNames.map(() => \"#666666\");\n\nconst chartOptions = {\n chart: {\n height: 450,\n type: \"radar\",\n dropShadow: {\n enabled: true,\n blur: 1,\n left: 1,\n top: 1,\n },\n toolbar: {\n show: false,\n },\n },\n stroke: {\n width: 0,\n },\n fill: {\n opacity: 0.25,\n },\n markers: { size: 4, colors: [\"#8D83DB\", \"#5AC3E5\", \"#E7AD6C\"] },\n colors: [\"#8D83DB\", \"#5AC3E5\", \"#E7AD6C\"],\n xaxis: {\n categories: props.categoryNames,\n labels: {\n style: {\n colors: xAxisColors,\n },\n },\n },\n yaxis: {\n labels: {\n formatter: (val: number) => labelNames[val],\n style: {\n colors: yAxisColors,\n },\n },\n },\n legend: {\n itemMargin: {\n horizontal: 15,\n },\n },\n};\n</script>\n","<template>\n <ProfilePerformanceChart :series-values=\"examplePerformanceGraphSeriesValues\" :category-names=\"examplePerformanceGraphCategoryNames\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport i18n from \"@/i18n\";\n\nimport ProfilePerformanceChart from \"@/views/app/my-profile/components/overview/ProfilePerformanceChart.vue\";\nconst examplePerformanceGraphSeriesValues: number[][] = [\n [4, 1, 1, 1, 1, 1, 1, 3, 3, 2, 3, 2],\n [1, 4, 4, 3, 4, 3, 4, 1, 1, 1, 1, 1],\n [4, 3, 1, 4, 2, 1, 4, 2, 1, 3, 4, 2],\n];\nconst examplePerformanceGraphCategoryNames: string[] = [\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.graph.categories.1\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.graph.categories.2\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.graph.categories.3\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.graph.categories.4\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.graph.categories.5\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.graph.categories.6\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.graph.categories.7\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.graph.categories.8\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.graph.categories.9\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.graph.categories.10\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.graph.categories.11\"),\n i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.graph.categories.12\"),\n];\n</script>\n","<template>\n <div class=\"profile-summary-information\">\n <AppProfileAvatar :size=\"size\" :information=\"employeeInformation\" color=\"alternative\" />\n <div class=\"profile-summary-information__name-position\" data-cy=\"profile-name\">\n <span :class=\"fullNameClass\">{{ fullName }}</span>\n <span class=\"text text--l\">{{ profileInformation.currentJobExperience }}</span>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport AppProfileAvatar from \"@/components/AppProfileAvatar.vue\";\nimport type { ProfileSummaryInformation } from \"@/models/profileSummaryInformation\";\nimport type { AvatarInformation } from \"@/models/employee/avatarInformation\";\n\ninterface Props {\n profileInformation: ProfileSummaryInformation;\n size: \"s\" | \"l\" | \"m\";\n}\nconst props = defineProps<Props>();\n\nconst fullName = `${props.profileInformation.firstName} ${props.profileInformation.lastName}`;\nconst employeeInformation: AvatarInformation = { ...props.profileInformation, id: props.profileInformation.employeeId };\n\nconst fullNameClass = computed<string>(() => {\n const cssClass = \"text text--bold\";\n return props.size === \"l\" ? cssClass + \" text--xl\" : cssClass + \" text--l\";\n});\n</script>\n\n<style lang=\"scss\">\n.profile-summary-information {\n display: flex;\n gap: var(--space-m);\n align-items: center;\n\n &__name-position {\n display: flex;\n flex-direction: column;\n gap: var(--space-xs);\n }\n}\n</style>\n","<template>\n <div>\n <p class=\"text margin-b--m\">{{ $t(\"pages-my-profile.profile_updating.performance_graph.example.subtitle\") }}</p>\n <AppProfileSummaryInformation :profile-information=\"exampleProfileInformation\" size=\"m\" />\n <ul class=\"example-points\">\n <li class=\"text example-points__item\">{{ $t(\"pages-my-profile.profile_updating.performance_graph.example.steps.1\") }}</li>\n <li class=\"text example-points__item\">{{ $t(\"pages-my-profile.profile_updating.performance_graph.example.steps.2\") }}</li>\n <li class=\"text example-points__item\">{{ $t(\"pages-my-profile.profile_updating.performance_graph.example.steps.3\") }}</li>\n </ul>\n <ProfilePerformanceExampleChart />\n <p class=\"text margin-v--m\">{{ $t(\"pages-my-profile.profile_updating.performance_graph.example.content_1\") }}</p>\n <p class=\"text margin-b--m\">{{ $t(\"pages-my-profile.profile_updating.performance_graph.example.content_2\") }}</p>\n <p class=\"text text--bold\">{{ $t(\"pages-my-profile.profile_updating.performance_graph.example.content_3\") }}</p>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport i18n from \"@/i18n\";\nimport type { ProfileSummaryInformation } from \"@/models/profileSummaryInformation\";\n\nimport ProfilePerformanceExampleChart from \"@/views/app/my-profile/components/overview/ProfilePerformanceExampleChart.vue\";\nimport AppProfileSummaryInformation from \"@/views/app/my-profile/components/shared/ProfileSummaryInformation.vue\";\n\nconst exampleProfileInformation: ProfileSummaryInformation = {\n employeeId: 1,\n firstName: i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.profile.first_name\"),\n lastName: i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.profile.last_name\"),\n jobExperiences: [i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.profile.experience\")],\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.example-points {\n list-style: disc;\n margin: var(--space-s) 0 0 var(--space-m);\n\n &__item {\n margin-bottom: var(--space-xs);\n }\n}\n</style>\n","<template>\n <div class=\"box\">\n <div class=\"box__header\" data-cy=\"box-header\">{{ title }}</div>\n <div class=\"box__content\" :class=\"contentClasses\">\n <slot></slot>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\n\ninterface Props {\n title: string;\n fullSpace?: boolean;\n}\nconst props = defineProps<Props>();\nconst contentClasses = computed(() => ({ \"box__content--full\": props.fullSpace }));\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n.box {\n --border-radius: var(--default-border-radius);\n\n background-color: var(--color-card);\n border: 1px solid var(--color-border);\n border-radius: var(--border-radius);\n\n &__header {\n padding: var(--size-s);\n font-size: var(--size-s);\n font-weight: var(--font-bold);\n color: var(--color-primary-accent1);\n background-color: var(--color-card--accent1);\n border-radius: var(--border-radius) var(--border-radius) 0 0;\n }\n\n &__content {\n display: flex;\n flex-direction: column;\n gap: var(--size-l);\n align-items: flex-start;\n justify-content: center;\n padding: var(--size-s);\n\n &--full {\n gap: 0;\n padding: 0;\n }\n\n :slotted(.box-content) {\n &,\n & img {\n max-width: 100%;\n }\n img {\n width: 50%;\n }\n\n @media only screen and (max-width: $big-screen-breakpoint) {\n padding: var(--size-xs);\n flex-direction: column;\n\n img {\n width: 100%;\n }\n }\n }\n }\n}\n</style>\n","<template>\n <div>\n <p class=\"text text--bold margin-b--m\">{{ $t(\"pages-my-profile.profile_updating.steps_guide.title_1\") }}</p>\n\n <AppBox :title=\"$t('pages-my-profile.profile_updating.steps_guide.skills_profile.title')\">\n <div>\n <p class=\"margin-b--s text text--bold\">{{ $t(\"pages-my-profile.profile_updating.steps_guide.skills_profile.content\") }}</p>\n <AppButton\n :text=\"$t('pages-my-profile.profile_updating.steps_guide.skills_profile.select')\"\n size=\"m\"\n data-cy=\"select-employee-skills\"\n @onclick=\"selectEmployeeSkills\" />\n </div>\n </AppBox>\n\n <p class=\"text text--bold margin-v--m\">{{ $t(\"pages-my-profile.profile_updating.steps_guide.title_2\") }}</p>\n\n <AppBox :title=\"$t('pages-my-profile.profile_updating.steps_guide.current_job.title')\">\n <div>\n <p class=\"margin-b--s text text--bold\">{{ $t(\"pages-my-profile.profile_updating.steps_guide.current_job.content_1\") }}</p>\n <AppButton\n :text=\"$t('pages-my-profile.profile_updating.steps_guide.current_job.select_current_job_skills')\"\n size=\"m\"\n data-cy=\"select-current-job-skills\"\n @onclick=\"selectCurrentJobSkills\" />\n <p class=\"margin-v--s\">{{ $t(\"pages-my-profile.profile_updating.steps_guide.current_job.content_2\") }}</p>\n <p class=\"margin-b--s\">{{ $t(\"pages-my-profile.profile_updating.steps_guide.current_job.content_3\") }}</p>\n <AppButton\n :text=\"$t('pages-my-profile.profile_updating.steps_guide.current_job.get_linkedin_profile')\"\n size=\"m\"\n variant=\"secondary\"\n data-cy=\"go-to-current-experience\"\n @onclick=\"goToMyCurrentExperience\" />\n </div>\n </AppBox>\n\n <AppBox :title=\"$t('pages-my-profile.profile_updating.steps_guide.ideal_job.title')\" class=\"margin-t--m\">\n <div>\n <p class=\"margin-b--s text text--bold\">{{ $t(\"pages-my-profile.profile_updating.steps_guide.ideal_job.content_1\") }}</p>\n <AppButton\n :text=\"$t('pages-my-profile.profile_updating.steps_guide.ideal_job.select_ideal_job_skills')\"\n size=\"m\"\n data-cy=\"select-ideal-job-skills\"\n @onclick=\"selectIdealJobSkills\" />\n <p class=\"margin-v--s\">\n {{ $t(\"pages-my-profile.profile_updating.steps_guide.ideal_job.content_2\") }}\n </p>\n <AppButton\n :text=\"$t('pages-my-profile.profile_updating.steps_guide.ideal_job.go_to_my_ideal_job')\"\n size=\"m\"\n variant=\"secondary\"\n data-cy=\"go-to-my-ideal-job\"\n @onclick=\"goToMyIdealJob\" />\n </div>\n </AppBox>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport AppBox from \"@/components/AppBox.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport router from \"@/router/router\";\n\nconst emit = defineEmits<{\n (e: \"select-employee-skills\"): void;\n (e: \"select-current-job-skills\"): void;\n (e: \"select-ideal-job-skills\"): void;\n}>();\n\nconst goToMyCurrentExperience = () => router.push({ name: \"my-current-job\" });\n\nconst goToMyIdealJob = () => router.push({ name: \"my-ideal-job-learning\" });\n\nconst selectEmployeeSkills = (): void => {\n emit(\"select-employee-skills\");\n};\n\nconst selectIdealJobSkills = (): void => {\n emit(\"select-ideal-job-skills\");\n};\n\nconst selectCurrentJobSkills = (): void => {\n emit(\"select-current-job-skills\");\n};\n</script>\n","<template>\n <Transition name=\"fade\">\n <div v-if=\"isVisible\" class=\"tip\" :class=\"`margin-b--${noMargin ? 0 : 'm'}`\">\n <span v-if=\"!noIcon\" class=\"icon text\" :class=\"`icon-${icon}`\"></span>\n <div class=\"tip__container\">\n <div class=\"tip__title text text--bold margin-b--s\">{{ title }}</div>\n <p class=\"tip__content\">{{ content }}</p>\n <div v-if=\"uniqueName\" class=\"tip__dismiss\">\n <AppLinkButton :text=\"$t('shared.tips.dismiss')\" :data-cy=\"`${uniqueName}__dismiss`\" @click=\"setNotVisible\" />\n </div>\n </div>\n </div>\n </Transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppLinkButton from \"@/components/AppLinkButton.vue\";\nimport { STORES, useStorageService } from \"@/services/infrastructure/storageService\";\n\nconst { getFromStore, store } = useStorageService<string[]>(STORES.tips_key);\n\ninterface Props {\n content: string;\n uniqueName?: string;\n title?: string;\n icon?: string;\n noMargin?: boolean;\n noIcon?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n icon: \"bulb\",\n});\n\nlet tipsHidden = getFromStore();\nconst defaultVisible: boolean = props.uniqueName && tipsHidden ? !tipsHidden.includes(props.uniqueName) : true;\nconst isVisible = ref<boolean>(defaultVisible);\nconst title = computed(() => props.title ?? i18n.global.t(\"shared.tips.title\"));\n\nconst setNotVisible = () => {\n if (!props.uniqueName) {\n return;\n }\n if (tipsHidden === undefined) {\n tipsHidden = [];\n }\n if (!tipsHidden.includes(props.uniqueName)) {\n tipsHidden.push(props.uniqueName);\n }\n store(tipsHidden);\n isVisible.value = false;\n};\n</script>\n<style lang=\"scss\" scoped>\n.tip {\n background-color: var(--color-tip-panel-background);\n border-radius: var(--default-border-radius);\n display: flex;\n flex-direction: row;\n gap: var(--default-gap);\n overflow: hidden;\n padding: var(--space-m);\n transition: all 1s linear;\n\n &__container {\n flex-grow: 1;\n }\n &__title {\n color: var(--color-tip-title-text);\n }\n &__content {\n text-align: justify;\n text-justify: inter-word;\n }\n &__dismiss {\n text-align: right;\n margin-top: var(--space-m);\n }\n .icon {\n font-size: var(--size-m);\n }\n}\n</style>\n","<template>\n <div>\n <AppTip unique-name=\"my_profile_initial_guide\" :content=\"$t('pages-my-profile.profile_updating.welcome_guide.tip')\" />\n <h3 class=\"margin-b--s\">{{ $t(\"pages-my-profile.profile_updating.welcome_guide.steps.title\") }}</h3>\n <div class=\"steps\">\n <div v-for=\"(icon, index) in icons\" :key=\"icon\" class=\"steps__item\">\n <span class=\"icon steps__icon\" :class=\"`icon-${icon}`\"></span>\n <div>\n {{ $t(`pages-my-profile.profile_updating.welcome_guide.steps.${index + 1}`) }}\n </div>\n </div>\n </div>\n <h3 class=\"margin-b--s\">{{ $t(\"pages-my-profile.profile_updating.welcome_guide.summary.title\") }}</h3>\n <div>\n {{ $t(\"pages-my-profile.profile_updating.welcome_guide.summary.content\") }}\n </div>\n <div class=\"margin-v--m\">\n <span class=\"text text--link text--bold\" @click=\"showExample\">\n {{ $t(\"pages-my-profile.profile_updating.welcome_guide.summary.see_example\") }}\n </span>\n </div>\n <ProfilePerformanceExampleChart />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport ProfilePerformanceExampleChart from \"@/views/app/my-profile/components/overview/ProfilePerformanceExampleChart.vue\";\nimport AppTip from \"@/components/AppTip.vue\";\n\nconst emit = defineEmits<(e: \"show-example\") => void>();\n\nconst showExample = () => emit(\"show-example\");\n\nconst icons = [\"user\", \"chart\", \"list\", \"linkedin\"];\n</script>\n\n<style lang=\"scss\" scoped>\n.steps {\n &__item {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--space-m);\n margin-bottom: var(--space-m);\n }\n\n &__icon {\n font-size: 40px;\n color: var(--color-primary-accent1);\n }\n}\n</style>\n","export default \"__VITE_ASSET__96a6c1e4__\"","<template>\n <label class=\"app-checkbox\">\n <input class=\"app-checkbox__input\" type=\"checkbox\" :checked=\"modelValue\" @change=\"change\" @focus=\"focus\" @focusout=\"focusOut\" />\n <span\n class=\"app-checkbox__box\"\n :class=\"{ 'icon icon-check': modelValue, 'app-checkbox__box--checked': modelValue, 'app-checkbox__box--focus': hasFocus }\">\n </span>\n <span v-if=\"text\" class=\"app-checkbox__text text\" :class=\"{ 'text--bold': highlighted }\" :title=\"text\">{{ text }}</span>\n </label>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\n\ninterface Props {\n modelValue?: boolean;\n text?: string;\n highlighted?: boolean;\n}\nwithDefaults(defineProps<Props>(), { modelValue: false, highlighted: false });\n\nconst hasFocus = ref<boolean>(false);\n\nconst emit = defineEmits<(e: \"update:modelValue\", checked: boolean) => void>();\n\nconst change = (event: Event): void => {\n const checkbox: HTMLInputElement = event.target as HTMLInputElement;\n emit(\"update:modelValue\", checkbox.checked);\n};\n\nconst focus = (): void => {\n hasFocus.value = true;\n};\n\nconst focusOut = (): void => {\n hasFocus.value = false;\n};\n</script>\n\n<style scoped lang=\"scss\">\n.app-checkbox {\n display: flex;\n align-items: center;\n\n &__input {\n display: none;\n }\n\n &__text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n }\n\n &__box {\n flex: 0 0 16px;\n width: 16px;\n height: 16px;\n margin-right: 10px;\n overflow: hidden;\n\n background-color: var(--color-checkbox-background);\n border: 1px solid var(--color-checkbox-border);\n\n &--checked {\n font-size: 1.4rem;\n color: var(--color-checkbox--checked);\n background-color: var(--color-checkbox-background--checked);\n }\n }\n}\n</style>\n","<template>\n <label class=\"app-basic-text\" :class=\"keepMargin ? 'app-basic-text--keep-margin' : ''\">\n <span v-if=\"label\" class=\"text text--secondary\">{{ label }}</span>\n <span v-if=\"icon\" class=\"input-icon input-icon--left icon text text--xxl\" :class=\"`icon-${icon}`\"></span>\n <input\n v-app-focus=\"autofocus\"\n :type=\"type || 'text'\"\n :placeholder=\"placeholder\"\n class=\"app-basic-text__input text\"\n :class=\"inputClasses\"\n :value=\"modelValue\"\n :maxlength=\"maxlength\"\n :disabled=\"disabled\"\n @input=\"inputHandle\"\n @keyup=\"(args) => emit('keyup', args)\"\n @keydown=\"(args) => emit('keydown', args)\"\n @click=\"emit('click')\"\n @focusin=\"emit('focusin')\"\n @blur=\"emit('blur')\" />\n <AppIconOnlyButton\n v-if=\"showCleanOption\"\n v-show=\"modelValue !== ''\"\n class=\"input-icon input-icon--right\"\n size=\"xxl\"\n :as-link=\"false\"\n icon=\"close-circle-outline\"\n :title=\"$t('buttons.delete')\"\n @click=\"handleCleanClicked\" />\n </label>\n</template>\n\n<script setup lang=\"ts\">\nimport { watch, computed } from \"vue\";\nimport AppIconOnlyButton from \"@/components/AppIconOnlyButton.vue\";\n\ninterface Props {\n modelValue?: string;\n label?: string;\n type?: \"text\" | \"password\";\n placeholder?: string;\n maxlength?: number;\n icon?: string;\n showCleanOption?: boolean;\n disabled?: boolean;\n autofocus?: boolean;\n keepMargin?: boolean;\n bgTransparent?: boolean;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n (e: \"update:modelValue\", value: string): void;\n (e: \"keyup\", args: KeyboardEvent): void;\n (e: \"keydown\", args: KeyboardEvent): void;\n (e: \"changed\", newValue: string): void;\n (e: \"click\"): void;\n (e: \"focusin\"): void;\n (e: \"blur\"): void;\n (e: \"cleaned\"): void;\n}>();\n\nconst inputHandle = (event: Event): void => {\n const input: HTMLInputElement = event.target as HTMLInputElement;\n emit(\"update:modelValue\", input.value);\n};\n\nconst handleCleanClicked = (): void => {\n emit(\"update:modelValue\", \"\");\n emit(\"cleaned\");\n};\n\nconst inputClasses = computed(() => ({\n \"app-basic-text__input--with-icon\": !!props.icon,\n \"app-basic-text__input--with-clean\": props.showCleanOption,\n \"app-basic-text__input--keep-margin\": props.keepMargin,\n \"app-basic-text__input--bg-transparent\": !!props.bgTransparent,\n}));\n\nwatch(\n () => props.modelValue,\n () => emit(\"changed\", props.modelValue ?? \"\")\n);\n</script>\n\n<style scoped lang=\"scss\">\n.app-basic-text {\n display: flex;\n flex-direction: column;\n position: relative;\n gap: 1rem;\n\n &--keep-margin {\n gap: 0;\n }\n\n &__input {\n padding: 0.9rem;\n border: 1px solid var(--color-input-border);\n width: 100%;\n\n &:focus-visible {\n outline: none;\n }\n\n &:hover,\n &:focus,\n &:active {\n border: 1px solid var(--color-input-border--focus);\n }\n &--with-icon,\n &--with-clean {\n padding-top: 0.9rem;\n padding-bottom: 0.9rem;\n }\n\n &--with-icon {\n padding-left: 4rem;\n }\n\n &--keep-margin {\n margin: 10px 0 4px 0;\n }\n\n &--bg-transparent {\n background-color: rgba(0, 0, 0, 0);\n }\n }\n}\n.input-icon {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n\n &--left {\n left: 0.5rem;\n }\n &--right {\n right: 0.5rem;\n }\n}\n</style>\n","<template>\n <div class=\"app-autocomplete\">\n <AppBasicText\n v-model=\"searchTerm\"\n :autofocus=\"autofocus\"\n :placeholder=\"placeholder\"\n :maxlength=\"maxlength\"\n icon=\"magnify\"\n :show-clean-option=\"true\"\n :bg-transparent=\"true\"\n data-cy=\"autocomplete\"\n @changed=\"inputChanged\"\n @click=\"inputFocusIn\"\n @focusin=\"inputFocusIn\"\n @blur=\"removeFocus\"\n @keydown.up=\"focusPreviousItem\"\n @keydown.down=\"focusNextItem\"\n @keydown.enter=\"chooseCurrentItem\"\n @cleaned=\"cleaned\" />\n\n <div v-if=\"availableItems.length > 0 && hasInputFocus\" class=\"app-autocomplete__results\" data-cy=\"autocomplete-results\">\n <div\n v-for=\"(item, index) in availableItems\"\n :key=\"item.id\"\n v-app-scroll-to=\"index === selectedItemIndex\"\n type=\"button\"\n class=\"app-autocomplete__results__item text\"\n :class=\"{ 'app-autocomplete__results__item--focused': index === selectedItemIndex }\"\n @mousedown=\"itemClick(item)\">\n {{ item.text }}\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { AutocompleteItem } from \"@/models/autocompleteItem\";\nimport { computed, ref } from \"vue\";\nimport AppBasicText from \"@/components/AppBasicText.vue\";\n\ninterface Props {\n items: AutocompleteItem[];\n label?: string;\n placeholder?: string;\n maxlength?: number;\n autofocus?: boolean;\n selfFiltering?: boolean;\n keepSelection?: boolean;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n (e: \"change\", value: string): void;\n (e: \"click\", value: AutocompleteItem): void;\n (e: \"cleaned\"): void;\n}>();\n\nconst searchTerm = ref<string>(\"\");\nconst selectedItemIndex = ref<number | undefined>();\nconst hasInputFocus = ref<boolean>(false);\n\nconst availableItems = computed<AutocompleteItem[]>(() => {\n if (props.selfFiltering && searchTerm.value) {\n return props.items.filter((i) => i.text.toLowerCase().includes(searchTerm.value.toLowerCase()));\n }\n return props.items;\n});\n\nconst removeFocus = (): void => {\n selectedItemIndex.value = undefined;\n hasInputFocus.value = false;\n};\nconst inputChanged = (): void => emit(\"change\", searchTerm.value);\nconst inputFocusIn = (): void => {\n hasInputFocus.value = true;\n inputChanged();\n};\n\nconst cleaned = () => emit(\"cleaned\");\n\nconst focusNextItem = (): void => {\n if (selectedItemIndex.value === undefined) {\n selectedItemIndex.value = 0;\n hasInputFocus.value = true;\n return;\n }\n if (selectedItemIndex.value >= availableItems.value.length - 1) {\n selectedItemIndex.value = availableItems.value.length - 1;\n return;\n }\n selectedItemIndex.value = selectedItemIndex.value + 1;\n};\nconst focusPreviousItem = (): void => {\n if (selectedItemIndex.value === undefined || selectedItemIndex.value === 0) {\n return;\n }\n selectedItemIndex.value = selectedItemIndex.value - 1;\n};\nconst chooseCurrentItem = (args: KeyboardEvent): void => {\n args.stopImmediatePropagation();\n if (selectedItemIndex.value === undefined) {\n return;\n }\n itemClick(availableItems.value[selectedItemIndex.value]);\n};\nconst itemClick = (item: AutocompleteItem): void => {\n searchTerm.value = props.keepSelection ? item.text : \"\";\n emit(\"click\", item);\n removeFocus();\n};\n</script>\n\n<style scoped lang=\"scss\">\n.app-autocomplete {\n position: relative;\n width: 100%;\n\n &__results {\n border: 1px solid var(--color-input-border);\n position: absolute;\n width: 100%;\n top: 100%;\n max-height: 30rem;\n overflow-y: auto;\n z-index: var(--z-index-modal);\n\n &__item {\n padding: var(--space-xs);\n opacity: 1;\n background-color: var(--color-neutral-100);\n cursor: pointer;\n\n &--focused,\n &:hover {\n opacity: 1;\n background-color: var(--color-primary-accent1);\n color: var(--color-neutral-100);\n }\n }\n }\n}\n</style>\n","export const getRandomId = (): string => `AppFleebeId__${window.crypto.randomUUID()}`;\n","<template>\n <AppModal\n :name=\"componentId\"\n :disable-key-enter=\"disableKeyEnter\"\n :disable-key-scape=\"disableKeyScape\"\n :state=\"state\"\n :overflow=\"overflow\">\n <slot></slot>\n <template v-if=\"hasCustomActions\" #actions>\n <slot name=\"actions\"></slot>\n </template>\n </AppModal>\n</template>\n\n<script setup lang=\"ts\">\nimport AppModal from \"@/components/modal/AppModal.vue\";\nimport type { ComponentModal } from \"@/components/modal/models\";\nimport useModal from \"@/components/modal/useModal\";\nimport { getRandomId } from \"@/utils/randomUtils\";\nimport { computed, getCurrentInstance, onMounted } from \"vue\";\n\nconst { openComponentModal } = useModal();\n\ninterface Props {\n modalConfig: ComponentModal;\n disableKeyScape?: boolean;\n disableKeyEnter?: boolean;\n state?: string;\n overflow?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), { overflow: true });\n\nconst componentId: string = getRandomId();\nonMounted(() => openComponentModal(componentId, props.modalConfig));\nconst hasCustomActions = computed<boolean>(() => !!getCurrentInstance()?.slots[\"actions\"]);\n</script>\n","<template>\n <ul class=\"wizard-path\" data-cy=\"wizard-path\">\n <li\n v-for=\"(step, index) in steps\"\n :key=\"step.number\"\n class=\"wizard-path__item\"\n :class=\"{ 'wizard-path__item--done': selectedStep >= step.number, 'wizard-path__item-next--done': selectedStep > step.number }\"\n :data-cy=\"`wizard-path-${step.number}`\"\n @click=\"stepClick(step.number)\">\n <div class=\"wizard-path__item-number\">{{ index + 1 }}</div>\n <div class=\"wizard-path__item-text\">{{ $t(`${namePrefix}.${step.name}`) }}</div>\n </li>\n </ul>\n</template>\n<script setup lang=\"ts\">\nexport interface WizardPathStep {\n number: number;\n name: string;\n}\n\ninterface Props {\n selectedStep: number;\n steps: WizardPathStep[];\n namePrefix: string;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"stepClick\", step: number) => void>();\n\nconst stepClick = (step: number): void => emit(\"stepClick\", step);\n</script>\n<style lang=\"scss\" scoped>\n.wizard-path {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 0 var(--size-xs);\n\n &__item {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-grow: 1;\n color: var(--color-neutral-700);\n border-color: var(--color-neutral-700);\n cursor: pointer;\n\n &::after,\n &::before {\n position: absolute;\n top: 16px;\n display: block;\n width: 50%;\n height: 1px;\n content: \"\";\n background-color: var(--color-neutral-400);\n }\n &::before {\n left: 0;\n }\n &::after {\n right: 0;\n }\n\n &:first-child::before,\n &:last-child::after {\n display: none;\n }\n\n &:not(:first-child, :last-child) {\n flex-grow: 2;\n }\n\n &--done {\n color: var(--color-system-success);\n border-color: var(--color-system-success);\n\n &::before {\n background-color: var(--color-system-success);\n }\n }\n &-next--done::after {\n background-color: var(--color-system-success);\n }\n }\n\n &__item-number {\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--size-l);\n height: var(--size-l);\n background-color: var(--color-neutral-100);\n border: 1px solid var(--color-neutral-400);\n border-radius: var(--size-l);\n }\n\n &__item--done &__item-number {\n border-color: var(--color-system-success);\n }\n\n &__item-text {\n font-size: 1.3rem;\n font-weight: var(--font-bold);\n text-align: center;\n max-width: 20rem;\n padding: 0 0.5rem;\n }\n}\n</style>\n","<template>\n <AppWizardPath\n :steps=\"steps\"\n :selected-step=\"selectedStep\"\n name-prefix=\"pages-my-profile.profile_updating.performance_graph.configurer.step\"\n @step-click=\"stepClick\" />\n</template>\n<script setup lang=\"ts\">\nimport AppWizardPath from \"@/components/AppWizardPath.vue\";\n\ninterface Props {\n selectedStep: number;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"stepClick\", step: number) => void>();\n\nconst steps = [\n { number: 1, name: \"introduction\" },\n { number: 2, name: \"current_job_skills\" },\n { number: 3, name: \"ideal_job_skills\" },\n];\nconst stepClick = (step: number): void => emit(\"stepClick\", step);\n</script>\n","import useHttpClient from \"@/services/shared/useHttpClient\";\nimport type { Ref } from \"vue\";\nimport type { PerformanceGraph } from \"@/models/performanceGraph\";\nimport type { SkillProgression } from \"@/models/skillProgression\";\n\nconst BASE_URL = \"/api/me/performance-graph\";\nconst { get, post, loading } = useHttpClient();\n\ninterface UseMePerformanceGraphServiceReturn {\n getPerformanceGraph: () => Promise<PerformanceGraph>;\n updatePerformanceGraph: (request: UpdatePerformanceGraphRequest) => Promise<void>;\n getAvailableSkills: () => Promise<GetAvailableSkillsResponse>;\n loading: Ref<boolean>;\n}\n\ninterface GetAvailableSkillsResponse {\n currentJobSkills: { id: number; name: string; progression: SkillProgression }[];\n idealJobSkills: { id: number; name: string; progression: SkillProgression }[];\n}\n\ninterface UpdatePerformanceGraphRequest {\n idealJobSkillIds: number[];\n currentJobSkillIds: number[];\n}\n\nexport default (): UseMePerformanceGraphServiceReturn => {\n const getPerformanceGraph = (): Promise<PerformanceGraph> => get(BASE_URL);\n const updatePerformanceGraph = (request: UpdatePerformanceGraphRequest): Promise<void> => post(BASE_URL, request);\n const getAvailableSkills = (): Promise<GetAvailableSkillsResponse> => get(`${BASE_URL}/available-skills`);\n\n return { getPerformanceGraph, updatePerformanceGraph, getAvailableSkills, loading };\n};\n","<template>\n <AppAutomaticModalOpener :modal-config=\"modalConfig\">\n <ProfilePerformanceChartConfigurerWizardPath :selected-step=\"currentStep\" @step-click=\"stepClick\" />\n <div class=\"padding--m\">\n <div v-if=\"currentStep === 1\" data-cy=\"step-1\">\n <h2>{{ $t(\"pages-my-profile.profile_updating.performance_graph.configurer.step.introduction\") }}</h2>\n <div class=\"info-panel\">\n <p class=\"margin-v--m\">{{ $t(\"pages-my-profile.profile_updating.performance_graph.configurer.step.introduction.info_1\") }}</p>\n <p class=\"margin-b--m\">\n {{ $t(\"pages-my-profile.profile_updating.performance_graph.configurer.step.introduction.info_2\") }}\n </p>\n </div>\n <div class=\"info-image\">\n <img src=\"@/assets/images/skills.svg\" alt=\"\" />\n </div>\n </div>\n <div v-if=\"currentStep === 2\" data-cy=\"step-2\">\n <h2>{{ $t(\"pages-my-profile.profile_updating.performance_graph.configurer.step.current_job_skills\") }}</h2>\n <div v-if=\"mountFinished && currentJobSkills.length > 2\">\n <div class=\"info-panel\">\n <p class=\"margin-v--m\">\n {{ $t(\"pages-my-profile.profile_updating.performance_graph.configurer.step.current_job_skills.info\") }}\n </p>\n </div>\n <AppAutocomplete\n :items=\"filteredCurrentJobSkillsAutocompleteItems\"\n :placeholder=\"$t('pages-my-profile.profile_updating.performance_graph.configurer.search.placeholder')\"\n :maxlength=\"mediumTextLength\"\n data-cy=\"autocomplete-current-job-skills\"\n @change=\"(searchTerm) => (currentJobSkillsSearch = searchTerm)\"\n @click=\"currentJobSkillAutocompleteClicked\" />\n <div class=\"grid--two-columns@medium margin-t--m\" data-cy=\"current-job-skills\">\n <AppCheckbox\n v-for=\"option in currentJobSkills\"\n :key=\"`${option.id}_${currentJobSkillsSearch}_${option.checked}`\"\n v-model=\"option.checked\"\n :text=\"getSkillLabel(option)\"\n :highlighted=\"isCurrentJobSkillBeingSearched(option.name)\" />\n </div>\n <div class=\"text text--error margin-v--m\">\n {{ form.errors.value.currentJobSkills }}\n </div>\n </div>\n <div v-else-if=\"mountFinished && currentJobSkills.length < 3\" class=\"info-panel\">\n <AppInfoPanel :title=\"$t('pages-my-profile.profile_updating.steps_guide.current_job.title')\">\n <p class=\"margin-b--s text text--bold\">\n {{ $t(\"pages-my-profile.profile_updating.performance_graph.configurer.current_job_requirements\") }}\n </p>\n <AppButton\n :text=\"$t('pages-my-profile.profile_updating.performance_graph.configurer.go_to_current_job')\"\n size=\"m\"\n variant=\"primary\"\n data-cy=\"go-to-current-experience\"\n @onclick=\"goToMyCurrentExperience\" />\n </AppInfoPanel>\n </div>\n </div>\n <div v-if=\"currentStep === 3\" data-cy=\"step-3\">\n <h2>{{ $t(\"pages-my-profile.profile_updating.performance_graph.configurer.step.ideal_job_skills\") }}</h2>\n <div v-if=\"mountFinished && idealJobSkills.length > 2\">\n <div class=\"info-panel\">\n <p class=\"margin-v--m\">{{ $t(\"pages-my-profile.profile_updating.performance_graph.configurer.step.ideal_job_skills.info\") }}</p>\n </div>\n <AppAutocomplete\n :items=\"filteredIdealJobSkillsAutocompleteItems\"\n :placeholder=\"$t('pages-my-profile.profile_updating.performance_graph.configurer.search.placeholder')\"\n :maxlength=\"mediumTextLength\"\n data-cy=\"autocomplete-ideal-job-skills\"\n @change=\"(searchTerm) => (idealJobSkillsSearch = searchTerm)\"\n @click=\"idealJobSkillAutocompleteClicked\" />\n <div class=\"grid--two-columns@medium margin-t--m\" data-cy=\"ideal-job-skills\">\n <AppCheckbox\n v-for=\"option in idealJobSkills\"\n :key=\"`${option.id}_${idealJobSkillsSearch}_${option.checked}`\"\n v-model=\"option.checked\"\n :text=\"getSkillLabel(option)\"\n :highlighted=\"isIdealJobSkillBeingSearched(option.name)\" />\n </div>\n <div class=\"text text--error margin-v--m\">\n {{ form.errors.value.idealJobSkills }}\n </div>\n </div>\n <div v-else-if=\"mountFinished && idealJobSkills.length < 3\" class=\"info-panel\">\n <AppInfoPanel :title=\"$t('pages-my-profile.profile_updating.steps_guide.ideal_job.title')\">\n <p class=\"margin-b--s text text--bold\">\n {{ $t(\"pages-my-profile.profile_updating.performance_graph.configurer.ideal_job_requirements\") }}\n </p>\n <AppButton\n :text=\"$t('pages-my-profile.profile_updating.performance_graph.configurer.go_to_ideal_job')\"\n size=\"m\"\n variant=\"primary\"\n data-cy=\"go-to-ideal-job\"\n @onclick=\"goToMyIdealJob\" />\n </AppInfoPanel>\n </div>\n </div>\n </div>\n <template #actions>\n <div class=\"wizard__actions\">\n <div>\n <AppButton\n :text=\"$t('buttons.previous')\"\n variant=\"secondary\"\n size=\"m\"\n :disabled=\"currentStep === 1\"\n data-cy=\"prev\"\n @onclick=\"prev()\" />\n </div>\n <div>\n <AppButton\n v-if=\"currentStep !== lastStep\"\n :text=\"$t('buttons.next')\"\n variant=\"secondary\"\n size=\"m\"\n data-cy=\"next\"\n @onclick=\"next()\" />\n <AppButton\n v-if=\"currentStep === lastStep\"\n :text=\"$t('buttons.save')\"\n class=\"margin-l--m\"\n variant=\"primary\"\n size=\"m\"\n data-cy=\"save\"\n @onclick=\"save()\" />\n </div>\n </div>\n </template>\n </AppAutomaticModalOpener>\n</template>\n\n<script lang=\"ts\" setup>\nimport { type Ref, ref, onMounted, computed } from \"vue\";\nimport { array as yupArray, object as yupObject } from \"yup\";\nimport i18n from \"@/i18n\";\n\nimport { useForm } from \"vee-validate\";\n\nimport AppCheckbox from \"@/components/AppCheckbox.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppAutocomplete from \"@/components/AppAutocomplete.vue\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport AppInfoPanel from \"@/components/AppInfoPanel.vue\";\nimport type { ModalBase } from \"@/components/modal/models\";\nimport { mediumTextLength } from \"@/constants/restrictions\";\n\nimport ProfilePerformanceChartConfigurerWizardPath from \"@/views/app/my-profile/components/overview/performance-chart-configurer/ProfilePerformanceChartConfigurerWizardPath.vue\";\n\nimport useMePerformanceGraphService from \"@/services/useMePerformanceGraphService\";\nimport type { SkillProgression } from \"@/models/skillProgression\";\nimport type { AutocompleteItem } from \"@/models/autocompleteItem\";\nimport { containsInsensitive } from \"@/utils/stringUtils\";\nimport router from \"@/router/router\";\n\nconst { getAvailableSkills, getPerformanceGraph, updatePerformanceGraph } = useMePerformanceGraphService();\n\ninterface Props {\n initialStep: number;\n}\ntype WizardSkill = {\n id: number;\n name: string;\n progression: SkillProgression;\n checked: boolean;\n};\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"close\"): void;\n (e: \"updated\"): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst currentStep: Ref<number> = ref<number>(props.initialStep);\nconst currentJobSkills: Ref<WizardSkill[]> = ref<WizardSkill[]>([]);\nconst currentJobSkillsSearch: Ref<string> = ref<string>(\"\");\nconst currentJobSkillsAutocompleteItems: Ref<AutocompleteItem[]> = ref<AutocompleteItem[]>([]);\nconst idealJobSkills: Ref<WizardSkill[]> = ref<WizardSkill[]>([]);\nconst idealJobSkillsSearch: Ref<string> = ref<string>(\"\");\nconst idealJobSkillsAutocompleteItems: Ref<AutocompleteItem[]> = ref<AutocompleteItem[]>([]);\nconst mountFinished = ref<boolean>(false);\n\nonMounted(async () => {\n const currentPerformanceGraph = await getPerformanceGraph();\n const availableSkills = await getAvailableSkills();\n currentJobSkills.value = availableSkills.currentJobSkills.map((s) => ({\n ...s,\n checked: currentPerformanceGraph.currentJobProgressions.some((p) => p.skillId === s.id),\n }));\n idealJobSkills.value = availableSkills.idealJobSkills.map((s) => ({\n ...s,\n checked: currentPerformanceGraph.idealJobProgressions.some((p) => p.skillId === s.id),\n }));\n currentJobSkillsAutocompleteItems.value = availableSkills.currentJobSkills.map((s) => ({ id: s.id, text: s.name }));\n idealJobSkillsAutocompleteItems.value = availableSkills.idealJobSkills.map((s) => ({ id: s.id, text: s.name }));\n mountFinished.value = true;\n});\n\nconst skillCountError = i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.configurer.errors.skills_count\");\n\nconst schema = yupObject({\n currentJobSkills: yupArray().min(3, skillCountError).max(6, skillCountError),\n idealJobSkills: yupArray().min(3, skillCountError).max(6, skillCountError),\n});\n\nconst form = useForm({ validationSchema: schema });\n\nconst modalConfig: ModalBase = {\n title: \"\",\n variant: \"large\",\n closeCallback: () => emit(\"close\"),\n};\n\nconst lastStep = 3;\n\nconst filteredCurrentJobSkillsAutocompleteItems = computed(() =>\n currentJobSkillsAutocompleteItems.value?.filter((s) => containsInsensitive(s.text, currentJobSkillsSearch.value)).slice(0, 5)\n);\n\nconst filteredIdealJobSkillsAutocompleteItems = computed(() =>\n idealJobSkillsAutocompleteItems.value.filter((s) => containsInsensitive(s.text, idealJobSkillsSearch.value)).slice(0, 5)\n);\n\nconst isIdealJobSkillBeingSearched = (name: string): boolean =>\n idealJobSkillsSearch.value !== \"\" && containsInsensitive(name, idealJobSkillsSearch.value);\nconst isCurrentJobSkillBeingSearched = (name: string): boolean =>\n currentJobSkillsSearch.value !== \"\" && containsInsensitive(name, currentJobSkillsSearch.value);\n\nconst stepClick = (step: number): void => {\n currentStep.value = step;\n};\n\nconst next = (): void => {\n if (currentStep.value === lastStep) {\n return;\n }\n currentStep.value += 1;\n};\n\nconst prev = (): void => {\n if (currentStep.value === 1) {\n return;\n }\n currentStep.value -= 1;\n};\n\nconst save = async (): Promise<void> => {\n const content = {\n currentJobSkills: currentJobSkills.value.filter((s) => s.checked),\n idealJobSkills: idealJobSkills.value.filter((s) => s.checked),\n };\n form.setValues(content);\n await form.validate();\n\n if (form.errors.value.currentJobSkills !== undefined) {\n currentStep.value = 2;\n return;\n }\n if (form.errors.value.idealJobSkills !== undefined) {\n currentStep.value = 3;\n return;\n }\n\n const request = {\n idealJobSkillIds: content.idealJobSkills.map((s) => s.id),\n currentJobSkillIds: content.currentJobSkills.map((s) => s.id),\n };\n\n await updatePerformanceGraph(request);\n emit(\"updated\");\n};\n\nconst getSkillLabel = (skill: WizardSkill): string => {\n const progression = i18n.global.t(`entities.skills.${skill.progression}`);\n return `${skill.name} (${progression})`;\n};\nconst currentJobSkillAutocompleteClicked = (item: AutocompleteItem): void => {\n const skill = currentJobSkills.value?.find((s) => s.id === item.id);\n\n if (skill !== undefined) {\n skill.checked = !skill.checked;\n }\n};\n\nconst idealJobSkillAutocompleteClicked = (item: AutocompleteItem): void => {\n const skill = idealJobSkills.value?.find((s) => s.id === item.id);\n\n if (skill !== undefined) {\n skill.checked = !skill.checked;\n }\n};\n\nconst goToMyCurrentExperience = () => router.push({ name: \"my-current-job\" });\n\nconst goToMyIdealJob = () => router.push({ name: \"my-ideal-job-learning\" });\n</script>\n<style scoped lang=\"scss\">\n.wizard {\n &__actions {\n width: 100%;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n }\n}\n\n.info-panel {\n background-color: var(--color-neutral-200);\n padding: var(--space-s);\n margin: var(--space-s) 0 var(--space-s) 0;\n border-radius: var(--size-xs);\n}\n\n.info-image {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n</style>\n","<template>\n <LayoutPage :title=\"$t('pages.my_profile.title')\">\n <MyProfileNavigation current=\"Profile\" />\n <h2 class=\"margin-v--s\">{{ $t(\"pages-my-profile.profile_updating.welcome_guide.title\") }}</h2>\n <p class=\"text text--bold margin-b--s\">{{ $t(\"pages-my-profile.profile_updating.welcome_guide.subtitle\") }}</p>\n <div class=\"grid--two-columns@large\">\n <ProfileSteps @show-example=\"showExample\" />\n <ProfileLinks\n @select-employee-skills=\"showPerformanceGraphWizard(1)\"\n @select-current-job-skills=\"showPerformanceGraphWizard(2)\"\n @select-ideal-job-skills=\"showPerformanceGraphWizard(3)\" />\n </div>\n <AppModal :name=\"performanceExamplePanelName\">\n <ProfilePerformanceExample />\n </AppModal>\n <ProfilePerformanceChartConfigurerWizard\n v-if=\"configuringPerformanceGraph\"\n :initial-step=\"performanceGraphWizardStep\"\n @updated=\"performanceGraphUpdated\"\n @close=\"configuringPerformanceGraph = false\" />\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { type Ref, ref } from \"vue\";\nimport i18n from \"@/i18n\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport MyProfileNavigation from \"@/views/app/my-profile/components/shared/MyProfileNavigation.vue\";\nimport ProfilePerformanceExample from \"@/views/app/my-profile/components/overview/ProfilePerformanceExample.vue\";\nimport ProfileLinks from \"@/views/app/my-profile/components/overview/ProfileLinks.vue\";\nimport ProfileSteps from \"@/views/app/my-profile/components/overview/ProfileSteps.vue\";\nimport ProfilePerformanceChartConfigurerWizard from \"@/views/app/my-profile/components/overview/performance-chart-configurer/ProfilePerformanceChartConfigurerWizard.vue\";\nimport AppModal from \"@/components/modal/AppModal.vue\";\nimport useModal from \"@/components/modal/useModal\";\nimport router from \"@/router/router\";\n\nconst { openComponentModal } = useModal();\n\nconst performanceExamplePanelName = \"performanceExample\";\nconst performanceGraphWizardStep: Ref<number> = ref(1);\nconst configuringPerformanceGraph: Ref<boolean> = ref(false);\n\nconst showExample = (): void => {\n openComponentModal(performanceExamplePanelName, {\n title: i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.title\"),\n variant: \"floating\",\n showCancelToClose: false,\n confirmText: i18n.global.t(\"pages-my-profile.profile_updating.performance_graph.example.close\"),\n confirmCallback: () => true,\n });\n};\nconst showPerformanceGraphWizard = (step: number): void => {\n performanceGraphWizardStep.value = step;\n configuringPerformanceGraph.value = true;\n};\nconst performanceGraphUpdated = async () => {\n configuringPerformanceGraph.value = false;\n await router.push({ name: \"my-profile-dashboard\" });\n};\n</script>\n","export default \"__VITE_ASSET__bafdf6f5__\"","<template>\n <hr class=\"app-separator\" />\n</template>\n\n<style lang=\"scss\" scoped>\n.app-separator {\n border-width: 1px 0 0;\n border-top-color: var(--color-divider);\n width: 100%;\n}\n</style>\n","<template>\n <div data-cy=\"app-tag\" class=\"app-tag\" :class=\"tagClasses\">\n <span class=\"main-text text\" :class=\"mainTextClasses\" :title=\"title\">{{ mainText }}</span>\n <span v-if=\"secondaryText\" class=\"text--secondary text\">{{ secondaryText }}</span>\n <span v-if=\"icon\" class=\"icon\" :class=\"`icon-${icon}`\"></span>\n <span v-if=\"deletable\" class=\"close-button icon-close margin-l--xxs\" data-cy=\"remove-tag\" @click=\"deleteTag\"></span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { CourseType } from \"@/models/course\";\nimport { computed } from \"vue\";\n\ntype TagTrainingType = CourseType | \"access-mode\";\n\ninterface Props {\n mainText: string;\n secondaryText?: string;\n icon?: string;\n type: \"presence\" | \"skill\" | \"text\" | \"value\" | \"status\" | \"danger\" | \"training\" | \"like\" | \"employee\" | \"accordion\";\n title?: string;\n limitedSize?: boolean;\n trainingType?: TagTrainingType;\n statusType?: \"neutral\" | \"success\";\n deletable?: boolean;\n accessModeInline?: boolean;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"delete-tag\", tagName: string) => void>();\n\nconst tagClasses = computed(() => ({\n [`app-tag--${props.type}`]: true,\n [`app-tag--${props.type}-${props.trainingType}`]: props.type === \"training\" && props.trainingType,\n [`app-tag--${props.type}-${props.statusType ?? \"neutral\"}`]: props.type === \"status\",\n [`app-tag--${props.type}-${props.trainingType}-inline`]: props.trainingType === \"access-mode\" && props.accessModeInline,\n}));\nconst mainTextClasses = computed(() => ({\n \"text--ellipsis\": props.limitedSize,\n [`main-text--${props.type}`]: true,\n [`main-text--${props.trainingType}`]: props.type === \"training\" && props.trainingType,\n [`main-text--${props.type}-${props.statusType ?? \"neutral\"}`]: props.type === \"status\",\n}));\n\nconst deleteTag = (): void => emit(\"delete-tag\", props.mainText);\n</script>\n\n<style scoped lang=\"scss\">\n.app-tag {\n display: inline-flex;\n flex-direction: row;\n gap: 4px;\n align-items: center;\n justify-content: center;\n padding: 7px 12px;\n border-radius: var(--size-s);\n\n &--presence {\n min-height: var(--size-m);\n padding: var(--space-xs) var(--space-s);\n background-color: var(--color-tags-presence-background-primary);\n }\n\n &--like {\n height: var(--size-m);\n padding: var(--space-xxs) var(--space-xs);\n background-color: var(--color-tags-presence-background-primary);\n flex-direction: row-reverse;\n }\n\n &--value {\n background-color: var(--color-tags-value-background-primary);\n }\n\n &--skill {\n background-color: var(--color-tags-skills-background-primary);\n }\n\n &--status-neutral {\n background-color: var(--color-tags-status-background-primary);\n }\n &--status-success {\n background-color: var(--color-system-success);\n padding-top: 1.4rem;\n padding-bottom: 1.4rem;\n }\n\n &--danger {\n padding: 3px 12px;\n background-color: var(--color-tags-danger-background-primary);\n }\n\n &--text {\n padding: 3px 12px;\n background-color: var(--color-tags-text-background-primary);\n }\n\n &--employee {\n padding: calc(var(--space-xs) / 2) var(--space-xs);\n background-color: var(--color-tags-text-background-primary);\n }\n\n &--accordion {\n background-color: var(--color-tags-presence-background-primary);\n padding: 5px 8px;\n }\n\n &--training {\n height: var(--size-m);\n padding: var(--space-xs);\n\n &-access-mode {\n height: var(--size-l);\n border-radius: 3px;\n background-color: var(--color-neutral-100);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);\n &-inline {\n height: var(--size-m);\n border: 1px solid var(--color-border);\n border-radius: var(--size-s);\n box-shadow: none;\n }\n }\n &-CourseCoursera {\n background-color: var(--color-tags-training-coursera-background-primary);\n }\n &-CourseEdX,\n &-CourseIntefi {\n background-color: var(--color-tags-training-edx-background-primary);\n }\n &-CourseCompany,\n &-CourseLinkedInLearning {\n background-color: var(--color-tags-training-linkedin-background-primary);\n }\n }\n}\n.main-text {\n font-weight: var(--font-bold);\n &--presence {\n font-size: 1.4rem;\n line-height: 1.9rem;\n color: var(--color-tags-presence-primary);\n }\n &--value {\n font-size: 1.4rem;\n line-height: 1.9rem;\n color: var(--color-tags-value-primary);\n }\n &--skill {\n font-size: 1.4rem;\n line-height: 1.9rem;\n color: var(--color-tags-skills-primary);\n }\n &--status {\n font-size: 1.4rem;\n line-height: 1.9rem;\n\n &-neutral {\n color: var(--color-tags-status-primary);\n }\n &-success {\n color: var(--color-neutral-100);\n }\n }\n &--danger {\n font-size: 1.1rem;\n line-height: 1.9rem;\n font-weight: var(--font-normal);\n color: var(--color-tags-danger-primary);\n }\n &--text {\n font-size: 1.1rem;\n line-height: 1.4rem;\n font-weight: var(--font-normal);\n color: var(--color-tags-text-primary);\n }\n &--employee {\n font-size: 1.2rem;\n line-height: 1.4rem;\n font-weight: var(--font-bold);\n color: var(--color-tags-text-primary);\n }\n &--like {\n font-size: 1.1rem;\n line-height: 1.4rem;\n font-weight: var(--font-normal);\n color: var(--color-tags-text-primary);\n }\n &--training {\n font-size: 1rem;\n line-height: 1.3rem;\n }\n &--access-mode {\n text-transform: uppercase;\n }\n &--accordion {\n font-size: 1.2rem;\n line-height: 1.4rem;\n color: var(--color-tags-skills-primary);\n }\n}\n.icon {\n font-size: 1rem;\n}\n.close-button {\n cursor: pointer;\n}\n</style>\n","<template>\n <AppTag :main-text=\"text\" type=\"presence\" />\n</template>\n<script lang=\"ts\" setup>\nimport AppTag from \"@/components/AppTag.vue\";\nimport i18n from \"@/i18n\";\nimport { computed } from \"vue\";\n\ninterface Props {\n text?: string;\n}\nconst props = defineProps<Props>();\n\nconst text = computed(() => props.text ?? i18n.global.t(\"shared.app_tag.no_content_yet\"));\n</script>\n","<template>\n <div class=\"card\" :class=\"{ 'card--elegant': elegant }\">\n <span class=\"card__title text--bold text\" :class=\"classes\" :title=\"title\"> {{ title }}</span>\n <div v-if=\"subtitle\" class=\"card__subtitle text text--secondary\">{{ subtitle }}</div>\n <AppSeparator class=\"margin-v--s\" />\n <div class=\"card__content\" :class=\"{ 'card__content--center': centerContent }\">\n <slot>\n <NoContentYet data-cy=\"app-card-no-content\" />\n </slot>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport AppSeparator from \"@/components/AppSeparator.vue\";\nimport NoContentYet from \"@/components/AppNoContentYet.vue\";\nimport { computed } from \"vue\";\n\ninterface Props {\n title: string;\n subtitle?: string;\n centerContent?: boolean;\n oneLineTitle?: boolean;\n elegant?: boolean;\n spaceForIcon?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), { centerContent: false });\n\nconst classes = computed(() => ({\n \"text--ellipsis\": props.oneLineTitle,\n \"card__title--space-for-icon\": props.spaceForIcon,\n}));\n</script>\n<style lang=\"scss\" scoped>\n.card {\n display: flex;\n flex-direction: column;\n padding-bottom: var(--space-s);\n background-color: #ffffff;\n\n &--elegant {\n border-radius: var(--default-border-radius);\n box-shadow: 0 8px 24px rgba(26, 26, 26, 0.04);\n }\n\n &__title {\n padding: 0 var(--space-s);\n padding-top: var(--space-s);\n color: var(--color-primary-accent1);\n\n &--space-for-icon {\n max-width: 95%;\n }\n }\n\n &__subtitle {\n padding: 0 var(--space-m);\n padding-top: var(--space-xs);\n color: var(--color-body-tertiary);\n }\n\n &__content {\n display: flex;\n flex: 1;\n justify-content: center;\n }\n &__content--center {\n align-items: center;\n }\n}\n</style>\n","export enum EducationMode {\n Online = \"Online\",\n Presence = \"Presence\",\n}\n","import type { Education } from \"@/models/education\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\nimport type { Ref } from \"vue\";\n\nconst BASE_URL = \"/api/me/education\";\nconst { get, put, post, httpDelete, loading } = useHttpClient();\n\ninterface UseMeEducationServiceReturn {\n getEducations: (offset: number) => Promise<Education[]>;\n createEducation: (education: Education) => Promise<Education>;\n updateEducation: (education: Education) => Promise<Education>;\n deleteEducation: (educationId: number) => Promise<void>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseMeEducationServiceReturn => {\n const getEducations = (offset: number): Promise<Education[]> => get(`${BASE_URL}?offset=${offset}`);\n const createEducation = (education: Education): Promise<Education> => post(BASE_URL, education);\n const updateEducation = (education: Education): Promise<Education> => put(`${BASE_URL}/${education.id}`, education);\n const deleteEducation = (educationId: number): Promise<void> => httpDelete(`${BASE_URL}/${educationId}`);\n\n return { getEducations, createEducation, updateEducation, deleteEducation, loading };\n};\n","<template>\n <AppCard :title=\"$t('pages.my_profile.dashboards.certificates_courses.label')\">\n <div v-if=\"educations.length > 0\" class=\"container\">\n <div v-for=\"education in educations\" :key=\"education.id\" data-cy=\"certificate-and-courses-list\">\n <div class=\"learning\">\n <div class=\"learning__icon icon\" :class=\"getIconClass(education)\"></div>\n <div class=\"text text--bold learning__title\">{{ education.title }}</div>\n <AppTag :main-text=\"getTagText(education)\" type=\"presence\" />\n </div>\n <AppSeparator class=\"margin-v--s\" />\n </div>\n </div>\n </AppCard>\n</template>\n<script lang=\"ts\" setup>\nimport AppCard from \"@/components/AppCard.vue\";\nimport AppSeparator from \"@/components/AppSeparator.vue\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport i18n from \"@/i18n\";\nimport type { Education } from \"@/models/education\";\nimport { EducationMode } from \"@/models/educationMode\";\nimport useMeEducationService from \"@/services/useMeEducationService\";\nimport { onMounted, ref, type Ref } from \"vue\";\n\nconst { getEducations } = useMeEducationService();\nconst educations: Ref<Education[]> = ref<Education[]>([]);\n\nconst getIconClass = (education: Education) => ({\n \"icon-verified\": education.mode === EducationMode.Online,\n \"icon-learning\": education.mode === EducationMode.Presence,\n});\n\nconst getTagText = (education: Education): string =>\n i18n.global.t(`pages.my_profile.dashboards.certificates_courses.type_learning.${education.mode.toLocaleLowerCase()}.label`);\n\nonMounted(async () => {\n await retrieveEducations();\n});\n\nconst retrieveEducations = async (): Promise<void> => {\n educations.value = await getEducations(5);\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.container {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.learning {\n display: grid;\n grid-template-columns: auto 1fr auto;\n padding: 0 var(--space-m);\n gap: 1rem;\n\n &__icon {\n font-size: var(--size-m);\n color: var(--color-body-tertiary);\n }\n\n &__title {\n flex-grow: 1;\n }\n}\n</style>\n","<template>\n <div class=\"table-pagination\">\n <span class=\"text--s\"> {{ $t(\"shared.table.rows_per_page\") }}</span>\n <select\n v-model=\"selectedPageSize\"\n class=\"table-pagination__page-size-select\"\n data-cy=\"pagination-pageSize-selector\"\n @change=\"pageSizeChanged\">\n <option v-for=\"option in options\" :key=\"option.value\" :value=\"option.value\">{{ option.text }}</option>\n </select>\n <span class=\"text--s\">{{ ` ${firstItemShownNumber} - ${lastItemShownNumber} of ${modelValue.totalElements}` }}</span>\n <AppIconOnlyButton\n icon=\"back\"\n size=\"m\"\n :title=\"$t('shared.table.go_to_first_page')\"\n :disabled=\"modelValue.totalElements === 0 || modelValue.currentPage === 1\"\n data-cy=\"pagination-go-to-first\"\n @click=\"goToFirstPage\" />\n <AppIconOnlyButton\n icon=\"arrow-back\"\n size=\"m\"\n :title=\"$t('shared.table.go_to_previous_page')\"\n :disabled=\"modelValue.totalElements === 0 || modelValue.currentPage === 1\"\n data-cy=\"pagination-go-to-prev\"\n @click=\"goToPreviousPage\" />\n <AppIconOnlyButton\n icon=\"arrow-forward\"\n size=\"m\"\n :title=\"$t('shared.table.go_to_next_page')\"\n :disabled=\"modelValue.totalElements === 0 || modelValue.currentPage === lastPage\"\n data-cy=\"pagination-go-to-next\"\n @click=\"goToPNextPage\" />\n <AppIconOnlyButton\n icon=\"forward\"\n size=\"m\"\n :title=\"$t('shared.table.go_to_last_page')\"\n :disabled=\"modelValue.totalElements === 0 || modelValue.currentPage === lastPage\"\n data-cy=\"pagination-go-to-last\"\n @click=\"goToLastPage\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref } from \"vue\";\nimport AppIconOnlyButton from \"@/components/AppIconOnlyButton.vue\";\nimport type { PaginationProperties } from \"@/components/table/PaginationProperties\";\n\ninterface Props {\n modelValue: PaginationProperties;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"update:modelValue\", modelValue: PaginationProperties) => void>();\n\nconst selectedPageSize = ref<number>(props.modelValue.pageSize);\nconst options = [\n { value: 5, text: 5 },\n { value: 10, text: 10 },\n { value: 50, text: 50 },\n { value: 100, text: 100 },\n];\n\nconst firstItemShownNumber = computed<number>(() => {\n if (!props.modelValue.totalElements) {\n return 0;\n }\n return props.modelValue.currentPage === 1 ? 1 : (props.modelValue.currentPage - 1) * props.modelValue.pageSize + 1;\n});\nconst lastItemShownNumber = computed<number>(() =>\n Math.min(props.modelValue.currentPage * props.modelValue.pageSize, props.modelValue.totalElements)\n);\n\nconst lastPage = computed<number>(() => Math.ceil(props.modelValue.totalElements / props.modelValue.pageSize) || 0);\n\nconst goToFirstPage = () => changeCurrentPage(1);\nconst goToPreviousPage = () => changeCurrentPage(props.modelValue.currentPage - 1);\nconst goToPNextPage = () => changeCurrentPage(props.modelValue.currentPage + 1);\nconst goToLastPage = () => changeCurrentPage(lastPage.value);\nconst pageSizeChanged = (): void => {\n emit(\"update:modelValue\", { ...props.modelValue, pageSize: selectedPageSize.value });\n};\nconst changeCurrentPage = (newCurrentPage: number) => emit(\"update:modelValue\", { ...props.modelValue, currentPage: newCurrentPage });\n</script>\n\n<style scoped lang=\"scss\">\n.table-pagination {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n gap: var(--space-s);\n padding: var(--space-s) var(--space-m);\n color: var(--color-neutral-500);\n\n &__page-size-select {\n border: none;\n background-color: var(--color-checkbox-background);\n\n &:focus {\n border: none;\n }\n }\n}\n</style>\n","<template>\n <label class=\"app-input-radio\">\n <input type=\"radio\" class=\"app-input-radio__check\" :checked=\"checked\" :name=\"name\" @click=\"click\" />\n <span class=\"app-input-radio__text text\" :title=\"text\">{{ text }}</span>\n </label>\n</template>\n\n<script setup lang=\"ts\">\ninterface Props {\n value: number | string;\n checked: boolean;\n text: string;\n name: string;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"click\", value: number | string) => void>();\n\nconst click = () => emit(\"click\", props.value);\n</script>\n\n<style scoped lang=\"scss\">\n.app-input-radio {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--size-xs);\n\n &__check {\n margin: 0 var(--space-xxs);\n }\n\n &__text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n }\n}\n</style>\n","<template>\n <div class=\"app-radio-button-list\" :class=\"{ 'app-radio-button-list--row': inRow, 'app-radio-button-list--no-gap': noGap }\">\n <AppRadioButton\n v-for=\"option in options\"\n :key=\"option.optionId\"\n :checked=\"option.optionId === modelValue?.optionId\"\n :value=\"option.optionId\"\n :text=\"option.title\"\n :class=\"{ 'margin-b--xs': !inRow }\"\n :name=\"componentId\"\n :data-cy=\"`${'radio_' + option.optionId}`\"\n @click=\"click\" />\n <AppInputError v-if=\"error\" :error=\"error\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AppRadioButton from \"@/components/AppRadioButton.vue\";\nimport { getRandomId } from \"@/utils/randomUtils\";\nimport AppInputError from \"@/components/AppInputError.vue\";\n\nexport interface RadioButtonOption {\n optionId: number;\n title: string;\n}\n\ninterface Props {\n modelValue?: RadioButtonOption;\n options?: RadioButtonOption[];\n error?: string;\n inRow?: boolean;\n noGap?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), {\n options: () => [],\n});\n\nconst emit = defineEmits<(e: \"update:modelValue\", option: RadioButtonOption | undefined) => void>();\n\nconst componentId: string = getRandomId();\n\nconst click = (value: number | string): void => {\n const selected = props.options.find((o) => o.optionId === value);\n emit(\"update:modelValue\", selected);\n};\n</script>\n\n<style scoped lang=\"scss\">\n.app-radio-button-list {\n display: flex;\n flex-direction: column;\n gap: var(--size-m);\n flex-wrap: wrap;\n &--row {\n flex-direction: row;\n }\n &--no-gap {\n gap: unset;\n }\n}\n</style>\n","<template>\n <div class=\"table-filter\">\n <span v-if=\"showTitle\" class=\"text text--bold table-filter__title\">{{ filter.title }}</span>\n <AppRadioButtonList\n v-model=\"optionSelected\"\n :options=\"options\"\n :in-row=\"true\"\n data-cy=\"filter-options\"\n @update:model-value=\"changeSelected\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, onMounted, ref } from \"vue\";\nimport AppRadioButtonList, { type RadioButtonOption } from \"@/components/AppRadioButtonList.vue\";\nimport type { Filter } from \"@/components/table/TableFilter\";\n\ninterface Props {\n filter: Filter;\n showTitle?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), { showTitle: true });\n\nconst emit = defineEmits<(e: \"changed\", newValue: string) => void>();\n\nconst optionSelected = ref<RadioButtonOption | undefined>();\n\nconst setOptionSelected = () => {\n const optionIndex = props.filter.filterOptions.findIndex((o) => o.value === props.filter.selectedOption);\n optionSelected.value = {\n optionId: optionIndex,\n title: props.filter.filterOptions[optionIndex].label,\n };\n};\nconst options = computed<RadioButtonOption[]>(() =>\n props.filter.filterOptions.map((option, index) => ({ optionId: index, title: option.label }))\n);\n\nconst changeSelected = (option?: RadioButtonOption): void => {\n const newValue: string = props.filter.filterOptions[option?.optionId as number].value;\n emit(\"changed\", newValue);\n};\n\nonMounted(setOptionSelected);\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n.table-filter {\n display: grid;\n grid-auto-flow: column;\n column-gap: 1.2rem;\n width: auto;\n place-items: center;\n @media only screen and (max-width: $medium-screen-breakpoint) {\n display: block;\n }\n}\n</style>\n","<template>\n <div class=\"table-filters\">\n <AppTableFilter\n v-for=\"(filter, index) in modelValue\"\n :key=\"filter.fieldName\"\n :filter=\"filter\"\n :show-title=\"modelValue.length > 1\"\n @changed=\"(newValue) => changed(index, newValue)\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport type { Filter } from \"@/components/table/TableFilter\";\nimport AppTableFilter from \"@/components/table/AppTableFilter.vue\";\n\ninterface Props {\n modelValue: Filter[];\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"update:modelValue\", filters: Filter[]) => void>();\n\nconst changed = (ixFilter: number, newValue: string): void => {\n const filters = [...props.modelValue];\n filters[ixFilter].selectedOption = newValue;\n emit(\"update:modelValue\", filters);\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.table-filters {\n display: flex;\n flex-wrap: wrap;\n column-gap: 3rem;\n row-gap: 1.5rem;\n align-items: center;\n padding: var(--space-s) 0;\n}\n</style>\n","<template>\n <div class=\"table__header\">\n <AppCheckbox v-if=\"allowSelect\" v-model=\"selectedAll\" @change=\"selectAllChangeHandle\" />\n <span v-if=\"hasDetail\"></span>\n <div\n v-for=\"column in columns\"\n :key=\"column.id\"\n class=\"text text--bold\"\n :class=\"generateHeaderClasses(column)\"\n :data-cy=\"`app-table-column-header-${String(column.fieldName || column.id)}`\"\n @click=\"orderBy(column)\">\n {{ column.headerText }}\n <span v-if=\"isColumnSorted(column)\" class=\"icon\" :class=\"`icon-arrow-${columnOrderSuffixClass}`\"></span>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from \"vue\";\nimport AppCheckbox from \"@/components/AppCheckbox.vue\";\nimport type { Column } from \"@/components/table/Column\";\nimport type { Order } from \"@/components/table/Order\";\n\ninterface Props {\n columns: Column[];\n order: Order;\n allowSelect?: boolean;\n userSelectionChanged: number;\n hasDetail: boolean;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"sort\", column: Column): void;\n (e: \"selectAllChanged\", newSelectValue: boolean): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst selectedAll = ref<boolean>(false);\nconst columnOrderSuffixClass = computed<string>(() => (props.order.direction === \"asc\" ? \"upward\" : \"downward\"));\n\nconst generateHeaderClasses = (column: Column): string[] => [\n column.sortable ? \"table__header-item\" : \"\",\n `table__header-item--${column.align}`,\n];\n\nwatch(\n () => props.userSelectionChanged,\n () => (selectedAll.value = false)\n);\n\nconst isColumnSorted = (column: Column): boolean => props.order.id === column.id;\nconst orderBy = (column: Column): void => emit(\"sort\", column);\nconst selectAllChangeHandle = (): void => emit(\"selectAllChanged\", selectedAll.value);\n</script>\n<style lang=\"scss\" scoped>\n.table {\n &__header {\n border-bottom: var(--space-xxs) solid var(--color-border);\n &-item {\n color: var(--color-neutral-500);\n cursor: pointer;\n\n &:hover {\n filter: brightness(50%);\n }\n\n &--left {\n text-align: left;\n }\n\n &--right {\n text-align: right;\n padding-right: var(--space-m);\n }\n }\n }\n}\n</style>\n","import type { Column } from \"@/components/table/Column\";\nimport type { TableItem } from \"@/components/table/TableItem\";\nimport { formatNumber } from \"@/utils/numberUtils\";\n\nexport const columnValueExtractor = (column: Column, item: TableItem): string => {\n if (column.formatter) {\n return column.formatter(item);\n }\n if (!column.fieldName) {\n return \"\";\n }\n const value = item[column.fieldName as keyof typeof item] as unknown;\n if (value instanceof Number || typeof value === \"number\") {\n return formatNumber(Number(value));\n }\n if (value instanceof Date) {\n return value.toLocaleDateString();\n }\n return value as string;\n};\n","<template>\n <span data-cy=\"table-cell-text\" class=\"text\" :class=\"textClass\" :title=\"value\">{{ value }}</span>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { Column } from \"@/components/table/Column\";\nimport type { TableItem } from \"@/components/table/TableItem\";\nimport { columnValueExtractor } from \"@/components/table/ColumnValueExtractor\";\n\ninterface Props {\n column: Column;\n item: TableItem;\n}\nconst props = defineProps<Props>();\n\nconst value = computed<string>(() => columnValueExtractor(props.column, props.item));\nconst textClass = computed<string>(() => (props.column.type === \"long-text\" ? \"text--line-clamp-3\" : \"text--ellipsis\"));\n</script>\n","<template>\n <div class=\"table_column_actions\" :class=\"calculatedClass\">\n <AppIconOnlyButton\n v-for=\"action in visibleActions\"\n :key=\"`${item.id}-${column.id}-${action.name}`\"\n :icon=\"action.icon\"\n size=\"xl\"\n :title=\"(action.customTitle ? action.customTitle(item) : action.title) ?? action.title\"\n :class=\"(action.customClass ? action.customClass(item) : action.class) ?? action.class\"\n :disabled=\"action.disabled && action.disabled(item)\"\n @click=\"action.callback(item)\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport AppIconOnlyButton from \"@/components/AppIconOnlyButton.vue\";\nimport type { Column } from \"@/components/table/Column\";\nimport type { TableItem } from \"@/components/table/TableItem\";\nimport { computed } from \"vue\";\n\ninterface Props {\n column: Column;\n item: TableItem;\n}\nconst props = defineProps<Props>();\n\nconst visibleActions = computed(() => props.column.actions?.filter((a) => !a.condition || a.condition(props.item)));\nconst calculatedClass = `table_column_actions--${props.column.actionsAlignment ?? \"end\"}`;\n</script>\n\n<style lang=\"scss\" scoped>\n.table_column_actions {\n display: flex;\n flex-direction: row;\n width: 100%;\n\n &--start {\n justify-content: start;\n }\n &--end {\n justify-content: end;\n }\n\n & > * {\n padding: 0 calc(var(--space-xs) / 2);\n }\n}\n</style>\n","<template>\n <AppSelect\n :model-value=\"value\"\n :disabled=\"column.select?.disabled && column.select?.disabled(item)\"\n :items=\"column.select?.options ?? []\"\n :keep-margin=\"false\"\n :inline=\"true\"\n @update:model-value=\"handleChange\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref } from \"vue\";\nimport type { Column } from \"@/components/table/Column\";\nimport type { TableItem } from \"@/components/table/TableItem\";\nimport AppSelect from \"@/components/AppSelect.vue\";\n\ninterface Props {\n column: Column;\n modelValue: TableItem;\n}\nconst props = defineProps<Props>();\nconst value = computed<string>(() => {\n const fieldName = props.column.fieldName as keyof typeof item.value;\n const itemValue = item.value[fieldName];\n return itemValue ? itemValue.toString() : \"\";\n});\nconst handleChange = async (newValue: string) => {\n const fieldName = props.column.fieldName as keyof typeof item.value;\n (item.value as unknown as { [name: string]: string })[fieldName] = newValue;\n await props.column.select?.onUpdate(item.value);\n};\n\nconst item = ref<TableItem>(props.modelValue);\n</script>\n","<template>\n <Component :is=\"column.customRenderer\" v-if=\"column.customRenderer\" :item=\"item\" :custom-props=\"column.customProperties\" />\n <AppTableColumnText v-else-if=\"isTextColumn\" :item=\"item\" :column=\"column\" />\n <AppTableColumnAction v-else-if=\"column.type === 'actions'\" :column=\"column\" :item=\"item\" />\n <AppTableColumnSelect v-else-if=\"isSelectColumn\" :column=\"column\" :model-value=\"item\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport AppTableColumnText from \"@/components/table/AppTableColumnText.vue\";\nimport AppTableColumnAction from \"@/components/table/AppTableColumnAction.vue\";\nimport AppTableColumnSelect from \"@/components/table/AppTableColumnSelect.vue\";\nimport type { Column } from \"@/components/table/Column\";\nimport type { TableItem } from \"@/components/table/TableItem\";\n\ninterface Props {\n column: Column;\n item: TableItem;\n}\nconst props = defineProps<Props>();\n\nconst isTextColumn = computed(() => props.column.type === \"long-text\" || props.column.type === \"text-with-ellipsis\");\nconst isSelectColumn = computed(\n () => props.column.type === \"select\" && props.column.select && props.column.select.options && props.column.select.options.length > 0\n);\n</script>\n","<template>\n <div class=\"table__row\" data-cy=\"app-table-row\">\n <AppCheckbox\n v-if=\"allowSelect\"\n :model-value=\"(item as TableItemSelectable).selected\"\n data-cy=\"app-table-checkbox\"\n @change=\"toggleSelect\" />\n <AppIconOnlyButton\n v-if=\"allowExpand\"\n icon=\"chevron-down\"\n class=\"table__row__expander\"\n :class=\"{ 'table__row__expander--expanded': expanded }\"\n title=\"Detail\"\n @click=\"toggleExpand\" />\n <AppTableCell\n v-for=\"column in columns\"\n :key=\"column.id\"\n :column=\"column\"\n :item=\"item\"\n :class=\"{ 'table__cell--right': column.align === 'right', 'table__cell--center': column.align === 'center' }\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport AppTableCell from \"@/components/table/AppTableCell.vue\";\nimport AppCheckbox from \"@/components/AppCheckbox.vue\";\nimport AppIconOnlyButton from \"@/components/AppIconOnlyButton.vue\";\nimport type { Column } from \"@/components/table/Column\";\nimport type { TableItem, TableItemSelectable } from \"@/components/table/TableItem\";\n\ninterface Props {\n allowSelect?: boolean;\n columns: Column[];\n item: TableItem;\n allowExpand: boolean;\n expanded?: boolean;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"toggleSelectItem\", item: TableItemSelectable): void;\n (e: \"toggleExpandedItem\", item: TableItem): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst toggleExpand = () => emit(\"toggleExpandedItem\", props.item);\nconst toggleSelect = () => emit(\"toggleSelectItem\", props.item as TableItemSelectable);\n</script>\n\n<style lang=\"scss\" scoped>\n.table {\n &__row {\n &:hover {\n background-color: #ededed;\n }\n &__expander {\n rotate: 0deg;\n transition: rotate 0.3s ease-in-out;\n &--expanded {\n rotate: 180deg;\n }\n }\n }\n &__cell--right {\n justify-self: right;\n }\n &__cell--center {\n justify-self: center;\n }\n}\n</style>\n","// eslint-disable-next-line\nexport type Filter<T = any> = {\n title: string;\n fieldName: keyof T;\n filterOptions: FilterOption[];\n selectedOption: string;\n};\nexport type FilterOption = {\n label: string;\n value: string;\n};\n\nexport const SELECT_ALL = \"ALL\";\n","import type { Column, SelectOption } from \"@/components/table/Column\";\nimport type { Order } from \"@/components/table/Order\";\nimport type { TableItem } from \"@/components/table/TableItem\";\nimport { type Filter, SELECT_ALL, type FilterOption } from \"@/components/table/TableFilter\";\nimport type { PaginationProperties } from \"@/components/table/PaginationProperties\";\nimport { compareNumbers } from \"@/utils/numberUtils\";\nimport { compareDates } from \"@/utils/dateUtils\";\nimport { compareStrings, containsInsensitive, isBlank } from \"@/utils/stringUtils\";\nimport i18n from \"@/i18n\";\n\ninterface UseTableHelperResponse {\n filter: <T extends TableItem>(items: T[] | undefined, filters: Filter<T>[] | undefined) => T[];\n filterByText: <T extends TableItem>(source: T[], searchText: string | undefined, columns: Column<T>[]) => T[];\n paginate: (items: TableItem[], paginationProps: PaginationProperties) => TableItem[];\n sort: (order: Order, columns: Column<TableItem>[], items: TableItem[]) => TableItem[];\n getTypeFilter: <T extends TableItem>(fieldName: keyof T, title: string, i18Prefix: string, values: string[]) => Filter<T>;\n getSelectOptions: <Enum extends { [name: string]: string }>(E: Enum, translatePrefix: string) => SelectOption[];\n getSelectOption: <Enum extends { [name: string]: string }>(E: Enum, enumKey: keyof Enum, translatePrefix: string) => SelectOption;\n}\n\nexport default (): UseTableHelperResponse => ({ sort, filter, filterByText, paginate, getTypeFilter, getSelectOptions, getSelectOption });\n\nconst paginate = (source: TableItem[], paginationProps: PaginationProperties): TableItem[] => {\n if (!source) {\n return source;\n }\n const startIndex = paginationProps.currentPage === 1 ? 0 : paginationProps.pageSize * (paginationProps.currentPage - 1);\n const endIndex = paginationProps.currentPage === 1 ? paginationProps.pageSize : paginationProps.pageSize * paginationProps.currentPage;\n return source.slice(startIndex, endIndex);\n};\nconst filter = <T extends TableItem>(source: T[] | undefined, filters: Filter<T>[] | undefined): T[] => {\n if (!source) {\n return [];\n }\n if (!filters) {\n return source;\n }\n return filters.reduce((prev: T[], currentFilter: Filter<T>): T[] => {\n if (currentFilter.selectedOption === SELECT_ALL) {\n return prev;\n }\n return prev.filter((currentItem: T) => currentItem[currentFilter.fieldName] === currentFilter.selectedOption);\n }, source);\n};\nconst filterByText = <T extends TableItem>(source: T[], searchText: string | undefined, columns: Column<T>[]): T[] => {\n if (!searchText || isBlank(searchText)) {\n return source;\n }\n const searchableColumns: Column<T>[] = columns.filter((column) => column.searchable && (column.fieldName || column.formatter));\n return source.filter((item: T) => searchableColumns.some((column) => filterByField(column, item, searchText)));\n};\nconst filterByField = <T extends TableItem>(column: Column<T>, item: T, searchText: string): boolean => {\n const fieldValue: unknown = getValue(item, column);\n return !!fieldValue && containsInsensitive(fieldValue.toString(), searchText);\n};\nconst sort = (order: Order, columns: Column<TableItem>[], items: TableItem[]): TableItem[] => {\n if (!items) {\n return items;\n }\n const column = columns.find((col) => col.id === order.id);\n return [...items].sort((item1: TableItem, item2: TableItem) => {\n const comparatorResult = compareItems(item1, item2, column);\n return order.direction === \"asc\" ? comparatorResult : -comparatorResult;\n });\n};\nconst compareItems = (skill1: TableItem, skill2: TableItem, column?: Column<TableItem>): number => {\n const fieldValue1: unknown = getValue(skill1, column);\n const fieldValue2: unknown = getValue(skill2, column);\n if (fieldValue1 === fieldValue2) {\n return 0;\n }\n if (!fieldValue2) {\n return 1;\n }\n if (!fieldValue1) {\n return -1;\n }\n if (fieldValue1 instanceof Date && fieldValue2 instanceof Date) {\n return compareDates(fieldValue1, fieldValue2, true);\n }\n if (typeof fieldValue1 === \"number\" && typeof fieldValue2 === \"number\") {\n return compareNumbers(fieldValue1, fieldValue2, true);\n }\n return compareStrings(fieldValue1 as string, fieldValue2 as string, true);\n};\nconst getValue = <T extends TableItem>(item: T, column?: Column<T>): unknown => {\n if (!column) {\n return \"\";\n }\n if (column.formatter) {\n return column.formatter(item);\n }\n if (column.fieldName) {\n return item[column.fieldName];\n }\n return \"\";\n};\nconst getTypeFilter = <T extends TableItem>(fieldName: keyof T, title: string, i18Prefix: string, values: string[]): Filter<T> => {\n const typeFilters: FilterOption[] = values.map((type: string) => ({\n label: i18n.global.t(`${i18Prefix}.${type}`),\n value: type,\n }));\n\n const result: Filter<T> = {\n title: title,\n fieldName: fieldName,\n selectedOption: SELECT_ALL,\n filterOptions: [\n {\n label: i18n.global.t(`${i18Prefix}.all`),\n value: SELECT_ALL,\n },\n ...typeFilters,\n ],\n };\n return result;\n};\nconst getSelectOptions = <Enum extends { [name: string]: string }>(E: Enum, translatePrefix: string): SelectOption[] => {\n return Object.keys(E).map((key) => getSelectOption(E, key as keyof Enum, translatePrefix));\n};\nconst getSelectOption = <Enum extends { [name: string]: string }>(E: Enum, enumKey: keyof Enum, translatePrefix: string): SelectOption => {\n return {\n text: i18n.global.t(`${translatePrefix}.${enumKey as string}`),\n value: E[enumKey] as string,\n };\n};\n","<template>\n <div\n class=\"table\"\n :class=\"{ 'table--no-border': noBorder, 'table--full-width': fullWidth, 'table--stretch': stretch }\"\n data-cy=\"app-table\">\n <div v-if=\"internalFilters?.length\" class=\"padding-l--s\">\n <AppTableFilters v-model=\"internalFilters\" />\n </div>\n <AppTableHeader\n v-if=\"!hideHeader\"\n :columns=\"visibleColumns\"\n :allow-select=\"allowSelect\"\n :order=\"order\"\n :user-selection-changed=\"userSelectionChanged\"\n :has-detail=\"!!detailItemComponent\"\n @sort=\"orderBy\"\n @select-all-changed=\"selectedAllChanged\" />\n <div\n v-for=\"item in itemsInView\"\n :key=\"item.id\"\n :class=\"{ 'table__row-container--with-border': !noRowSeparator }\"\n data-cy=\"app-table-row-container\">\n <AppTableRow\n :allow-select=\"allowSelect\"\n :allow-expand=\"!!detailItemComponent\"\n :columns=\"visibleColumns\"\n :item=\"item\"\n :expanded=\"itemIsExpanded(item)\"\n @toggle-select-item=\"toggleSelectItem\"\n @toggle-expanded-item=\"toggleExpandedItem\" />\n <Component\n :is=\"detailItemComponent\"\n v-if=\"detailItemComponent && itemIsExpanded(item)\"\n :item=\"item\"\n :custom-props=\"detailItemComponentProps\"\n data-cy=\"table-row-detail\" />\n </div>\n <AppTablePagination v-if=\"items && props.paginated\" v-model=\"paginationProps\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, watch, type Component } from \"vue\";\nimport AppTablePagination from \"@/components/table/AppTablePagination.vue\";\nimport AppTableFilters from \"@/components/table/AppTableFilters.vue\";\nimport AppTableHeader from \"@/components/table/AppTableHeader.vue\";\nimport AppTableRow from \"@/components/table/AppTableRow.vue\";\nimport type { Column } from \"@/components/table/Column\";\nimport type { Order } from \"@/components/table/Order\";\nimport type { TableItem, TableItemSelectable } from \"@/components/table/TableItem\";\nimport type { PaginationProperties } from \"@/components/table/PaginationProperties\";\nimport type { Filter } from \"@/components/table/TableFilter\";\nimport useTableHelper from \"@/components/table/useTableHelper\";\n\nconst { filter, paginate, sort } = useTableHelper();\n\ninterface Props {\n columns: Column[];\n items?: TableItem[];\n defaultOrder?: Order;\n paginated?: boolean;\n filters?: Filter[];\n allowSelect?: boolean;\n selectColumnWidth?: string;\n noBorder?: boolean;\n noRowSeparator?: boolean;\n hideHeader?: boolean;\n detailItemComponent?: Component;\n detailItemComponentProps?: unknown;\n fullWidth?: boolean;\n stretch?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), { selectColumnWidth: \"5rem\" });\n\ninterface Emits {\n (e: \"sort\", order: Order): void;\n (e: \"hasAnyItemSelected\", response: boolean): void;\n (e: \"selectItem\", item: TableItemSelectable): void;\n (e: \"selectAll\", selected: boolean): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst order = ref<Order>(props.defaultOrder ?? { direction: \"asc\", id: -1 });\nconst itemsExpanded = ref<Map<number, boolean>>(new Map<number, boolean>());\nconst itemIsExpanded = (item: TableItem) => !!itemsExpanded.value.get(item.id);\nconst toggleExpandedItem = (item: TableItem) => itemsExpanded.value.set(item.id, !itemIsExpanded(item));\n\nconst paginationProps = ref<PaginationProperties>({\n pageSize: 10,\n currentPage: 1,\n totalElements: props.items?.length ?? 0,\n});\n\nconst internalFilters = ref<Filter<TableItem>[] | undefined>(props.filters);\n\nconst filteredItems = computed<TableItem[]>(() => filter(props.items, internalFilters.value));\n\nconst itemsInView = computed<TableItem[]>(() => {\n const sortedItems = sort(order.value, props.columns, filteredItems.value);\n return props.paginated ? paginate(sortedItems, paginationProps.value) : sortedItems;\n});\n\nconst visibleColumns = computed(() => props.columns.filter((column) => !column.hidden));\nconst cssGridTemplateColumn = computed<string>(() =>\n [\n props.allowSelect ? props.selectColumnWidth : \"\",\n props.detailItemComponent ? \"2rem\" : \"\",\n ...visibleColumns.value.map((c) => c.cssWidth),\n ].join(\" \")\n);\nconst anySelected = computed<boolean>(() => !!props.items && props.items.some((item: TableItem) => (item as TableItemSelectable).selected));\nconst userSelectionChanged = ref<number>(0);\nconst toggleSelectItem = (item: TableItemSelectable): void => {\n item.selected = !item.selected;\n emit(\"selectItem\", item);\n userSelectionChanged.value = new Date().getTime();\n};\nconst selectedAllChanged = (selected: boolean): void => {\n if (!props.items) {\n return;\n }\n (props.items as TableItemSelectable[]).forEach((item) => (item.selected = selected));\n emit(\"selectAll\", selected);\n};\nconst orderBy = (column: Column): void => {\n if (!column.sortable) {\n return;\n }\n const direction = getNewOrderDirection(column);\n orderByColumn(column.id, direction);\n};\nconst getNewOrderDirection = (columnClicked: Column): \"asc\" | \"desc\" => {\n if (order.value.id !== columnClicked.id) {\n return \"asc\";\n }\n return order.value.direction === \"asc\" ? \"desc\" : \"asc\";\n};\nconst orderByColumn = (id: number, direction: \"asc\" | \"desc\"): void => {\n order.value = {\n direction: direction,\n id: id,\n };\n emit(\"sort\", {\n id: order.value.id,\n direction: order.value.direction,\n });\n};\n\nwatch(\n () => anySelected.value,\n () => emit(\"hasAnyItemSelected\", anySelected.value)\n);\nwatch(\n () => props.defaultOrder,\n () => {\n if (props.defaultOrder) {\n orderByColumn(props.defaultOrder.id, props.defaultOrder.direction);\n }\n }\n);\nwatch(filteredItems, (newValue: TableItem[]) => {\n userSelectionChanged.value = new Date().getTime();\n if (props.paginated) {\n paginationProps.value.currentPage = 1;\n paginationProps.value.totalElements = newValue ? newValue.length : 0;\n }\n});\nwatch(\n () => props.items,\n () => (userSelectionChanged.value = new Date().getTime())\n);\n</script>\n\n<style lang=\"scss\" scoped>\n.table {\n border-top: 1px solid var(--color-border);\n &__row-container {\n &--with-border {\n border-bottom: 1px solid var(--color-sidebar-menu--pressed);\n }\n }\n &__row,\n &__header {\n display: grid;\n grid-template-columns: v-bind(\"cssGridTemplateColumn\");\n column-gap: 1rem;\n padding: var(--space-xs) var(--space-xs) var(--space-xs) var(--space-s);\n overflow: hidden;\n min-height: var(--size-xxl);\n align-items: center;\n }\n\n &--no-border {\n border: none;\n }\n\n &--full-width {\n width: 100%;\n }\n\n &--stretch &__row,\n &--stretch &__header {\n padding-left: 1px;\n padding-right: 1px;\n }\n}\n</style>\n","import type { TableItem, TableItemSelectable } from \"@/components/table/TableItem\";\nimport type { QuestionSelectable } from \"@/models/question\";\n\nexport interface CompanyEmployeeGroupBase extends TableItemSelectable {\n id: number;\n name: string;\n description?: string;\n employeeCount: number;\n}\n\nexport interface CompanyEmployeeGroupInfo extends CompanyEmployeeGroupBase {\n courseCount: number;\n}\n\nexport interface CompanyEmployeeGroup extends CompanyEmployeeGroupBase {\n employeeIds: number[];\n}\n\nexport enum EmployeeGroupRole {\n Viewer = \"Viewer\",\n Manager = \"Manager\",\n}\n\nexport interface EmployeeGroupEmployee extends TableItem {\n id: number;\n firstName: string;\n lastName: string;\n email: string;\n employeeRole: EmployeeGroupRole;\n}\n\nexport interface EmployeeWithGroups extends TableItem {\n id: number;\n email: string;\n firstName: string;\n lastName: string;\n groups: EmployeeWithGroupsEmployee[];\n}\n\nexport interface EmployeeWithGroupsEmployee extends TableItem {\n id: number;\n employeeId: number;\n employeeRole: EmployeeGroupRole;\n companyEmployeeGroupId: number;\n groupName: string;\n}\n\nexport interface EmployeeGroupInEmployee extends TableItem {\n employeeRole: EmployeeGroupRole;\n companyEmployeeGroupId: number;\n groupName: string;\n}\n\nexport interface CompanyEmployeeGroupWithEmployees extends CompanyEmployeeGroupBase {\n employees: EmployeeGroupEmployee[];\n}\n\nexport interface EmployeeGroupQuestion extends TableItemSelectable {\n id: number;\n title: string;\n answeredPercentage: number;\n sendDate: string;\n}\n\nexport interface CompanyEmployeeGroupWithQuestions extends CompanyEmployeeGroupBase {\n questions: QuestionSelectable[];\n}\n","<template>\n <div v-if=\"groups.length > 0\" class=\"employee-groups\" data-cy=\"groups-of-employee\">\n <div class=\"employee-groups__title\">\n <span class=\"icon icon-group text--xxl\"></span>\n <span class=\"text text--l\">{{ $t(\"pages.my_profile.employee_groups.title\") }}</span>\n </div>\n <AppTable :columns=\"columns\" :items=\"groups\" :hide-header=\"true\" :stretch=\"true\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport i18n from \"@/i18n\";\nimport AppTable from \"@/components/table/AppTable.vue\";\nimport type { Column } from \"@/components/table/Column\";\nimport { EmployeeGroupRole, type EmployeeGroupInEmployee } from \"@/models/companyEmployeeGroup\";\nimport useTableHelper from \"@/components/table/useTableHelper\";\n\ninterface Props {\n groups: EmployeeGroupInEmployee[];\n}\ndefineProps<Props>();\n\nconst { getSelectOption } = useTableHelper();\n\nconst columns: Column<EmployeeGroupInEmployee>[] = [\n {\n id: 1,\n headerText: i18n.global.t(\"pages.admin.company_settings.employee_groups.fields.name\"),\n cssWidth: \"minmax(6rem, 1fr)\",\n align: \"left\",\n sortable: false,\n searchable: false,\n fieldName: \"groupName\",\n type: \"text-with-ellipsis\",\n },\n {\n id: 2,\n headerText: i18n.global.t(\"pages.admin.admin_roles.roles.grid.role\"),\n cssWidth: \"0.3fr\",\n align: \"right\",\n sortable: false,\n searchable: false,\n fieldName: \"employeeRole\",\n type: \"long-text\",\n formatter: (group: EmployeeGroupInEmployee) =>\n getSelectOption(EmployeeGroupRole, group.employeeRole, \"pages.admin.company_settings.employee_groups.role\").text,\n },\n];\n</script>\n<style scoped lang=\"scss\">\n.employee-groups {\n display: flex;\n gap: var(--space-xs);\n flex-direction: column;\n\n &__title {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--space-s);\n }\n}\n</style>\n","<template>\n <div class=\"summary\">\n <AppProfileSummaryInformation :profile-information=\"profileSummaryInformation\" size=\"l\" />\n <AppSeparator />\n <div class=\"summary__extra-information\">\n <ProfileExtraInformation\n :title=\"$t('pages.my_profile.previous_experiences.title')\"\n url=\"/app/my-current-job\"\n :content=\"currentJobExperiences\" />\n\n <ProfileExtraInformation :title=\"$t('pages.my_interests.title')\" url=\"/app/my-interests\" :content=\"currentInterests\" />\n </div>\n <GroupsOfEmployee :groups=\"profileInformation.groups\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AppSeparator from \"@/components/AppSeparator.vue\";\nimport ProfileExtraInformation from \"@/views/app/my-profile/components/dashboard/ProfileExtraInformation.vue\";\nimport AppProfileSummaryInformation from \"@/views/app/my-profile/components/shared/ProfileSummaryInformation.vue\";\nimport GroupsOfEmployee from \"@/views/shared/employee/components/GroupsOfEmployee.vue\";\nimport type { ProfileInformation } from \"@/models/profileInformation\";\nimport type { ProfileSummaryInformation } from \"@/models/profileSummaryInformation\";\n\ninterface Props {\n profileInformation: ProfileInformation;\n}\nconst props = defineProps<Props>();\n\nconst profileSummaryInformation: ProfileSummaryInformation = {\n employeeId: props.profileInformation.id,\n firstName: props.profileInformation.firstName,\n lastName: props.profileInformation.lastName,\n jobExperiences: props.profileInformation.jobExperiences.map((je) => je.title),\n currentJobExperience: props.profileInformation.currentJobExperience?.title,\n pictureName: props.profileInformation.pictureName,\n};\nconst currentJobExperiences: string = props.profileInformation.jobExperiences.map((je) => je.title).join(\"; \");\nconst currentInterests = props.profileInformation.interests.map((int) => int.title).join(\"; \");\n</script>\n\n<style scoped lang=\"scss\">\n.summary {\n display: flex;\n gap: var(--space-l);\n flex-direction: column;\n\n &__extra-information {\n display: flex;\n gap: var(--space-l);\n }\n}\n</style>\n","export const calculatePercent = (total: number, completed: number): number => {\n return Math.round((completed / total) * 100);\n};\n","export enum SkillProgression {\n Low = \"Low\",\n Medium = \"Medium\",\n High = \"High\",\n}\n","<template>\n <apexchart :options=\"chartOptions\" :series=\"series\" :width=\"width\" :height=\"height\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport { formatNumber } from \"@/utils/numberUtils\";\nimport { computed } from \"vue\";\nconst calculateOptions = (): { barWidth: string; startAngle: number; endAngle: number; fontSize: number } => {\n if (props.shape === \"half\") {\n return {\n barWidth: \"68%\",\n startAngle: -90,\n endAngle: 90,\n fontSize: 20,\n };\n }\n if (props.shape === \"fullMedium\") {\n return {\n barWidth: \"80%\",\n startAngle: 0,\n endAngle: 360,\n fontSize: 16,\n };\n }\n\n return {\n barWidth: \"85%\",\n startAngle: 0,\n endAngle: 360,\n fontSize: props.shape === \"full\" ? 30 : 14,\n };\n};\ninterface Props {\n percentage: number;\n label?: string;\n shape?: \"full\" | \"half\" | \"fullSmall\" | \"fullMedium\";\n width?: number;\n height?: number;\n color?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), { shape: \"full\", label: \"\", color: \"#1E9AC6\" });\n\nconst options = calculateOptions();\n\nconst series = computed(() => [props.percentage, 100 - props.percentage]);\n\nconst chartOptions = {\n chart: {\n type: \"donut\",\n selection: {\n enabled: false,\n },\n },\n states: {\n active: {\n filter: {\n type: \"none\",\n },\n },\n hover: {\n filter: {\n type: \"none\",\n },\n },\n normal: {\n filter: {\n type: \"none\",\n },\n },\n },\n colors: [props.color, \"rgba(26, 26, 26, .06)\"],\n plotOptions: {\n pie: {\n donut: {\n background: \"transparent\",\n size: options.barWidth,\n labels: {\n show: true,\n name: {\n show: true,\n offsetY: 25,\n },\n value: {\n show: true,\n offsetY: -12,\n fontSize: options.fontSize,\n fontFamily: \"Inter\",\n fontWeight: 700,\n },\n total: {\n show: true,\n showAlways: true,\n label: props.label,\n fontSize: options.fontSize / 2,\n color: \"#666666\",\n formatter: (w: { globals: { seriesTotals: [] } }): string => {\n const result = w.globals.seriesTotals.reduce((a: number, b: number, index: number) => (index === 0 ? a + b : a), 0);\n return `${formatNumber(result)} %`;\n },\n },\n },\n },\n startAngle: options.startAngle,\n endAngle: options.endAngle,\n expandOnClick: false,\n },\n },\n dataLabels: {\n enabled: false,\n },\n stroke: {\n show: false,\n },\n fill: {\n type: \"solid\",\n },\n legend: {\n show: false,\n },\n tooltip: {\n enabled: false,\n },\n responsive: [\n {\n breakpoint: 480,\n options: {\n chart: {\n width: 160,\n },\n },\n },\n ],\n};\n</script>\n","export enum SkillType {\n General = \"General\",\n Language = \"Language\",\n}\n\nexport enum SkillLocationType {\n Employee = \"Employee\",\n CurrentJob = \"CurrentJob\",\n IdealJob = \"IdealJob\",\n}\n","import type { Ref } from \"vue\";\nimport type { SkillType } from \"@/models/skillType\";\nimport type { SuccessFullSkills } from \"@/models/successFullSkills\";\nimport type { SkillUpdateRequest } from \"@/models/requests/skillUpdateRequest\";\nimport type { Skill } from \"@/models/skill\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\n\nconst BASE_URL = \"/api/me/skills\";\nconst { get, put, loading } = useHttpClient();\n\ninterface UseMeSkillsServiceReturn {\n getAvailableSkills: (skillType: SkillType) => Promise<Skill[]>;\n getSuccessfulSkills: () => Promise<SuccessFullSkills>;\n updateSkills: (skillUpdateRequest: SkillUpdateRequest) => Promise<void>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseMeSkillsServiceReturn => {\n const getAvailableSkills = (skillType: SkillType): Promise<Skill[]> => get(`${BASE_URL}/available/${skillType}`);\n const getSuccessfulSkills = (): Promise<SuccessFullSkills> => get(`${BASE_URL}/successful`);\n const updateSkills = (skillUpdateRequest: SkillUpdateRequest): Promise<void> => put(BASE_URL, skillUpdateRequest);\n\n return { getAvailableSkills, getSuccessfulSkills, updateSkills, loading };\n};\n","<template>\n <AppPercentageChartTwoLines v-if=\"kpiInfo\" :kpi-info=\"kpiInfo\" />\n</template>\n<script lang=\"ts\" setup>\nimport { onMounted, ref, type Ref } from \"vue\";\nimport { calculatePercent } from \"@/utils/mathUtils\";\nimport { SkillProgression } from \"@/models/skillProgression\";\nimport AppPercentageChartTwoLines from \"@/components/AppPercentageChartTwoLines.vue\";\nimport type { GenericKpiInfo } from \"@/models/genericKpiInfo\";\nimport i18n from \"@/i18n\";\nimport { SkillType } from \"@/models/skillType\";\nimport useMeSkillsService from \"@/services/useMeSkillsService\";\nconst { getSuccessfulSkills } = useMeSkillsService();\n\nconst kpiInfo: Ref<GenericKpiInfo | undefined> = ref<GenericKpiInfo | undefined>();\n\nonMounted(async () => retrieveSuccessfulSkills());\n\nconst progressionValue: Record<SkillProgression, number> = {\n Low: 1,\n Medium: 2,\n High: 3,\n};\n\nconst calculateUserTotalPoints = (skillProgressions: SkillProgression[]): number => {\n return skillProgressions.reduce((total, value) => total + progressionValue[value], 0);\n};\n\nconst retrieveSuccessfulSkills = async (): Promise<void> => {\n const result = await getSuccessfulSkills();\n const maxPointsLanguages = result.totalLanguagesSkills.length * Object.keys(SkillProgression).length;\n const maxPointsGeneral = result.totalGeneralSkills.length * Object.keys(SkillProgression).length;\n\n const userPointsLanguages = calculateUserTotalPoints(result.employeeLanguagesSkills.map((s) => s.progression));\n const userPointsGeneral = calculateUserTotalPoints(result.employeeGeneralSkills.map((s) => s.progression));\n\n const languagesPercentage = calculatePercent(maxPointsLanguages, userPointsLanguages);\n const generalPercentage = calculatePercent(maxPointsGeneral, userPointsGeneral);\n const totalPercentage = Math.round((languagesPercentage + generalPercentage) / Object.keys(SkillType).length);\n\n kpiInfo.value = {\n mainPercentage: totalPercentage,\n title: i18n.global.t(\"pages.my_profile.dashboards.successful_skills.title\"),\n percentages: [\n {\n id: 1,\n percentage: generalPercentage,\n title: i18n.global.t(\"pages.my_profile.dashboards.successful_skills.general\"),\n },\n {\n id: 2,\n percentage: languagesPercentage,\n title: i18n.global.t(\"pages.my_profile.dashboards.successful_skills.language\"),\n },\n ],\n };\n};\n</script>\n","<template>\n <LayoutPage :title=\"$t('pages.my_profile.title')\">\n <MyProfileNavigation current=\"Dashboard\" />\n <div v-if=\"!loading && profileInfo\" class=\"grid--two-columns@large\">\n <div class=\"summary\">\n <AppTip\n v-if=\"!hasPerformanceGraphConfigured\"\n :content=\"$t('pages-my_profile.dashboards.tips.introduction')\"\n unique-name=\"my-profile-dashboard-introduction\" />\n <ProfileSummary v-if=\"profileInfo\" class=\"summary__profile\" :profile-information=\"profileInfo\" />\n <AppSeparator class=\"margin-v--m\" />\n <AppTip\n :content=\"$t('pages-my_profile.dashboards.tips.no-content')\"\n unique-name=\"my-profile-dashboard-performance-graph-no-content\" />\n\n <div v-if=\"hasPerformanceGraphWellConfigured\">\n <ProfilePerformanceChart\n :series-values=\"performanceGraphSeriesValues\"\n :category-names=\"performanceGraphCategoryNames\"\n data-cy=\"performance-graph\" />\n <AppTip :content=\"$t('pages-my_profile.dashboards.tips.content')\" unique-name=\"my-profile-dashboard-performance-graph\" />\n </div>\n <div v-else class=\"summary__performance-graph-content\">\n <AppNoContentYet :text=\"$t('pages-my_profile.dashboards.performance_graph.no_content_yet')\" />\n <img src=\"@/assets/images/empty-performance-graph.svg\" alt=\"\" data-cy=\"no-performance-graph\" />\n </div>\n <div v-if=\"hasPerformanceGraphConfigured\" class=\"summary__performance-graph-content\">\n <AppLinkButton\n data-cy=\"edit-graph\"\n :text=\"$t('pages-my_profile.dashboards.performance_graph.edit')\"\n @click=\"editPerformanceGraph\" />\n </div>\n </div>\n <div>\n <div class=\"grid--two-columns@medium\">\n <SuccessFullSkills data-cy=\"successful-skills\" />\n <CertificatedAndCourses class=\"dashboard__certificate-and-courses\" data-cy=\"certificate-and-courses\" />\n </div>\n </div>\n </div>\n <ProfilePerformanceChartConfigurerWizard\n v-if=\"configuringPerformanceGraph\"\n :initial-step=\"1\"\n @updated=\"performanceGraphUpdated\"\n @close=\"configuringPerformanceGraph = false\" />\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Ref } from \"vue\";\nimport { onMounted, ref } from \"vue\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport AppSeparator from \"@/components/AppSeparator.vue\";\nimport CertificatedAndCourses from \"@/views/app/my-profile/components/dashboard/CertificatedAndCourses.vue\";\nimport ProfileSummary from \"@/views/app/my-profile/components/dashboard/ProfileSummary.vue\";\nimport SuccessFullSkills from \"@/views/app/my-profile/components/dashboard/SuccessFullSkills.vue\";\nimport ProfilePerformanceChart from \"@/views/app/my-profile/components/overview/ProfilePerformanceChart.vue\";\nimport MyProfileNavigation from \"@/views/app/my-profile/components/shared/MyProfileNavigation.vue\";\nimport useMeService from \"@/services/useMeService\";\n\nimport useMePerformanceGraphService from \"@/services/useMePerformanceGraphService\";\n\nimport type { ProfileInformation } from \"@/models/profileInformation\";\nimport type { SkillProgression } from \"@/models/skillProgression\";\nimport AppTip from \"@/components/AppTip.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport ProfilePerformanceChartConfigurerWizard from \"@/views/app/my-profile/components/overview/performance-chart-configurer/ProfilePerformanceChartConfigurerWizard.vue\";\nimport AppLinkButton from \"@/components/AppLinkButton.vue\";\n\nconst { getBasicProfile } = useMeService();\nconst { getPerformanceGraph } = useMePerformanceGraphService();\n\nconst profileInfo: Ref<ProfileInformation | undefined> = ref<ProfileInformation | undefined>();\nconst loading: Ref<boolean> = ref<boolean>(true);\nconst configuringPerformanceGraph: Ref<boolean> = ref<boolean>(false);\n\nconst performanceGraphSeriesValues: Ref<number[][]> = ref<number[][]>([]);\nconst performanceGraphCategoryNames: Ref<string[]> = ref<string[]>([]);\nconst hasPerformanceGraphConfigured: Ref<boolean> = ref<boolean>(false);\nconst hasPerformanceGraphWellConfigured: Ref<boolean> = ref<boolean>(false);\n\nconst progressionToNumber: Record<SkillProgression, number> = {\n High: 4,\n Medium: 3,\n Low: 2,\n};\n\nonMounted(async () => {\n profileInfo.value = await getBasicProfile();\n await initPerformanceGraph();\n loading.value = false;\n});\n\nconst initPerformanceGraph = async (): Promise<void> => {\n const performanceGraph = await getPerformanceGraph();\n\n performanceGraphCategoryNames.value = performanceGraph.skillNames.map((s) => s.name);\n performanceGraphSeriesValues.value = [\n performanceGraph.currentJobProgressions.map((s) => (s.progression === undefined ? 1 : progressionToNumber[s.progression])),\n performanceGraph.idealJobProgressions.map((s) => (s.progression === undefined ? 1 : progressionToNumber[s.progression])),\n performanceGraph.currentExperienceProgressions.map((s) => (s.progression === undefined ? 1 : progressionToNumber[s.progression])),\n ];\n hasPerformanceGraphConfigured.value = performanceGraph.skillNames.length > 0;\n hasPerformanceGraphWellConfigured.value =\n hasPerformanceGraphConfigured.value &&\n performanceGraph.currentExperienceProgressions.length > 2 &&\n performanceGraph.idealJobProgressions.length > 2;\n};\n\nconst editPerformanceGraph = (): void => {\n configuringPerformanceGraph.value = true;\n};\nconst performanceGraphUpdated = async (): Promise<void> => {\n configuringPerformanceGraph.value = false;\n loading.value = true;\n await initPerformanceGraph();\n loading.value = false;\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n\n.summary {\n padding-top: var(--space-l);\n\n &__profile {\n padding-top: var(--space-l);\n }\n\n &__skills-description {\n margin-bottom: var(--space-l);\n }\n\n &__general-skills {\n display: flex;\n flex-direction: column;\n }\n\n &__general-skills-title {\n width: 100%;\n }\n\n &__performance-graph-content {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--space-l);\n }\n}\n</style>\n","<template>\n <AppLoading />\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted } from \"vue\";\nimport router from \"@/router/router\";\nimport useMePerformanceGraphService from \"@/services/useMePerformanceGraphService\";\nimport AppLoading from \"@/components/AppLoading.vue\";\n\nconst { getPerformanceGraph } = useMePerformanceGraphService();\n\nonMounted(async () => {\n const performanceGraph = await getPerformanceGraph();\n const hasPerformanceGraphConfigured = performanceGraph.skillNames.length > 0;\n const destinationView = hasPerformanceGraphConfigured ? \"my-profile-dashboard\" : \"my-profile-overview\";\n await router.push({ name: destinationView });\n});\n</script>\n","export enum QuestionType {\n LongText = \"LongText\",\n ShortText = \"ShortText\",\n SingleSelection = \"SingleSelection\",\n MultipleSelection = \"MultipleSelection\",\n Level = \"Level\",\n Tags = \"Tags\",\n}\n","<template>\n <AppLinkButton data-cy=\"ai-assistant-answer-open-action\" :bold=\"false\" :text=\"$t(titleKey)\" @click=\"clicked\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport AppLinkButton from \"@/components/AppLinkButton.vue\";\n\ninterface Props {\n isNotAnswerYet: boolean;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"click\") => void>();\n\nconst titleKey = computed(() => (props.isNotAnswerYet ? \"buttons.answer\" : \"buttons.edit\"));\n\nconst clicked = () => emit(\"click\");\n</script>\n","<template>\n <div>\n <div class=\"answer__actions\">\n <AIAssistantAnswerOpenAction :is-not-answer-yet=\"isNotAnsweredYet\" @click=\"edit()\" />\n </div>\n <Component :is=\"editor\" v-if=\"editing\" :question=\"question\" @edited=\"edited\" @closed=\"closed\" />\n </div>\n</template>\n-\n<script setup lang=\"ts\">\nimport type { Question } from \"@/models/question\";\nimport { isBlank } from \"@/utils/stringUtils\";\nimport AIAssistantAnswerOpenAction from \"@/views/app/ai-assistant/components/AIAssistantAnswerOpenAction.vue\";\nimport { computed, ref, type Component, type Ref } from \"vue\";\n\ninterface Props {\n question: Question;\n editor: Component;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"edited\", newQuestionState: Question) => void>();\n\nconst editing: Ref<boolean> = ref<boolean>(false);\n\nconst isNotAnsweredYet = computed(\n () =>\n (props.question.value === undefined || props.question.value === 0) &&\n isBlank(props.question.text) &&\n !props.question.selectedOption &&\n (!props.question.selectedOptions || props.question.selectedOptions.length === 0) &&\n (!props.question.tags || props.question.tags.length === 0)\n);\n\nconst edit = (): void => {\n editing.value = true;\n};\nconst closed = (): void => {\n editing.value = false;\n};\nconst edited = (newQuestionState: Question): void => {\n emit(\"edited\", newQuestionState);\n editing.value = false;\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.answer__actions {\n flex-shrink: 0;\n text-align: right;\n}\n</style>\n","<template>\n <AppInputGeneric :label=\"label\" :error=\"error\" :omit-error-if-no-error=\"true\" class=\"app-input-range\">\n <input type=\"range\" class=\"text\" :value=\"modelValueString\" :max=\"max\" :min=\"min\" @input=\"change\" />\n <div class=\"range\">\n <div v-for=\"availableValue in availableValues\" :key=\"availableValue\" class=\"text text--xs\">\n {{ availableValue }}\n </div>\n </div>\n </AppInputGeneric>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport AppInputGeneric from \"@/components/AppInputGeneric.vue\";\n\ninterface Props {\n modelValue?: number;\n availableValues: string[];\n label?: string;\n error?: string;\n max: number;\n min: number;\n}\nconst props = withDefaults(defineProps<Props>(), { modelValue: 0 });\n\nconst emit = defineEmits<(e: \"update:modelValue\", value: number | undefined) => void>();\n\nconst modelValueString = computed<string | undefined>(() => {\n if (!props.modelValue) {\n return undefined;\n }\n return props.modelValue.toString();\n});\n\nconst backgroundSize = computed(() => {\n return props.modelValue ? ((props.modelValue - props.min) * 100) / (props.max - props.min) + \"% 100%\" : \"0\";\n});\n\nconst change = (event: Event): void => {\n const input: HTMLInputElement = event.target as HTMLInputElement;\n const number = parseInt(input.value);\n const isEmpty = isNaN(number);\n emit(\"update:modelValue\", isEmpty ? undefined : number);\n};\n</script>\n\n<style scoped lang=\"scss\">\n.app-input-range {\n gap: 10px;\n}\n\ninput[type=\"range\"] {\n -webkit-appearance: none;\n appearance: none;\n display: flex;\n align-items: center;\n width: 100%;\n height: 5px;\n background-size: v-bind(backgroundSize);\n background-color: var(--color-input-border);\n background-image: linear-gradient(to right, var(--color-input-background), var(--color-input-background));\n background-repeat: no-repeat;\n border: 1px solid var(--color-input-border);\n border-radius: 5px;\n\n &::-webkit-slider-thumb,\n &::-ms-thumb,\n &::-moz-range-thumb {\n -webkit-appearance: none;\n width: 20px;\n height: 20px;\n cursor: pointer;\n background-color: var(--color-input-slider-background);\n border-radius: 50%;\n box-shadow: 0 0 2px 0 #555;\n transition: background-color 0.3s ease-in-out;\n }\n\n &::-webkit-slider-thumb:hover,\n &::-moz-range-thumb:hover,\n &::-ms-thumb:hover {\n background: var(--color-input-slider-background--hover);\n border: 3px solid var(--color-input-slider-border--hover);\n }\n\n &::-webkit-slider-runnable-track,\n &::-moz-range-track {\n -webkit-appearance: none;\n background: transparent;\n border: none;\n box-shadow: none;\n }\n}\n\n.range {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding-right: 3px;\n padding-left: 10px;\n}\n</style>\n","<template>\n <AppInputGeneric :label=\"label\" :error=\"error\" :class=\"{ 'app-input-textarea--fixed': !rows }\">\n <textarea\n v-app-focus=\"autofocus\"\n :placeholder=\"placeholder\"\n class=\"input text\"\n :value=\"modelValue\"\n :maxlength=\"maxlength\"\n :rows=\"rows\"\n @keyup=\"change\"></textarea>\n </AppInputGeneric>\n</template>\n<script setup lang=\"ts\">\nimport AppInputGeneric from \"@/components/AppInputGeneric.vue\";\n\ninterface Props {\n modelValue?: string;\n label?: string;\n placeholder?: string;\n error?: string;\n maxlength?: number;\n autofocus?: boolean;\n rows?: number;\n}\nwithDefaults(defineProps<Props>(), {\n placeholder: \"\",\n maxlength: 0,\n rows: 0,\n});\n\nconst emit = defineEmits<(e: \"update:modelValue\", value: string) => void>();\n\nconst change = (event: Event): void => {\n const input: HTMLInputElement = event.target as HTMLInputElement;\n emit(\"update:modelValue\", input.value);\n};\n</script>\n\n<style scoped lang=\"scss\">\n.app-input-textarea--fixed {\n max-height: 350px;\n height: 100%;\n}\n.input {\n resize: none;\n height: 100%;\n}\n</style>\n","import type { Answer } from \"@/models/answer\";\nimport type { Question } from \"@/models/question\";\nimport { QuestionWithAnswers } from \"@/models/questionAnswers\";\nimport type { QuestionKpiInfo } from \"@/models/questionKpi\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\nimport type { Ref } from \"vue\";\n\nconst BASE_URL = \"/api/questions\";\nconst { get, post, put, httpDelete, loading } = useHttpClient();\n\ninterface UseQuestionServiceReturn {\n getPublishedQuestions: (numberOfItems?: number) => Promise<Question[]>;\n getUnpublishedQuestions: (numberOfItems?: number) => Promise<Question[]>;\n saveQuestionAnswer: (questionId: number, answer: Answer) => Promise<void>;\n createQuestion: (question: Question) => Promise<Question>;\n updateQuestion: (question: Question) => Promise<Question>;\n publishQuestions: (questions: Question[]) => Promise<void>;\n unpublishQuestions: (questions: Question[]) => Promise<void>;\n descendQuestionOrder: (question: Question) => Promise<void>;\n ascendQuestionOrder: (question: Question) => Promise<void>;\n deleteQuestion: (questionId: number) => Promise<void>;\n deleteQuestions: (questionIds: number[]) => Promise<void>;\n toggleQuestionInDashboard: (questionId: number, showInDashboard: boolean) => Promise<void>;\n getKpis: () => Promise<QuestionKpiInfo[]>;\n getAnswers: (questionId: number) => Promise<QuestionWithAnswers>;\n getQuestionKpi: (questionId: number) => Promise<QuestionKpiInfo>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseQuestionServiceReturn => {\n const getPublishedQuestions = (numberOfItems?: number): Promise<Question[]> => {\n const url = numberOfItems ? `${BASE_URL}/published?numberOfItems=${numberOfItems}` : `${BASE_URL}/published`;\n return get(url);\n };\n const getUnpublishedQuestions = (numberOfItems?: number): Promise<Question[]> => {\n const url = numberOfItems ? `${BASE_URL}/unpublished?numberOfItems=${numberOfItems}` : `${BASE_URL}/unpublished`;\n return get(url);\n };\n const getKpis = async (): Promise<QuestionKpiInfo[]> => get<QuestionKpiInfo[]>(`${BASE_URL}/kpis`);\n const updateQuestion = (question: Question): Promise<Question> => put(`${BASE_URL}/${question.id}`, question);\n const publishQuestions = (questions: Question[]): Promise<void> =>\n post(\n `${BASE_URL}/publish`,\n questions.map((q) => q.id)\n );\n const descendQuestionOrder = (question: Question): Promise<void> => post(`${BASE_URL}/${question.id}/descend`, question);\n const ascendQuestionOrder = (question: Question): Promise<void> => post(`${BASE_URL}/${question.id}/ascend`, question);\n const saveQuestionAnswer = (questionId: number, answer: Answer): Promise<void> => post(`${BASE_URL}/${questionId}/answers`, answer);\n const createQuestion = (question: Question): Promise<Question> => post(BASE_URL, question);\n const unpublishQuestions = (questions: Question[]): Promise<void> =>\n post(\n `${BASE_URL}/unpublish`,\n questions.map((q) => q.id)\n );\n const toggleQuestionInDashboard = (questionId: number, showInDashboard: boolean): Promise<void> =>\n post(`${BASE_URL}/${questionId}/dashboard/${showInDashboard}`);\n const deleteQuestion = (questionId: number): Promise<void> => httpDelete(`${BASE_URL}/${questionId}`);\n const deleteQuestions = (questionIds: number[]): Promise<void> => httpDelete(BASE_URL, questionIds);\n const getAnswers = (questionId: number): Promise<QuestionWithAnswers> => get(`${BASE_URL}/${questionId}/answers`);\n const getQuestionKpi = async (questionId: number): Promise<QuestionKpiInfo> => get<QuestionKpiInfo>(`${BASE_URL}/${questionId}/kpi`);\n\n return {\n getPublishedQuestions,\n getUnpublishedQuestions,\n saveQuestionAnswer,\n createQuestion,\n updateQuestion,\n publishQuestions,\n unpublishQuestions,\n descendQuestionOrder,\n ascendQuestionOrder,\n deleteQuestion,\n deleteQuestions,\n toggleQuestionInDashboard,\n getKpis,\n getAnswers,\n getQuestionKpi,\n loading,\n };\n};\n","<template>\n <form class=\"app-form\" @submit.prevent>\n <slot></slot>\n </form>\n</template>\n\n<style scoped lang=\"scss\">\n.app-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n\n &--shrink {\n height: auto;\n }\n}\n</style>\n","import type { ModalCallback } from \"@/components/modal/models\";\nimport type { FormValidator } from \"@/models/formValidator\";\nimport { getCurrentInstance, type RendererNode } from \"vue\";\n\ninterface UseFormValidatorReturn {\n validateFormAndFocusError: (form: FormValidator) => Promise<boolean>;\n getFormCallbackHandler: (form: FormValidator, saveHandler: ModalCallback) => ModalCallback;\n getObjectFromForm: <T>(form: FormValidator) => Partial<T>;\n}\n\nconst setFocusOnErrorInput = (node: RendererNode | null) => {\n if (!node) {\n return;\n }\n const errorElement = node.querySelector(\".text--error:not(.hidden)\");\n const firstFocusableElement = getFirstFocusableOnError(errorElement);\n if (firstFocusableElement) {\n firstFocusableElement.focus();\n }\n};\nconst getFirstFocusableOnError = (errorElement?: HTMLElement): HTMLElement | undefined => {\n if (!errorElement) {\n return;\n }\n if (!errorElement.previousElementSibling) {\n return;\n }\n const previousSibling = errorElement.previousElementSibling as HTMLElement;\n if (previousSibling.tabIndex >= 0) {\n return previousSibling;\n }\n return previousSibling.querySelector(\"button, [href], input, select, textarea\") as HTMLElement;\n};\n\nexport default (): UseFormValidatorReturn => {\n const currentInstance = getCurrentInstance();\n const validateFormAndFocusError = async (form: FormValidator) => {\n const validationResult = await form.validate();\n if (!validationResult.valid && currentInstance) {\n setFocusOnErrorInput(currentInstance.vnode.el);\n }\n return validationResult.valid;\n };\n const getFormCallbackHandler = (form: FormValidator, saveHandler: ModalCallback): ModalCallback => {\n return async () => {\n const validationResult = await validateFormAndFocusError(form);\n\n if (!validationResult) {\n return false;\n }\n return saveHandler();\n };\n };\n const getObjectFromForm = <T>(form: FormValidator): Partial<T> => {\n const result = form.values as Partial<T>;\n type keysOfT = keyof T;\n for (const key of Object.keys(form.values)) {\n const keyT = key as keysOfT;\n if (typeof result[keyT] === \"string\" && result[keyT] === \"\") {\n result[keyT] = undefined;\n }\n }\n return result;\n };\n\n return { validateFormAndFocusError, getFormCallbackHandler, getObjectFromForm };\n};\n","<template>\n <AppAutomaticModalOpener :disable-key-enter=\"disableKeyEnter\" :disable-key-scape=\"disableKeyScape\" :modal-config=\"modalConfig\">\n <AppForm :class=\"{ 'form--shrink': autoHeight }\">\n <slot></slot>\n </AppForm>\n </AppAutomaticModalOpener>\n</template>\n\n<script setup lang=\"ts\">\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport type { ModalBase } from \"@/components/modal/models\";\nimport type { FormValidator } from \"@/models/formValidator\";\nimport i18n from \"@/i18n\";\nimport type { Answer } from \"@/models/answer\";\nimport type { Question } from \"@/models/question\";\nimport useQuestionService from \"@/services/useQuestionService\";\nimport AppForm from \"@/components/AppForm.vue\";\nimport useFormValidator from \"@/services/useFormValidator\";\n\ninterface Props {\n question: Question;\n form?: FormValidator;\n autoHeight?: boolean;\n disableKeyScape?: boolean;\n disableKeyEnter?: boolean;\n getCurrentAnswer: () => Answer;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"edited\", newQuestionState: Question): void;\n (e: \"closed\"): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst { saveQuestionAnswer } = useQuestionService();\nconst { validateFormAndFocusError } = useFormValidator();\n\nconst save = async (): Promise<boolean> => {\n const formInvalid = await isFormInvalid();\n if (formInvalid) {\n return false;\n }\n const answer: Answer = props.getCurrentAnswer();\n await saveQuestionAnswer(props.question.id, answer);\n const newQuestion: Question = getNewQuestionState(answer);\n emit(\"edited\", newQuestion);\n return true;\n};\nconst isFormInvalid = async (): Promise<boolean> => {\n if (!props.form) {\n return false;\n }\n const isValid = await validateFormAndFocusError(props.form);\n return !isValid;\n};\n\nconst modalConfig: ModalBase = {\n title: props.question.title,\n confirmText: i18n.global.t(\"buttons.save\"),\n variant: \"floating\",\n showCancelToClose: true,\n confirmCallback: save,\n closeCallback: () => emit(\"closed\"),\n};\nconst getNewQuestionState = (answer: Answer): Question => {\n return {\n ...props.question,\n ...{\n text: answer.text,\n value: answer.value,\n selectedOption: props.question.options?.find((o) => answer.selectedOption && answer.selectedOption === o.optionId),\n selectedOptions: props.question.options?.filter((o) => answer.selectedOptions && answer.selectedOptions.indexOf(o.optionId) > -1),\n tags: answer.tags ? [...answer.tags] : undefined,\n },\n };\n};\n</script>\n","<template>\n <AIAssistantEditorBase :question=\"question\" :form=\"form\" :get-current-answer=\"getAnswer\" @closed=\"closed\" @edited=\"edited\">\n <AppInputTextArea v-model=\"text\" :label=\"$t('pages.ai_assistant.question.level')\" :maxlength=\"largeTextLength\" :error=\"textError\" />\n <AppInputRange v-model=\"value\" :min=\"minLevelAnswer\" :max=\"maxLevelAnswer\" :error=\"valueError\" :available-values=\"availableValues\" />\n </AIAssistantEditorBase>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted } from \"vue\";\nimport { number as yupNumber } from \"yup\";\nimport AppInputRange from \"@/components/AppInputRange.vue\";\nimport AppInputTextArea from \"@/components/AppInputTextArea.vue\";\nimport AIAssistantEditorBase from \"@/views/app/ai-assistant/components/AIAssistantEditorBase.vue\";\nimport { largeTextLength, maxLevelAnswer, minLevelAnswer } from \"@/constants/restrictions\";\nimport type { Answer } from \"@/models/answer\";\nimport type { Question } from \"@/models/question\";\nimport type { QuestionLevel } from \"@/models/questionLevel\";\nimport { useField, useForm } from \"vee-validate\";\nimport useFormSchema from \"@/services/useFormSchema\";\n\ninterface Props {\n question: Question;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"edited\", newQuestionState: Question): void;\n (e: \"closed\"): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst { yupObject, stringSchema, inputRequiredText } = useFormSchema();\n\nconst levels: QuestionLevel = props.question.levels ?? ({} as QuestionLevel);\nconst availableValues = [levels.lowLevelText, levels.mediumLevelText, levels.highLevelText];\n\nconst resourceSchema = yupObject({\n text: stringSchema({ maxLength: largeTextLength }),\n value: yupNumber().required(inputRequiredText()),\n});\n\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: text, errorMessage: textError } = useField<string>(\"text\");\nconst { value: value, errorMessage: valueError } = useField<number>(\"value\");\n\nonMounted(() => setFormValues());\n\nconst setFormValues = (): void => {\n if (props.question.value) {\n text.value = props.question.text ?? \"\";\n value.value = props.question.value || minLevelAnswer;\n } else {\n form.resetForm();\n value.value = minLevelAnswer;\n }\n};\n\nconst getAnswer = (): Answer => ({ text: text.value, value: value.value });\nconst closed = () => emit(\"closed\");\nconst edited = (newQuestionState: Question) => emit(\"edited\", newQuestionState);\n</script>\n","<template>\n <div>\n <div class=\"answer__value\">\n <AppTag v-if=\"question.value\" type=\"value\" :main-text=\"`${question.value} / 10`\" :limited-size=\"true\" />\n </div>\n <AIAssistantGenericTextAnswer :text=\"question.text\" class=\"answer__text\" />\n <AIAssistantAnswerActions v-if=\"answerEnabled\" :question=\"question\" :editor=\"AIAssistantAnswerLevelEditor\" @edited=\"edited\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AppTag from \"@/components/AppTag.vue\";\nimport AIAssistantAnswerActions from \"@/views/app/ai-assistant/components/AIAssistantAnswerActions.vue\";\nimport AIAssistantAnswerLevelEditor from \"@/views/app/ai-assistant/components/AIAssistantAnswerLevelEditor.vue\";\nimport AIAssistantGenericTextAnswer from \"@/views/app/ai-assistant/components/AIAssistantGenericTextAnswer.vue\";\nimport type { Question } from \"@/models/question\";\n\ninterface Props {\n question: Question;\n answerEnabled: boolean;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"edited\", newQuestionState: Question) => void>();\n\nconst edited = (newQuestionState: Question): void => emit(\"edited\", newQuestionState);\n</script>\n<style lang=\"scss\" scoped>\n.answer {\n &__value {\n flex-grow: 0;\n flex-shrink: 0;\n width: 50px;\n }\n\n &__text {\n flex-grow: 1;\n flex-shrink: 0;\n width: 50px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n</style>\n","<template>\n <AIAssistantEditorBase\n :question=\"question\"\n :disable-key-enter=\"true\"\n :form=\"form\"\n :get-current-answer=\"getAnswer\"\n @closed=\"closed\"\n @edited=\"edited\">\n <AppInputTextArea v-model=\"answer\" :maxlength=\"largeTextLength\" :error=\"answerError\" :autofocus=\"true\" />\n </AIAssistantEditorBase>\n</template>\n\n<script setup lang=\"ts\">\nimport AppInputTextArea from \"@/components/AppInputTextArea.vue\";\nimport { largeTextLength } from \"@/constants/restrictions\";\nimport type { Answer } from \"@/models/answer\";\nimport type { Question } from \"@/models/question\";\nimport AIAssistantEditorBase from \"@/views/app/ai-assistant/components/AIAssistantEditorBase.vue\";\nimport { useField, useForm } from \"vee-validate\";\nimport { onMounted } from \"vue\";\nimport useFormSchema from \"@/services/useFormSchema\";\n\ninterface Props {\n question: Question;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"edited\", newQuestionState: Question): void;\n (e: \"closed\"): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst { yupObject, stringSchema } = useFormSchema();\n\nconst resourceSchema = yupObject({\n answer: stringSchema({ maxLength: largeTextLength }),\n});\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: answer, errorMessage: answerError } = useField<string>(\"answer\");\n\nonMounted(() => setFormValues());\n\nconst setFormValues = (): void => {\n if (props.question.text) {\n answer.value = props.question.text ?? \"\";\n return;\n }\n form.resetForm();\n};\nconst getAnswer = (): Answer => ({ text: answer.value });\nconst closed = () => emit(\"closed\");\nconst edited = (newQuestionState: Question) => emit(\"edited\", newQuestionState);\n</script>\n","<template>\n <div>\n <AIAssistantGenericTextAnswer :text=\"question.text\" />\n <AIAssistantAnswerActions v-if=\"answerEnabled\" :question=\"question\" :editor=\"AIAssistantAnswerLongTextEditor\" @edited=\"edited\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Question } from \"@/models/question\";\nimport AIAssistantAnswerActions from \"@/views/app/ai-assistant/components/AIAssistantAnswerActions.vue\";\nimport AIAssistantAnswerLongTextEditor from \"@/views/app/ai-assistant/components/AIAssistantAnswerLongTextEditor.vue\";\nimport AIAssistantGenericTextAnswer from \"@/views/app/ai-assistant/components/AIAssistantGenericTextAnswer.vue\";\n\ninterface Props {\n question: Question;\n answerEnabled: boolean;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"edited\", newQuestionState: Question) => void>();\n\nconst edited = (newQuestionState: Question): void => emit(\"edited\", newQuestionState);\n</script>\n","<template>\n <AIAssistantEditorBase\n :disable-key-enter=\"true\"\n :question=\"question\"\n :get-current-answer=\"getAnswer\"\n :auto-height=\"true\"\n @closed=\"closed\"\n @edited=\"edited\">\n <AppCheckbox\n v-for=\"option in availableOptions\"\n :key=\"option.optionId\"\n v-model=\"option.checked\"\n :text=\"option.title\"\n class=\"margin-b--xs\" />\n </AIAssistantEditorBase>\n</template>\n\n<script setup lang=\"ts\">\nimport AppCheckbox from \"@/components/AppCheckbox.vue\";\nimport type { Answer } from \"@/models/answer\";\nimport type { Question } from \"@/models/question\";\nimport AIAssistantEditorBase from \"@/views/app/ai-assistant/components/AIAssistantEditorBase.vue\";\nimport { onMounted, ref, type Ref } from \"vue\";\n\ninterface Props {\n question: Question;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"edited\", newQuestionState: Question): void;\n (e: \"closed\"): void;\n}\nconst emit = defineEmits<Emits>();\n\ntype OptionStatus = {\n checked: boolean;\n optionId: number;\n title: string;\n};\n\nconst availableOptions: Ref<OptionStatus[]> = ref<OptionStatus[]>([]);\n\nonMounted(() => setFormValues());\n\nconst setFormValues = (): void => {\n if (props.question.options) {\n availableOptions.value = props.question.options.map((option) => ({\n optionId: option.optionId,\n title: option.title,\n checked: isOptionSelected(option.optionId),\n }));\n }\n};\n\nconst isOptionSelected = (optionId: number): boolean =>\n !!props.question.selectedOptions && props.question.selectedOptions.some((o) => o.optionId === optionId);\n\nconst getAnswer = (): Answer => {\n const selectedOptionIds: number[] = availableOptions.value.filter((o) => o.checked).map((o) => o.optionId);\n const questionAnswer: Answer = { selectedOptions: selectedOptionIds };\n return questionAnswer;\n};\nconst closed = () => emit(\"closed\");\nconst edited = (newQuestionState: Question) => emit(\"edited\", newQuestionState);\n</script>\n","<template>\n <div>\n <AnswerOptions :options=\"question.selectedOptions\" />\n <AIAssistantAnswerActions\n v-if=\"answerEnabled\"\n :question=\"question\"\n :editor=\"AIAssistantAnswerMultipleSelectionEditor\"\n @edited=\"edited\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Question } from \"@/models/question\";\nimport AIAssistantAnswerActions from \"@/views/app/ai-assistant/components/AIAssistantAnswerActions.vue\";\nimport AIAssistantAnswerMultipleSelectionEditor from \"@/views/app/ai-assistant/components/AIAssistantAnswerMultipleSelectionEditor.vue\";\nimport AnswerOptions from \"@/views/app/ai-assistant/components/AnswerOptions.vue\";\n\ninterface Props {\n question: Question;\n answerEnabled: boolean;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"edited\", newQuestionState: Question) => void>();\n\nconst edited = (newQuestionState: Question): void => emit(\"edited\", newQuestionState);\n</script>\n\n<style lang=\"scss\" scoped>\n.answer {\n &__actions {\n flex-shrink: 0;\n width: 50px;\n text-align: right;\n }\n}\n</style>\n","<template>\n <div class=\"app-input-text\">\n <AppBasicText\n :autofocus=\"autofocus\"\n :model-value=\"modelValue\"\n :type=\"type\"\n :icon=\"icon\"\n :placeholder=\"placeholder\"\n :maxlength=\"maxlength\"\n :label=\"label\"\n :keep-margin=\"keepMargin\"\n :disabled=\"disabled\"\n :bg-transparent=\"bgTransparent\"\n @update:model-value=\"updateModelValue\" />\n <AppInputError :error=\"error\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AppBasicText from \"@/components/AppBasicText.vue\";\nimport AppInputError from \"@/components/AppInputError.vue\";\n\ninterface Props {\n modelValue?: string;\n label?: string;\n placeholder?: string;\n type?: \"text\" | \"password\";\n error?: string;\n maxlength?: number;\n disabled?: boolean;\n autofocus?: boolean;\n icon?: \"magnify\";\n keepMargin?: boolean;\n bgTransparent?: boolean;\n}\nwithDefaults(defineProps<Props>(), { keepMargin: true });\n\nconst emit = defineEmits<(e: \"update:modelValue\", value: string) => void>();\nconst updateModelValue = (newValue: string) => emit(\"update:modelValue\", newValue);\n</script>\n\n<style scoped lang=\"scss\">\n.app-input-text {\n display: flex;\n flex-direction: column;\n gap: 0.4rem;\n width: 100%;\n padding-bottom: 0.6rem;\n}\n</style>\n","<template>\n <AIAssistantEditorBase\n :question=\"question\"\n :disable-key-enter=\"true\"\n :form=\"form\"\n :get-current-answer=\"getAnswer\"\n @closed=\"closed\"\n @edited=\"edited\">\n <AppInputText v-model=\"answer\" :maxlength=\"mediumTextLength\" :error=\"answerError\" :autofocus=\"true\" />\n </AIAssistantEditorBase>\n</template>\n\n<script setup lang=\"ts\">\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport { mediumTextLength } from \"@/constants/restrictions\";\nimport type { Answer } from \"@/models/answer\";\nimport type { Question } from \"@/models/question\";\nimport AIAssistantEditorBase from \"@/views/app/ai-assistant/components/AIAssistantEditorBase.vue\";\nimport { useField, useForm } from \"vee-validate\";\nimport useFormSchema from \"@/services/useFormSchema\";\nimport { onMounted } from \"vue\";\n\ninterface Props {\n question: Question;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"edited\", newQuestionState: Question): void;\n (e: \"closed\"): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst { yupObject, stringSchema } = useFormSchema();\n\nconst resourceSchema = yupObject({\n answer: stringSchema(),\n});\n\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: answer, errorMessage: answerError } = useField<string>(\"answer\");\n\nonMounted(() => setFormValues());\n\nconst setFormValues = (): void => {\n if (props.question.text) {\n answer.value = props.question.text;\n } else {\n form.resetForm();\n }\n};\n\nconst getAnswer = (): Answer => ({ text: answer.value });\nconst closed = () => emit(\"closed\");\nconst edited = (newQuestionState: Question) => emit(\"edited\", newQuestionState);\n</script>\n","<template>\n <div>\n <AIAssistantGenericTextAnswer :text=\"question.text\" />\n <AIAssistantAnswerActions v-if=\"answerEnabled\" :question=\"question\" :editor=\"AIAssistantAnswerShortTextEditor\" @edited=\"edited\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Question } from \"@/models/question\";\nimport AIAssistantAnswerActions from \"@/views/app/ai-assistant/components/AIAssistantAnswerActions.vue\";\nimport AIAssistantAnswerShortTextEditor from \"@/views/app/ai-assistant/components/AIAssistantAnswerShortTextEditor.vue\";\nimport AIAssistantGenericTextAnswer from \"@/views/app/ai-assistant/components/AIAssistantGenericTextAnswer.vue\";\n\ninterface Props {\n question: Question;\n answerEnabled: boolean;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"edited\", newQuestionState: Question) => void>();\n\nconst edited = (newQuestionState: Question): void => emit(\"edited\", newQuestionState);\n</script>\n","<template>\n <AIAssistantEditorBase :question=\"question\" :form=\"form\" :get-current-answer=\"getAnswer\" @closed=\"closed\" @edited=\"edited\">\n <AppRadioButtonList v-model=\"selectedOption\" :options=\"question.options\" :error=\"selectedOptionError\" />\n </AIAssistantEditorBase>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted } from \"vue\";\nimport { useField, useForm } from \"vee-validate\";\nimport AppRadioButtonList from \"@/components/AppRadioButtonList.vue\";\nimport AIAssistantEditorBase from \"@/views/app/ai-assistant/components/AIAssistantEditorBase.vue\";\nimport type { Answer } from \"@/models/answer\";\nimport type { Question } from \"@/models/question\";\nimport type { QuestionOption } from \"@/models/questionOption\";\nimport useFormSchema from \"@/services/useFormSchema\";\n\ninterface Props {\n question: Question;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"edited\", newQuestionState: Question): void;\n (e: \"closed\"): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst { yupObject, inputRequiredText } = useFormSchema();\n\nconst resourceSchema = yupObject({\n selectedOption: yupObject({}).required(inputRequiredText()),\n});\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: selectedOption, errorMessage: selectedOptionError } = useField<QuestionOption | undefined>(\"selectedOption\");\nonMounted(() => setFormValues());\n\nconst setFormValues = (): void => {\n if (props.question.selectedOption) {\n selectedOption.value = props.question.selectedOption;\n } else {\n form.resetForm();\n }\n};\n\nconst getAnswer = (): Answer => ({ selectedOption: selectedOption.value?.optionId });\nconst closed = () => emit(\"closed\");\nconst edited = (newQuestionState: Question) => emit(\"edited\", newQuestionState);\n</script>\n","<template>\n <div>\n <AIAssistantGenericTextAnswer :text=\"question.selectedOption?.title\" />\n <AIAssistantAnswerActions v-if=\"answerEnabled\" :question=\"question\" :editor=\"AIAssistantAnswerSingleSelectionEditor\" @edited=\"edited\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AIAssistantAnswerActions from \"@/views/app/ai-assistant/components/AIAssistantAnswerActions.vue\";\nimport AIAssistantAnswerSingleSelectionEditor from \"@/views/app/ai-assistant/components/AIAssistantAnswerSingleSelectionEditor.vue\";\nimport AIAssistantGenericTextAnswer from \"@/views/app/ai-assistant/components/AIAssistantGenericTextAnswer.vue\";\nimport type { Question } from \"@/models/question\";\n\ninterface Props {\n question: Question;\n answerEnabled: boolean;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"edited\", newQuestionState: Question) => void>();\n\nconst edited = (newQuestionState: Question): void => emit(\"edited\", newQuestionState);\n</script>\n","<template>\n <label>\n <span v-if=\"label\" class=\"text text--secondary\">{{ label }}</span>\n <div class=\"input\">\n <div v-for=\"(tag, index) in tags\" :key=\"tag\" class=\"input__done text--xs text--bold\" :title=\"tag\" @click=\"remove(index)\">\n <span class=\"text--ellipsis text\">{{ tag }}</span>\n <span class=\"close-button icon-close margin-l--xs\" data-cy=\"remove-tag\"></span>\n </div>\n <input\n v-model=\"newTag\"\n v-app-focus\n type=\"text\"\n class=\"input__new\"\n :maxlength=\"maxTagLength\"\n :readonly=\"readonly\"\n :placeholder=\"$t('inputs.tags.placeholder')\"\n @keypress=\"keypress\" />\n </div>\n <AppInputError :error=\"error\" />\n </label>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport AppInputError from \"@/components/AppInputError.vue\";\n\ninterface Props {\n modelValue?: string[];\n label?: string;\n maxTagLength?: number;\n error?: string;\n readonly?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), {\n modelValue: () => [],\n});\n\nconst tags = ref<string[]>([]);\nconst newTag = ref<string>(\"\");\n\nonMounted(async () => (tags.value = props.modelValue));\n\nconst emit = defineEmits<(e: \"update:modelValue\", value: string[]) => void>();\n\nconst keypress = (event: KeyboardEvent): void => {\n if (event.code === \"Comma\" || event.code === \"Enter\") {\n addTag(event);\n }\n};\nconst addTag = (event: KeyboardEvent) => {\n event.preventDefault();\n const newTagValue = newTag.value.trim();\n if (newTagValue === \"\") {\n return;\n }\n tags.value.push(newTagValue);\n newTag.value = \"\";\n emit(\"update:modelValue\", tags.value);\n};\n\nconst remove = (index: number): void => {\n tags.value.splice(index, 1);\n emit(\"update:modelValue\", tags.value);\n};\n</script>\n\n<style scoped lang=\"scss\">\n.input {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: var(--size-xs);\n padding: 9px 9px;\n margin: 10px 0 4px 0;\n border: 1px solid var(--color-input-border);\n\n &:hover,\n &:focus,\n &:active {\n border: 1px solid var(--color-input-border--focus);\n }\n\n &__done {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n padding: 7px 12px;\n cursor: pointer;\n background: var(--color-tags-skills-background-primary);\n border-radius: 16px;\n .text {\n max-width: 15rem;\n }\n }\n\n &__new {\n flex-grow: 1;\n padding: var(--space-xxs);\n max-width: 100%;\n border: none;\n\n &:hover,\n &:focus,\n &:active {\n border: none;\n outline: none;\n }\n }\n}\n</style>\n","<template>\n <AIAssistantEditorBase\n :question=\"question\"\n :disable-key-enter=\"true\"\n :form=\"form\"\n :get-current-answer=\"getAnswer\"\n @closed=\"closed\"\n @edited=\"edited\">\n <AppInputTags v-model=\"answers\" :max-tag-length=\"200\" :label=\"$t('pages.ai_assistant.question.tags')\" :error=\"answerError\" />\n </AIAssistantEditorBase>\n</template>\n\n<script setup lang=\"ts\">\nimport i18n from \"@/i18n\";\nimport { onMounted } from \"vue\";\nimport { object as yupObject, string as yupString, array as yupArray } from \"yup\";\nimport AppInputTags from \"@/components/AppInputTags.vue\";\nimport AIAssistantEditorBase from \"@/views/app/ai-assistant/components/AIAssistantEditorBase.vue\";\nimport { maxNumberOfTags } from \"@/constants/restrictions\";\nimport type { Answer } from \"@/models/answer\";\nimport type { Question } from \"@/models/question\";\nimport { useField, useForm } from \"vee-validate\";\nimport useFormSchema from \"@/services/useFormSchema\";\n\ninterface Props {\n question: Question;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"edited\", newQuestionState: Question): void;\n (e: \"closed\"): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst { inputRequiredText } = useFormSchema();\n\nconst resourceSchema = yupObject({\n answers: yupArray(yupString())\n .min(1, inputRequiredText())\n .max(maxNumberOfTags, i18n.global.t(\"inputs.max_number_items_exceeded\", { maxItems: maxNumberOfTags })),\n});\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: answers, errorMessage: answerError } = useField<string[]>(\"answers\");\n\nonMounted(async () => setFormValues());\nconst setFormValues = (): void => {\n if (props.question.tags && props.question.tags.length > 0) {\n answers.value = [...props.question.tags];\n return;\n }\n form.resetForm();\n};\n\nconst getAnswer = (): Answer => ({ tags: answers.value });\nconst closed = () => emit(\"closed\");\nconst edited = (newQuestionState: Question) => emit(\"edited\", newQuestionState);\n</script>\n","<template>\n <div>\n <AnswerOptions :options=\"tagsAsOptions\" />\n <AIAssistantAnswerActions v-if=\"answerEnabled\" :question=\"question\" :editor=\"AIAssistantAnswerTagsEditor\" @edited=\"edited\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Question } from \"@/models/question\";\nimport AIAssistantAnswerActions from \"@/views/app/ai-assistant/components/AIAssistantAnswerActions.vue\";\nimport AIAssistantAnswerTagsEditor from \"@/views/app/ai-assistant/components/AIAssistantAnswerTagsEditor.vue\";\nimport AnswerOptions from \"@/views/app/ai-assistant/components/AnswerOptions.vue\";\nimport type { AnswerOption } from \"@/views/app/ai-assistant/utils/models\";\nimport { computed } from \"vue\";\n\ninterface Props {\n question: Question;\n answerEnabled: boolean;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"edited\", newQuestionState: Question) => void>();\n\nconst edited = (newQuestionState: Question): void => emit(\"edited\", newQuestionState);\n\nconst tagsAsOptions = computed(() => {\n if (!props.question.tags) {\n return [];\n }\n return props.question.tags.map(\n (answer) =>\n ({\n optionId: answer,\n title: answer,\n } as AnswerOption)\n );\n});\n</script>\n\n<style lang=\"scss\" scoped>\n.answer {\n &__actions {\n flex-shrink: 0;\n width: 50px;\n text-align: right;\n }\n}\n</style>\n","import type { QuestionType } from \"@/models/questionType\";\n\nexport interface QuestionKpiOption {\n title: string;\n answeredCount: number;\n answeredPercentage: number;\n isOthersSummary: boolean;\n}\n\nexport interface QuestionKpiInfo {\n id: number;\n title: string;\n type: QuestionType;\n answeredCount: number;\n answeredPercentage: number;\n options: QuestionKpiOption[];\n}\n\nexport const PIE_DONUTS_COLORS = [\n \"#5AC3E6\",\n \"#8D83DB\",\n \"#E7AD6C\",\n \"#DF7BB2\",\n \"#B2AEF2\",\n \"#87E39F\",\n \"#73A9E8\",\n \"#9F7EC5\",\n \"#E1CF5E\",\n \"#D69F65\",\n];\n","/*!\n * ApexCharts v3.41.0\n * (c) 2018-2023 ApexCharts\n * Released under the MIT License.\n */\n\"use strict\";function t(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function e(e){for(var i=1;i<arguments.length;i++){var a=null!=arguments[i]?arguments[i]:{};i%2?t(Object(a),!0).forEach((function(t){o(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):t(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(t){return i=\"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},i(t)}function a(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function s(t,e){for(var i=0;i<e.length;i++){var a=e[i];a.enumerable=a.enumerable||!1,a.configurable=!0,\"value\"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}function r(t,e,i){return e&&s(t.prototype,e),i&&s(t,i),t}function o(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function n(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&&h(t,e)}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function h(t,e){return h=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},h(t,e)}function c(t,e){if(e&&(\"object\"==typeof e||\"function\"==typeof e))return e;if(void 0!==e)throw new TypeError(\"Derived constructors may only return object or undefined\");return function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t)}function d(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,a=l(t);if(e){var s=l(this).constructor;i=Reflect.construct(a,arguments,s)}else i=a.apply(this,arguments);return c(this,i)}}function g(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var i=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null==i)return;var a,s,r=[],o=!0,n=!1;try{for(i=i.call(t);!(o=(a=i.next()).done)&&(r.push(a.value),!e||r.length!==e);o=!0);}catch(t){n=!0,s=t}finally{try{o||null==i.return||i.return()}finally{if(n)throw s}}return r}(t,e)||p(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function u(t){return function(t){if(Array.isArray(t))return f(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(t)||p(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function p(t,e){if(t){if(\"string\"==typeof t)return f(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===i&&t.constructor&&(i=t.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(t):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?f(t,e):void 0}}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,a=new Array(e);i<e;i++)a[i]=t[i];return a}var x=function(){function t(){a(this,t)}return r(t,[{key:\"shadeRGBColor\",value:function(t,e){var i=e.split(\",\"),a=t<0?0:255,s=t<0?-1*t:t,r=parseInt(i[0].slice(4),10),o=parseInt(i[1],10),n=parseInt(i[2],10);return\"rgb(\"+(Math.round((a-r)*s)+r)+\",\"+(Math.round((a-o)*s)+o)+\",\"+(Math.round((a-n)*s)+n)+\")\"}},{key:\"shadeHexColor\",value:function(t,e){var i=parseInt(e.slice(1),16),a=t<0?0:255,s=t<0?-1*t:t,r=i>>16,o=i>>8&255,n=255&i;return\"#\"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-o)*s)+o)+(Math.round((a-n)*s)+n)).toString(16).slice(1)}},{key:\"shadeColor\",value:function(e,i){return t.isColorHex(i)?this.shadeHexColor(e,i):this.shadeRGBColor(e,i)}}],[{key:\"bind\",value:function(t,e){return function(){return t.apply(e,arguments)}}},{key:\"isObject\",value:function(t){return t&&\"object\"===i(t)&&!Array.isArray(t)&&null!=t}},{key:\"is\",value:function(t,e){return Object.prototype.toString.call(e)===\"[object \"+t+\"]\"}},{key:\"listToArray\",value:function(t){var e,i=[];for(e=0;e<t.length;e++)i[e]=t[e];return i}},{key:\"extend\",value:function(t,e){var i=this;\"function\"!=typeof Object.assign&&(Object.assign=function(t){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var e=Object(t),i=1;i<arguments.length;i++){var a=arguments[i];if(null!=a)for(var s in a)a.hasOwnProperty(s)&&(e[s]=a[s])}return e});var a=Object.assign({},t);return this.isObject(t)&&this.isObject(e)&&Object.keys(e).forEach((function(s){i.isObject(e[s])&&s in t?a[s]=i.extend(t[s],e[s]):Object.assign(a,o({},s,e[s]))})),a}},{key:\"extendArray\",value:function(e,i){var a=[];return e.map((function(e){a.push(t.extend(i,e))})),e=a}},{key:\"monthMod\",value:function(t){return t%12}},{key:\"clone\",value:function(e){if(t.is(\"Array\",e)){for(var a=[],s=0;s<e.length;s++)a[s]=this.clone(e[s]);return a}if(t.is(\"Null\",e))return null;if(t.is(\"Date\",e))return e;if(\"object\"===i(e)){var r={};for(var o in e)e.hasOwnProperty(o)&&(r[o]=this.clone(e[o]));return r}return e}},{key:\"log10\",value:function(t){return Math.log(t)/Math.LN10}},{key:\"roundToBase10\",value:function(t){return Math.pow(10,Math.floor(Math.log10(t)))}},{key:\"roundToBase\",value:function(t,e){return Math.pow(e,Math.floor(Math.log(t)/Math.log(e)))}},{key:\"parseNumber\",value:function(t){return null===t?t:parseFloat(t)}},{key:\"randomId\",value:function(){return(Math.random()+1).toString(36).substring(4)}},{key:\"noExponents\",value:function(t){var e=String(t).split(/[eE]/);if(1===e.length)return e[0];var i=\"\",a=t<0?\"-\":\"\",s=e[0].replace(\".\",\"\"),r=Number(e[1])+1;if(r<0){for(i=a+\"0.\";r++;)i+=\"0\";return i+s.replace(/^-/,\"\")}for(r-=s.length;r--;)i+=\"0\";return s+i}},{key:\"getDimensions\",value:function(t){var e=getComputedStyle(t,null),i=t.clientHeight,a=t.clientWidth;return i-=parseFloat(e.paddingTop)+parseFloat(e.paddingBottom),[a-=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight),i]}},{key:\"getBoundingClientRect\",value:function(t){var e=t.getBoundingClientRect();return{top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:t.clientWidth,height:t.clientHeight,x:e.left,y:e.top}}},{key:\"getLargestStringFromArr\",value:function(t){return t.reduce((function(t,e){return Array.isArray(e)&&(e=e.reduce((function(t,e){return t.length>e.length?t:e}))),t.length>e.length?t:e}),0)}},{key:\"hexToRgba\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"#999999\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.6;\"#\"!==t.substring(0,1)&&(t=\"#999999\");var i=t.replace(\"#\",\"\");i=i.match(new RegExp(\"(.{\"+i.length/3+\"})\",\"g\"));for(var a=0;a<i.length;a++)i[a]=parseInt(1===i[a].length?i[a]+i[a]:i[a],16);return void 0!==e&&i.push(e),\"rgba(\"+i.join(\",\")+\")\"}},{key:\"getOpacityFromRGBA\",value:function(t){return parseFloat(t.replace(/^.*,(.+)\\)/,\"$1\"))}},{key:\"rgb2hex\",value:function(t){return(t=t.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i))&&4===t.length?\"#\"+(\"0\"+parseInt(t[1],10).toString(16)).slice(-2)+(\"0\"+parseInt(t[2],10).toString(16)).slice(-2)+(\"0\"+parseInt(t[3],10).toString(16)).slice(-2):\"\"}},{key:\"isColorHex\",value:function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)|(^#[0-9A-F]{8}$)/i.test(t)}},{key:\"getPolygonPos\",value:function(t,e){for(var i=[],a=2*Math.PI/e,s=0;s<e;s++){var r={};r.x=t*Math.sin(s*a),r.y=-t*Math.cos(s*a),i.push(r)}return i}},{key:\"polarToCartesian\",value:function(t,e,i,a){var s=(a-90)*Math.PI/180;return{x:t+i*Math.cos(s),y:e+i*Math.sin(s)}}},{key:\"escapeString\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"x\",i=t.toString().slice();return i=i.replace(/[` ~!@#$%^&*()|+\\=?;:'\",.<>{}[\\]\\\\/]/gi,e)}},{key:\"negToZero\",value:function(t){return t<0?0:t}},{key:\"moveIndexInArray\",value:function(t,e,i){if(i>=t.length)for(var a=i-t.length+1;a--;)t.push(void 0);return t.splice(i,0,t.splice(e,1)[0]),t}},{key:\"extractNumber\",value:function(t){return parseFloat(t.replace(/[^\\d.]*/g,\"\"))}},{key:\"findAncestor\",value:function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}},{key:\"setELstyles\",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t.style.key=e[i])}},{key:\"isNumber\",value:function(t){return!isNaN(t)&&parseFloat(Number(t))===t&&!isNaN(parseInt(t,10))}},{key:\"isFloat\",value:function(t){return Number(t)===t&&t%1!=0}},{key:\"isSafari\",value:function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}},{key:\"isFirefox\",value:function(){return navigator.userAgent.toLowerCase().indexOf(\"firefox\")>-1}},{key:\"isIE11\",value:function(){if(-1!==window.navigator.userAgent.indexOf(\"MSIE\")||window.navigator.appVersion.indexOf(\"Trident/\")>-1)return!0}},{key:\"isIE\",value:function(){var t=window.navigator.userAgent,e=t.indexOf(\"MSIE \");if(e>0)return parseInt(t.substring(e+5,t.indexOf(\".\",e)),10);if(t.indexOf(\"Trident/\")>0){var i=t.indexOf(\"rv:\");return parseInt(t.substring(i+3,t.indexOf(\".\",i)),10)}var a=t.indexOf(\"Edge/\");return a>0&&parseInt(t.substring(a+5,t.indexOf(\".\",a)),10)}}]),t}(),b=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.setEasingFunctions()}return r(t,[{key:\"setEasingFunctions\",value:function(){var t;if(!this.w.globals.easing){switch(this.w.config.chart.animations.easing){case\"linear\":t=\"-\";break;case\"easein\":t=\"<\";break;case\"easeout\":t=\">\";break;case\"easeinout\":default:t=\"<>\";break;case\"swing\":t=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1};break;case\"bounce\":t=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};break;case\"elastic\":t=function(t){return t===!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1}}this.w.globals.easing=t}}},{key:\"animateLine\",value:function(t,e,i,a){t.attr(e).animate(a).attr(i)}},{key:\"animateMarker\",value:function(t,e,i,a,s,r){e||(e=0),t.attr({r:e,width:e,height:e}).animate(a,s).attr({r:i,width:i.width,height:i.height}).afterAll((function(){r()}))}},{key:\"animateCircle\",value:function(t,e,i,a,s){t.attr({r:e.r,cx:e.cx,cy:e.cy}).animate(a,s).attr({r:i.r,cx:i.cx,cy:i.cy})}},{key:\"animateRect\",value:function(t,e,i,a,s){t.attr(e).animate(a).attr(i).afterAll((function(){return s()}))}},{key:\"animatePathsGradually\",value:function(t){var e=t.el,i=t.realIndex,a=t.j,s=t.fill,r=t.pathFrom,o=t.pathTo,n=t.speed,l=t.delay,h=this.w,c=0;h.config.chart.animations.animateGradually.enabled&&(c=h.config.chart.animations.animateGradually.delay),h.config.chart.animations.dynamicAnimation.enabled&&h.globals.dataChanged&&\"bar\"!==h.config.chart.type&&(c=0),this.morphSVG(e,i,a,\"line\"!==h.config.chart.type||h.globals.comboCharts?s:\"stroke\",r,o,n,l*c)}},{key:\"showDelayedElements\",value:function(){this.w.globals.delayedElements.forEach((function(t){var e=t.el;e.classList.remove(\"apexcharts-element-hidden\"),e.classList.add(\"apexcharts-hidden-element-shown\")}))}},{key:\"animationCompleted\",value:function(t){var e=this.w;e.globals.animationEnded||(e.globals.animationEnded=!0,this.showDelayedElements(),\"function\"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e}))}},{key:\"morphSVG\",value:function(t,e,i,a,s,r,o,n){var l=this,h=this.w;s||(s=t.attr(\"pathFrom\")),r||(r=t.attr(\"pathTo\"));var c=function(t){return\"radar\"===h.config.chart.type&&(o=1),\"M 0 \".concat(h.globals.gridHeight)};(!s||s.indexOf(\"undefined\")>-1||s.indexOf(\"NaN\")>-1)&&(s=c()),(!r||r.indexOf(\"undefined\")>-1||r.indexOf(\"NaN\")>-1)&&(r=c()),h.globals.shouldAnimate||(o=1),t.plot(s).animate(1,h.globals.easing,n).plot(s).animate(o,h.globals.easing,n).plot(r).afterAll((function(){x.isNumber(i)?i===h.globals.series[h.globals.maxValsInArrayIndex].length-2&&h.globals.shouldAnimate&&l.animationCompleted(t):\"none\"!==a&&h.globals.shouldAnimate&&(!h.globals.comboCharts&&e===h.globals.series.length-1||h.globals.comboCharts)&&l.animationCompleted(t),l.showDelayedElements()}))}}]),t}(),v=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"getDefaultFilter\",value:function(t,e){var i=this.w;t.unfilter(!0),(new window.SVG.Filter).size(\"120%\",\"180%\",\"-5%\",\"-40%\"),\"none\"!==i.config.states.normal.filter?this.applyFilter(t,e,i.config.states.normal.filter.type,i.config.states.normal.filter.value):i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:\"addNormalFilter\",value:function(t,e){var i=this.w;i.config.chart.dropShadow.enabled&&!t.node.classList.contains(\"apexcharts-marker\")&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:\"addLightenFilter\",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:\"linear\",slope:1.5,intercept:r}})})),t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node)}},{key:\"addDarkenFilter\",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:\"linear\",slope:r}})})),t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node)}},{key:\"applyFilter\",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5;switch(i){case\"none\":this.addNormalFilter(t,e);break;case\"lighten\":this.addLightenFilter(t,e,{intensity:a});break;case\"darken\":this.addDarkenFilter(t,e,{intensity:a})}}},{key:\"addShadow\",value:function(t,e,i){var a=i.blur,s=i.top,r=i.left,o=i.color,n=i.opacity,l=t.flood(Array.isArray(o)?o[e]:o,n).composite(t.sourceAlpha,\"in\").offset(r,s).gaussianBlur(a).merge(t.source);return t.blend(t.source,l)}},{key:\"dropShadow\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=e.top,s=e.left,r=e.blur,o=e.color,n=e.opacity,l=e.noUserSpaceOnUse,h=this.w;return t.unfilter(!0),x.isIE()&&\"radialBar\"===h.config.chart.type||(o=Array.isArray(o)?o[i]:o,t.filter((function(t){var e=null;e=x.isSafari()||x.isFirefox()||x.isIE()?t.flood(o,n).composite(t.sourceAlpha,\"in\").offset(s,a).gaussianBlur(r):t.flood(o,n).composite(t.sourceAlpha,\"in\").offset(s,a).gaussianBlur(r).merge(t.source),t.blend(t.source,e)})),l||t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node)),t}},{key:\"setSelectionFilter\",value:function(t,e,i){var a=this.w;if(void 0!==a.globals.selectedDataPoints[e]&&a.globals.selectedDataPoints[e].indexOf(i)>-1){t.node.setAttribute(\"selected\",!0);var s=a.config.states.active.filter;\"none\"!==s&&this.applyFilter(t,e,s.type,s.value)}}},{key:\"_scaleFilterSize\",value:function(t){!function(e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}({width:\"200%\",height:\"200%\",x:\"-50%\",y:\"-50%\"})}}]),t}(),m=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"roundPathCorners\",value:function(t,e){function i(t,e,i){var s=e.x-t.x,r=e.y-t.y,o=Math.sqrt(s*s+r*r);return a(t,e,Math.min(1,i/o))}function a(t,e,i){return{x:t.x+(e.x-t.x)*i,y:t.y+(e.y-t.y)*i}}function s(t,e){t.length>2&&(t[t.length-2]=e.x,t[t.length-1]=e.y)}function r(t){return{x:parseFloat(t[t.length-2]),y:parseFloat(t[t.length-1])}}t.indexOf(\"NaN\")>-1&&(t=\"\");var o=t.split(/[,\\s]/).reduce((function(t,e){var i=e.match(\"([a-zA-Z])(.+)\");return i?(t.push(i[1]),t.push(i[2])):t.push(e),t}),[]).reduce((function(t,e){return parseFloat(e)==e&&t.length?t[t.length-1].push(e):t.push([e]),t}),[]),n=[];if(o.length>1){var l=r(o[0]),h=null;\"Z\"==o[o.length-1][0]&&o[0].length>2&&(h=[\"L\",l.x,l.y],o[o.length-1]=h),n.push(o[0]);for(var c=1;c<o.length;c++){var d=n[n.length-1],g=o[c],u=g==h?o[1]:o[c+1];if(u&&d&&d.length>2&&\"L\"==g[0]&&u.length>2&&\"L\"==u[0]){var p,f,x=r(d),b=r(g),v=r(u);p=i(b,x,e),f=i(b,v,e),s(g,p),g.origPoint=b,n.push(g);var m=a(p,b,.5),y=a(b,f,.5),w=[\"C\",m.x,m.y,y.x,y.y,f.x,f.y];w.origPoint=b,n.push(w)}else n.push(g)}if(h){var k=r(n[n.length-1]);n.push([\"Z\"]),s(n[0],k)}}else n=o;return n.reduce((function(t,e){return t+e.join(\" \")+\" \"}),\"\")}},{key:\"drawLine\",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:\"#a8a8a8\",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:\"butt\";return this.w.globals.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:a,stroke:s,\"stroke-dasharray\":r,\"stroke-width\":o,\"stroke-linecap\":n})}},{key:\"drawRect\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"#fefefe\",o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:null,h=arguments.length>9&&void 0!==arguments[9]?arguments[9]:0,c=this.w.globals.dom.Paper.rect();return c.attr({x:t,y:e,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:o,\"stroke-width\":null!==n?n:0,stroke:null!==l?l:\"none\",\"stroke-dasharray\":h}),c.node.setAttribute(\"fill\",r),c}},{key:\"drawPolygon\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"#e1e1e1\",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"none\";return this.w.globals.dom.Paper.polygon(t).attr({fill:a,stroke:e,\"stroke-width\":i})}},{key:\"drawCircle\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t<0&&(t=0);var i=this.w.globals.dom.Paper.circle(2*t);return null!==e&&i.attr(e),i}},{key:\"drawPath\",value:function(t){var e=t.d,i=void 0===e?\"\":e,a=t.stroke,s=void 0===a?\"#a8a8a8\":a,r=t.strokeWidth,o=void 0===r?1:r,n=t.fill,l=t.fillOpacity,h=void 0===l?1:l,c=t.strokeOpacity,d=void 0===c?1:c,g=t.classes,u=t.strokeLinecap,p=void 0===u?null:u,f=t.strokeDashArray,x=void 0===f?0:f,b=this.w;return null===p&&(p=b.config.stroke.lineCap),(i.indexOf(\"undefined\")>-1||i.indexOf(\"NaN\")>-1)&&(i=\"M 0 \".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:n,\"fill-opacity\":h,stroke:s,\"stroke-opacity\":d,\"stroke-linecap\":p,\"stroke-width\":o,\"stroke-dasharray\":x,class:g})}},{key:\"group\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w.globals.dom.Paper.group();return null!==t&&e.attr(t),e}},{key:\"move\",value:function(t,e){var i=[\"M\",t,e].join(\" \");return i}},{key:\"line\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=null;return null===i?a=[\" L\",t,e].join(\" \"):\"H\"===i?a=[\" H\",t].join(\" \"):\"V\"===i&&(a=[\" V\",e].join(\" \")),a}},{key:\"curve\",value:function(t,e,i,a,s,r){var o=[\"C\",t,e,i,a,s,r].join(\" \");return o}},{key:\"quadraticCurve\",value:function(t,e,i,a){return[\"Q\",t,e,i,a].join(\" \")}},{key:\"arc\",value:function(t,e,i,a,s,r,o){var n=\"A\";arguments.length>7&&void 0!==arguments[7]&&arguments[7]&&(n=\"a\");var l=[n,t,e,i,a,s,r,o].join(\" \");return l}},{key:\"renderPaths\",value:function(t){var i,a=t.j,s=t.realIndex,r=t.pathFrom,o=t.pathTo,n=t.stroke,l=t.strokeWidth,h=t.strokeLinecap,c=t.fill,d=t.animationDelay,g=t.initialSpeed,u=t.dataChangeSpeed,p=t.className,f=t.shouldClipToGrid,x=void 0===f||f,m=t.bindEventsOnPaths,y=void 0===m||m,w=t.drawShadow,k=void 0===w||w,A=this.w,S=new v(this.ctx),C=new b(this.ctx),L=this.w.config.chart.animations.enabled,P=L&&this.w.config.chart.animations.dynamicAnimation.enabled,I=!!(L&&!A.globals.resized||P&&A.globals.dataChanged&&A.globals.shouldAnimate);I?i=r:(i=o,A.globals.animationEnded=!0);var T=A.config.stroke.dashArray,M=0;M=Array.isArray(T)?T[s]:A.config.stroke.dashArray;var X=this.drawPath({d:i,stroke:n,strokeWidth:l,fill:c,fillOpacity:1,classes:p,strokeLinecap:h,strokeDashArray:M});if(X.attr(\"index\",s),x&&X.attr({\"clip-path\":\"url(#gridRectMask\".concat(A.globals.cuid,\")\")}),\"none\"!==A.config.states.normal.filter.type)S.getDefaultFilter(X,s);else if(A.config.chart.dropShadow.enabled&&k&&(!A.config.chart.dropShadow.enabledOnSeries||A.config.chart.dropShadow.enabledOnSeries&&-1!==A.config.chart.dropShadow.enabledOnSeries.indexOf(s))){var z=A.config.chart.dropShadow;S.dropShadow(X,z,s)}y&&(X.node.addEventListener(\"mouseenter\",this.pathMouseEnter.bind(this,X)),X.node.addEventListener(\"mouseleave\",this.pathMouseLeave.bind(this,X)),X.node.addEventListener(\"mousedown\",this.pathMouseDown.bind(this,X))),X.attr({pathTo:o,pathFrom:r});var E={el:X,j:a,realIndex:s,pathFrom:r,pathTo:o,fill:c,strokeWidth:l,delay:d};return!L||A.globals.resized||A.globals.dataChanged?!A.globals.resized&&A.globals.dataChanged||C.showDelayedElements():C.animatePathsGradually(e(e({},E),{},{speed:g})),A.globals.dataChanged&&P&&I&&C.animatePathsGradually(e(e({},E),{},{speed:u})),X}},{key:\"drawPattern\",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"#a8a8a8\",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;return this.w.globals.dom.Paper.pattern(e,i,(function(r){\"horizontalLines\"===t?r.line(0,0,i,0).stroke({color:a,width:s+1}):\"verticalLines\"===t?r.line(0,0,0,e).stroke({color:a,width:s+1}):\"slantedLines\"===t?r.line(0,0,e,i).stroke({color:a,width:s}):\"squares\"===t?r.rect(e,i).fill(\"none\").stroke({color:a,width:s}):\"circles\"===t&&r.circle(e).fill(\"none\").stroke({color:a,width:s})}))}},{key:\"drawGradient\",value:function(t,e,i,a,s){var r,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,h=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,c=this.w;e.length<9&&0===e.indexOf(\"#\")&&(e=x.hexToRgba(e,a)),i.length<9&&0===i.indexOf(\"#\")&&(i=x.hexToRgba(i,s));var d=0,g=1,u=1,p=null;null!==n&&(d=void 0!==n[0]?n[0]/100:0,g=void 0!==n[1]?n[1]/100:1,u=void 0!==n[2]?n[2]/100:1,p=void 0!==n[3]?n[3]/100:null);var f=!(\"donut\"!==c.config.chart.type&&\"pie\"!==c.config.chart.type&&\"polarArea\"!==c.config.chart.type&&\"bubble\"!==c.config.chart.type);if(r=null===l||0===l.length?c.globals.dom.Paper.gradient(f?\"radial\":\"linear\",(function(t){t.at(d,e,a),t.at(g,i,s),t.at(u,i,s),null!==p&&t.at(p,e,a)})):c.globals.dom.Paper.gradient(f?\"radial\":\"linear\",(function(t){(Array.isArray(l[h])?l[h]:l).forEach((function(e){t.at(e.offset/100,e.color,e.opacity)}))})),f){var b=c.globals.gridWidth/2,v=c.globals.gridHeight/2;\"bubble\"!==c.config.chart.type?r.attr({gradientUnits:\"userSpaceOnUse\",cx:b,cy:v,r:o}):r.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else\"vertical\"===t?r.from(0,0).to(0,1):\"diagonal\"===t?r.from(0,0).to(1,1):\"horizontal\"===t?r.from(0,1).to(1,1):\"diagonal2\"===t&&r.from(1,0).to(0,1);return r}},{key:\"getTextBasedOnMaxWidth\",value:function(t){var e=t.text,i=t.maxWidth,a=t.fontSize,s=t.fontFamily,r=this.getTextRects(e,a,s),o=r.width/e.length,n=Math.floor(i/o);return i<r.width?e.slice(0,n-3)+\"...\":e}},{key:\"drawText\",value:function(t){var i=this,a=t.x,s=t.y,r=t.text,o=t.textAnchor,n=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.foreColor,d=t.opacity,g=t.maxWidth,u=t.cssClass,p=void 0===u?\"\":u,f=t.isPlainText,x=void 0===f||f,b=this.w;void 0===r&&(r=\"\");var v=r;o||(o=\"start\"),c&&c.length||(c=b.config.chart.foreColor),l=l||b.config.chart.fontFamily,h=h||\"regular\";var m,y={maxWidth:g,fontSize:n=n||\"11px\",fontFamily:l};return Array.isArray(r)?m=b.globals.dom.Paper.text((function(t){for(var a=0;a<r.length;a++)v=r[a],g&&(v=i.getTextBasedOnMaxWidth(e({text:r[a]},y))),0===a?t.tspan(v):t.tspan(v).newLine()})):(g&&(v=this.getTextBasedOnMaxWidth(e({text:r},y))),m=x?b.globals.dom.Paper.plain(r):b.globals.dom.Paper.text((function(t){return t.tspan(v)}))),m.attr({x:a,y:s,\"text-anchor\":o,\"dominant-baseline\":\"auto\",\"font-size\":n,\"font-family\":l,\"font-weight\":h,fill:c,class:\"apexcharts-text \"+p}),m.node.style.fontFamily=l,m.node.style.opacity=d,m}},{key:\"drawMarker\",value:function(t,e,i){t=t||0;var a=i.pSize||0,s=null;if(\"square\"===i.shape||\"rect\"===i.shape){var r=void 0===i.pRadius?a/2:i.pRadius;null!==e&&a||(a=0,r=0);var o=1.2*a+r,n=this.drawRect(o,o,o,o,r);n.attr({x:t-o/2,y:e-o/2,cx:t,cy:e,class:i.class?i.class:\"\",fill:i.pointFillColor,\"fill-opacity\":i.pointFillOpacity?i.pointFillOpacity:1,stroke:i.pointStrokeColor,\"stroke-width\":i.pointStrokeWidth?i.pointStrokeWidth:0,\"stroke-opacity\":i.pointStrokeOpacity?i.pointStrokeOpacity:1}),s=n}else\"circle\"!==i.shape&&i.shape||(x.isNumber(e)||(a=0,e=0),s=this.drawCircle(a,{cx:t,cy:e,class:i.class?i.class:\"\",stroke:i.pointStrokeColor,fill:i.pointFillColor,\"fill-opacity\":i.pointFillOpacity?i.pointFillOpacity:1,\"stroke-width\":i.pointStrokeWidth?i.pointStrokeWidth:0,\"stroke-opacity\":i.pointStrokeOpacity?i.pointStrokeOpacity:1}));return s}},{key:\"pathMouseEnter\",value:function(t,e){var i=this.w,a=new v(this.ctx),s=parseInt(t.node.getAttribute(\"index\"),10),r=parseInt(t.node.getAttribute(\"j\"),10);if(\"function\"==typeof i.config.chart.events.dataPointMouseEnter&&i.config.chart.events.dataPointMouseEnter(e,this.ctx,{seriesIndex:s,dataPointIndex:r,w:i}),this.ctx.events.fireEvent(\"dataPointMouseEnter\",[e,this.ctx,{seriesIndex:s,dataPointIndex:r,w:i}]),(\"none\"===i.config.states.active.filter.type||\"true\"!==t.node.getAttribute(\"selected\"))&&\"none\"!==i.config.states.hover.filter.type&&!i.globals.isTouchDevice){var o=i.config.states.hover.filter;a.applyFilter(t,s,o.type,o.value)}}},{key:\"pathMouseLeave\",value:function(t,e){var i=this.w,a=new v(this.ctx),s=parseInt(t.node.getAttribute(\"index\"),10),r=parseInt(t.node.getAttribute(\"j\"),10);\"function\"==typeof i.config.chart.events.dataPointMouseLeave&&i.config.chart.events.dataPointMouseLeave(e,this.ctx,{seriesIndex:s,dataPointIndex:r,w:i}),this.ctx.events.fireEvent(\"dataPointMouseLeave\",[e,this.ctx,{seriesIndex:s,dataPointIndex:r,w:i}]),\"none\"!==i.config.states.active.filter.type&&\"true\"===t.node.getAttribute(\"selected\")||\"none\"!==i.config.states.hover.filter.type&&a.getDefaultFilter(t,s)}},{key:\"pathMouseDown\",value:function(t,e){var i=this.w,a=new v(this.ctx),s=parseInt(t.node.getAttribute(\"index\"),10),r=parseInt(t.node.getAttribute(\"j\"),10),o=\"false\";if(\"true\"===t.node.getAttribute(\"selected\")){if(t.node.setAttribute(\"selected\",\"false\"),i.globals.selectedDataPoints[s].indexOf(r)>-1){var n=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(n,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var l=i.globals.dom.Paper.select(\".apexcharts-series path\").members,h=i.globals.dom.Paper.select(\".apexcharts-series circle, .apexcharts-series rect\").members,c=function(t){Array.prototype.forEach.call(t,(function(t){t.node.setAttribute(\"selected\",\"false\"),a.getDefaultFilter(t,s)}))};c(l),c(h)}t.node.setAttribute(\"selected\",\"true\"),o=\"true\",void 0===i.globals.selectedDataPoints[s]&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if(\"true\"===o){var d=i.config.states.active.filter;if(\"none\"!==d)a.applyFilter(t,s,d.type,d.value);else if(\"none\"!==i.config.states.hover.filter&&!i.globals.isTouchDevice){var g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}}else if(\"none\"!==i.config.states.active.filter.type)if(\"none\"===i.config.states.hover.filter.type||i.globals.isTouchDevice)a.getDefaultFilter(t,s);else{g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}\"function\"==typeof i.config.chart.events.dataPointSelection&&i.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),e&&this.ctx.events.fireEvent(\"dataPointSelection\",[e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:\"rotateAroundCenter\",value:function(t){var e={};return t&&\"function\"==typeof t.getBBox&&(e=t.getBBox()),{x:e.x+e.width/2,y:e.y+e.height/2}}},{key:\"getTextRects\",value:function(t,e,i,a){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.w,o=this.drawText({x:-200,y:-200,text:t,textAnchor:\"start\",fontSize:e,fontFamily:i,foreColor:\"#fff\",opacity:0});a&&o.attr(\"transform\",a),r.globals.dom.Paper.add(o);var n=o.bbox();return s||(n=o.node.getBoundingClientRect()),o.remove(),{width:n.width,height:n.height}}},{key:\"placeTextWithEllipsis\",value:function(t,e,i){if(\"function\"==typeof t.getComputedTextLength&&(t.textContent=e,e.length>0&&t.getComputedTextLength()>=i/1.1)){for(var a=e.length-3;a>0;a-=3)if(t.getSubStringLength(0,a)<=i/1.1)return void(t.textContent=e.substring(0,a)+\"...\");t.textContent=\".\"}}}],[{key:\"setAttrs\",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}}]),t}(),y=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"getStackedSeriesTotals\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this.w,i=[];if(0===e.globals.series.length)return i;for(var a=0;a<e.globals.series[e.globals.maxValsInArrayIndex].length;a++){for(var s=0,r=0;r<e.globals.series.length;r++)void 0!==e.globals.series[r][a]&&-1===t.indexOf(r)&&(s+=e.globals.series[r][a]);i.push(s)}return i}},{key:\"getSeriesTotalByIndex\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return null===t?this.w.config.series.reduce((function(t,e){return t+e}),0):this.w.globals.series[t].reduce((function(t,e){return t+e}),0)}},{key:\"isSeriesNull\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return 0===(null===t?this.w.config.series.filter((function(t){return null!==t})):this.w.config.series[t].data.filter((function(t){return null!==t}))).length}},{key:\"seriesHaveSameValues\",value:function(t){return this.w.globals.series[t].every((function(t,e,i){return t===i[0]}))}},{key:\"getCategoryLabels\",value:function(t){var e=this.w,i=t.slice();return e.config.xaxis.convertedCatToNumeric&&(i=t.map((function(t,i){return e.config.xaxis.labels.formatter(t-e.globals.minX+1)}))),i}},{key:\"getLargestSeries\",value:function(){var t=this.w;t.globals.maxValsInArrayIndex=t.globals.series.map((function(t){return t.length})).indexOf(Math.max.apply(Math,t.globals.series.map((function(t){return t.length}))))}},{key:\"getLargestMarkerSize\",value:function(){var t=this.w,e=0;return t.globals.markers.size.forEach((function(t){e=Math.max(e,t)})),t.config.markers.discrete&&t.config.markers.discrete.length&&t.config.markers.discrete.forEach((function(t){e=Math.max(e,t.size)})),e>0&&(e+=t.config.markers.hover.sizeOffset+1),t.globals.markers.largestSize=e,e}},{key:\"getSeriesTotals\",value:function(){var t=this.w;t.globals.seriesTotals=t.globals.series.map((function(t,e){var i=0;if(Array.isArray(t))for(var a=0;a<t.length;a++)i+=t[a];else i+=t;return i}))}},{key:\"getSeriesTotalsXRange\",value:function(t,e){var i=this.w;return i.globals.series.map((function(a,s){for(var r=0,o=0;o<a.length;o++)i.globals.seriesX[s][o]>t&&i.globals.seriesX[s][o]<e&&(r+=a[o]);return r}))}},{key:\"getPercentSeries\",value:function(){var t=this.w;t.globals.seriesPercent=t.globals.series.map((function(e,i){var a=[];if(Array.isArray(e))for(var s=0;s<e.length;s++){var r=t.globals.stackedSeriesTotals[s],o=0;r&&(o=100*e[s]/r),a.push(o)}else{var n=100*e/t.globals.seriesTotals.reduce((function(t,e){return t+e}),0);a.push(n)}return a}))}},{key:\"getCalculatedRatios\",value:function(){var t,e,i,a,s=this.w.globals,r=[],o=0,n=[],l=.1,h=0;if(s.yRange=[],s.isMultipleYAxis)for(var c=0;c<s.minYArr.length;c++)s.yRange.push(Math.abs(s.minYArr[c]-s.maxYArr[c])),n.push(0);else s.yRange.push(Math.abs(s.minY-s.maxY));s.xRange=Math.abs(s.maxX-s.minX),s.zRange=Math.abs(s.maxZ-s.minZ);for(var d=0;d<s.yRange.length;d++)r.push(s.yRange[d]/s.gridHeight);if(e=s.xRange/s.gridWidth,i=Math.abs(s.initialMaxX-s.initialMinX)/s.gridWidth,t=s.yRange/s.gridWidth,a=s.xRange/s.gridHeight,(o=s.zRange/s.gridHeight*16)||(o=1),s.minY!==Number.MIN_VALUE&&0!==Math.abs(s.minY)&&(s.hasNegs=!0),s.isMultipleYAxis){n=[];for(var g=0;g<r.length;g++)n.push(-s.minYArr[g]/r[g])}else n.push(-s.minY/r[0]),s.minY!==Number.MIN_VALUE&&0!==Math.abs(s.minY)&&(l=-s.minY/t,h=s.minX/e);return{yRatio:r,invertedYRatio:t,zRatio:o,xRatio:e,initialXRatio:i,invertedXRatio:a,baseLineInvertedY:l,baseLineY:n,baseLineX:h}}},{key:\"getLogSeries\",value:function(t){var e=this,i=this.w;return i.globals.seriesLog=t.map((function(t,a){return i.config.yaxis[a]&&i.config.yaxis[a].logarithmic?t.map((function(t){return null===t?null:e.getLogVal(i.config.yaxis[a].logBase,t,a)})):t})),i.globals.invalidLogScale?t:i.globals.seriesLog}},{key:\"getBaseLog\",value:function(t,e){return Math.log(e)/Math.log(t)}},{key:\"getLogVal\",value:function(t,e,i){if(0===e)return 0;var a=this.w,s=0===a.globals.minYArr[i]?-1:this.getBaseLog(t,a.globals.minYArr[i]),r=(0===a.globals.maxYArr[i]?0:this.getBaseLog(t,a.globals.maxYArr[i]))-s;return e<1?e/r:(this.getBaseLog(t,e)-s)/r}},{key:\"getLogYRatios\",value:function(t){var e=this,i=this.w,a=this.w.globals;return a.yLogRatio=t.slice(),a.logYRange=a.yRange.map((function(t,s){if(i.config.yaxis[s]&&e.w.config.yaxis[s].logarithmic){var r,o=-Number.MAX_VALUE,n=Number.MIN_VALUE;return a.seriesLog.forEach((function(t,e){t.forEach((function(t){i.config.yaxis[e]&&i.config.yaxis[e].logarithmic&&(o=Math.max(t,o),n=Math.min(t,n))}))})),r=Math.pow(a.yRange[s],Math.abs(n-o)/a.yRange[s]),a.yLogRatio[s]=r/a.gridHeight,r}})),a.invalidLogScale?t.slice():a.yLogRatio}}],[{key:\"checkComboSeries\",value:function(t){var e=!1,i=0,a=0;return t.length&&void 0!==t[0].type&&t.forEach((function(t){\"bar\"!==t.type&&\"column\"!==t.type&&\"candlestick\"!==t.type&&\"boxPlot\"!==t.type||i++,void 0!==t.type&&a++})),a>0&&(e=!0),{comboBarCount:i,comboCharts:e}}},{key:\"extendArrayProps\",value:function(t,e,i){return e.yaxis&&(e=t.extendYAxis(e,i)),e.annotations&&(e.annotations.yaxis&&(e=t.extendYAxisAnnotations(e)),e.annotations.xaxis&&(e=t.extendXAxisAnnotations(e)),e.annotations.points&&(e=t.extendPointAnnotations(e))),e}}]),t}(),w=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e}return r(t,[{key:\"setOrientations\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;if(\"vertical\"===t.label.orientation){var a=null!==e?e:0,s=i.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='\".concat(a,\"']\"));if(null!==s){var r=s.getBoundingClientRect();s.setAttribute(\"x\",parseFloat(s.getAttribute(\"x\"))-r.height+4),\"top\"===t.label.position?s.setAttribute(\"y\",parseFloat(s.getAttribute(\"y\"))+r.width):s.setAttribute(\"y\",parseFloat(s.getAttribute(\"y\"))-r.width);var o=this.annoCtx.graphics.rotateAroundCenter(s),n=o.x,l=o.y;s.setAttribute(\"transform\",\"rotate(-90 \".concat(n,\" \").concat(l,\")\"))}}}},{key:\"addBackgroundToAnno\",value:function(t,e){var i=this.w;if(!t||void 0===e.label.text||void 0!==e.label.text&&!String(e.label.text).trim())return null;var a=i.globals.dom.baseEl.querySelector(\".apexcharts-grid\").getBoundingClientRect(),s=t.getBoundingClientRect(),r=e.label.style.padding.left,o=e.label.style.padding.right,n=e.label.style.padding.top,l=e.label.style.padding.bottom;\"vertical\"===e.label.orientation&&(n=e.label.style.padding.left,l=e.label.style.padding.right,r=e.label.style.padding.top,o=e.label.style.padding.bottom);var h=s.left-a.left-r,c=s.top-a.top-n,d=this.annoCtx.graphics.drawRect(h-i.globals.barPadForNumericAxis,c,s.width+r+o,s.height+n+l,e.label.borderRadius,e.label.style.background,1,e.label.borderWidth,e.label.borderColor,0);return e.id&&d.node.classList.add(e.id),d}},{key:\"annotationsBackground\",value:function(){var t=this,e=this.w,i=function(i,a,s){var r=e.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations .apexcharts-\").concat(s,\"-annotation-label[rel='\").concat(a,\"']\"));if(r){var o=r.parentNode,n=t.addBackgroundToAnno(r,i);n&&(o.insertBefore(n.node,r),i.label.mouseEnter&&n.node.addEventListener(\"mouseenter\",i.label.mouseEnter.bind(t,i)),i.label.mouseLeave&&n.node.addEventListener(\"mouseleave\",i.label.mouseLeave.bind(t,i)),i.label.click&&n.node.addEventListener(\"click\",i.label.click.bind(t,i)))}};e.config.annotations.xaxis.map((function(t,e){i(t,e,\"xaxis\")})),e.config.annotations.yaxis.map((function(t,e){i(t,e,\"yaxis\")})),e.config.annotations.points.map((function(t,e){i(t,e,\"point\")}))}},{key:\"getY1Y2\",value:function(t,e){var i,a=\"y1\"===t?e.y:e.y2,s=this.w;if(this.annoCtx.invertAxis){var r=s.globals.labels.indexOf(a);s.config.xaxis.convertedCatToNumeric&&(r=s.globals.categoryLabels.indexOf(a));var o=s.globals.dom.baseEl.querySelector(\".apexcharts-yaxis-texts-g text:nth-child(\"+(r+1)+\")\");o&&(i=parseFloat(o.getAttribute(\"y\")))}else{var n;if(s.config.yaxis[e.yAxisIndex].logarithmic)n=(a=new y(this.annoCtx.ctx).getLogVal(a,e.yAxisIndex))/s.globals.yLogRatio[e.yAxisIndex];else n=(a-s.globals.minYArr[e.yAxisIndex])/(s.globals.yRange[e.yAxisIndex]/s.globals.gridHeight);i=s.globals.gridHeight-n,!e.marker||void 0!==e.y&&null!==e.y||(i=0),s.config.yaxis[e.yAxisIndex]&&s.config.yaxis[e.yAxisIndex].reversed&&(i=n)}return\"string\"==typeof a&&a.indexOf(\"px\")>-1&&(i=parseFloat(a)),i}},{key:\"getX1X2\",value:function(t,e){var i=this.w,a=this.annoCtx.invertAxis?i.globals.minY:i.globals.minX,s=this.annoCtx.invertAxis?i.globals.maxY:i.globals.maxX,r=this.annoCtx.invertAxis?i.globals.yRange[0]:i.globals.xRange,o=(e.x-a)/(r/i.globals.gridWidth);this.annoCtx.inversedReversedAxis&&(o=(s-e.x)/(r/i.globals.gridWidth)),\"category\"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(o=this.getStringX(e.x));var n=(e.x2-a)/(r/i.globals.gridWidth);return this.annoCtx.inversedReversedAxis&&(n=(s-e.x2)/(r/i.globals.gridWidth)),\"category\"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(n=this.getStringX(e.x2)),void 0!==e.x&&null!==e.x||!e.marker||(o=i.globals.gridWidth),\"x1\"===t&&\"string\"==typeof e.x&&e.x.indexOf(\"px\")>-1&&(o=parseFloat(e.x)),\"x2\"===t&&\"string\"==typeof e.x2&&e.x2.indexOf(\"px\")>-1&&(n=parseFloat(e.x2)),\"x1\"===t?o:n}},{key:\"getStringX\",value:function(t){var e=this.w,i=t;e.config.xaxis.convertedCatToNumeric&&e.globals.categoryLabels.length&&(t=e.globals.categoryLabels.indexOf(t)+1);var a=e.globals.labels.indexOf(t),s=e.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-texts-g text:nth-child(\"+(a+1)+\")\");return s&&(i=parseFloat(s.getAttribute(\"x\"))),i}}]),t}(),k=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.invertAxis=this.annoCtx.invertAxis,this.helpers=new w(this.annoCtx)}return r(t,[{key:\"addXaxisAnnotation\",value:function(t,e,i){var a,s=this.w,r=this.helpers.getX1X2(\"x1\",t),o=t.label.text,n=t.strokeDashArray;if(x.isNumber(r)){if(null===t.x2||void 0===t.x2){var l=this.annoCtx.graphics.drawLine(r+t.offsetX,0+t.offsetY,r+t.offsetX,s.globals.gridHeight+t.offsetY,t.borderColor,n,t.borderWidth);e.appendChild(l.node),t.id&&l.node.classList.add(t.id)}else{if((a=this.helpers.getX1X2(\"x2\",t))<r){var h=r;r=a,a=h}var c=this.annoCtx.graphics.drawRect(r+t.offsetX,0+t.offsetY,a-r,s.globals.gridHeight+t.offsetY,0,t.fillColor,t.opacity,1,t.borderColor,n);c.node.classList.add(\"apexcharts-annotation-rect\"),c.attr(\"clip-path\",\"url(#gridRectMask\".concat(s.globals.cuid,\")\")),e.appendChild(c.node),t.id&&c.node.classList.add(t.id)}var d=this.annoCtx.graphics.getTextRects(o,parseFloat(t.label.style.fontSize)),g=\"top\"===t.label.position?4:\"center\"===t.label.position?s.globals.gridHeight/2+(\"vertical\"===t.label.orientation?d.width/2:0):s.globals.gridHeight,u=this.annoCtx.graphics.drawText({x:r+t.label.offsetX,y:g+t.label.offsetY-(\"vertical\"===t.label.orientation?\"top\"===t.label.position?d.width/2-12:-d.width/2:0),text:o,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:\"apexcharts-xaxis-annotation-label \".concat(t.label.style.cssClass,\" \").concat(t.id?t.id:\"\")});u.attr({rel:i}),e.appendChild(u.node),this.annoCtx.helpers.setOrientations(t,i)}}},{key:\"drawXAxisAnnotations\",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:\"apexcharts-xaxis-annotations\"});return e.config.annotations.xaxis.map((function(e,a){t.addXaxisAnnotation(e,i.node,a)})),i}}]),t}(),A=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.helpers=new w(this.annoCtx)}return r(t,[{key:\"addYaxisAnnotation\",value:function(t,e,i){var a,s=this.w,r=t.strokeDashArray,o=this.helpers.getY1Y2(\"y1\",t),n=t.label.text;if(null===t.y2||void 0===t.y2){var l=this.annoCtx.graphics.drawLine(0+t.offsetX,o+t.offsetY,this._getYAxisAnnotationWidth(t),o+t.offsetY,t.borderColor,r,t.borderWidth);e.appendChild(l.node),t.id&&l.node.classList.add(t.id)}else{if((a=this.helpers.getY1Y2(\"y2\",t))>o){var h=o;o=a,a=h}var c=this.annoCtx.graphics.drawRect(0+t.offsetX,a+t.offsetY,this._getYAxisAnnotationWidth(t),o-a,0,t.fillColor,t.opacity,1,t.borderColor,r);c.node.classList.add(\"apexcharts-annotation-rect\"),c.attr(\"clip-path\",\"url(#gridRectMask\".concat(s.globals.cuid,\")\")),e.appendChild(c.node),t.id&&c.node.classList.add(t.id)}var d=\"right\"===t.label.position?s.globals.gridWidth:\"center\"===t.label.position?s.globals.gridWidth/2:0,g=this.annoCtx.graphics.drawText({x:d+t.label.offsetX,y:(null!=a?a:o)+t.label.offsetY-3,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:\"apexcharts-yaxis-annotation-label \".concat(t.label.style.cssClass,\" \").concat(t.id?t.id:\"\")});g.attr({rel:i}),e.appendChild(g.node)}},{key:\"_getYAxisAnnotationWidth\",value:function(t){var e=this.w;e.globals.gridWidth;return(t.width.indexOf(\"%\")>-1?e.globals.gridWidth*parseInt(t.width,10)/100:parseInt(t.width,10))+t.offsetX}},{key:\"drawYAxisAnnotations\",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:\"apexcharts-yaxis-annotations\"});return e.config.annotations.yaxis.map((function(e,a){t.addYaxisAnnotation(e,i.node,a)})),i}}]),t}(),S=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.helpers=new w(this.annoCtx)}return r(t,[{key:\"addPointAnnotation\",value:function(t,e,i){this.w;var a=this.helpers.getX1X2(\"x1\",t),s=this.helpers.getY1Y2(\"y1\",t);if(x.isNumber(a)){var r={pSize:t.marker.size,pointStrokeWidth:t.marker.strokeWidth,pointFillColor:t.marker.fillColor,pointStrokeColor:t.marker.strokeColor,shape:t.marker.shape,pRadius:t.marker.radius,class:\"apexcharts-point-annotation-marker \".concat(t.marker.cssClass,\" \").concat(t.id?t.id:\"\")},o=this.annoCtx.graphics.drawMarker(a+t.marker.offsetX,s+t.marker.offsetY,r);e.appendChild(o.node);var n=t.label.text?t.label.text:\"\",l=this.annoCtx.graphics.drawText({x:a+t.label.offsetX,y:s+t.label.offsetY-t.marker.size-parseFloat(t.label.style.fontSize)/1.6,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:\"apexcharts-point-annotation-label \".concat(t.label.style.cssClass,\" \").concat(t.id?t.id:\"\")});if(l.attr({rel:i}),e.appendChild(l.node),t.customSVG.SVG){var h=this.annoCtx.graphics.group({class:\"apexcharts-point-annotations-custom-svg \"+t.customSVG.cssClass});h.attr({transform:\"translate(\".concat(a+t.customSVG.offsetX,\", \").concat(s+t.customSVG.offsetY,\")\")}),h.node.innerHTML=t.customSVG.SVG,e.appendChild(h.node)}if(t.image.path){var c=t.image.width?t.image.width:20,d=t.image.height?t.image.height:20;o=this.annoCtx.addImage({x:a+t.image.offsetX-c/2,y:s+t.image.offsetY-d/2,width:c,height:d,path:t.image.path,appendTo:\".apexcharts-point-annotations\"})}t.mouseEnter&&o.node.addEventListener(\"mouseenter\",t.mouseEnter.bind(this,t)),t.mouseLeave&&o.node.addEventListener(\"mouseleave\",t.mouseLeave.bind(this,t)),t.click&&o.node.addEventListener(\"click\",t.click.bind(this,t))}}},{key:\"drawPointAnnotations\",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:\"apexcharts-point-annotations\"});return e.config.annotations.points.map((function(e,a){t.addPointAnnotation(e,i.node,a)})),i}}]),t}();var C={name:\"en\",options:{months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],shortMonths:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],days:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],shortDays:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],toolbar:{exportToSVG:\"Download SVG\",exportToPNG:\"Download PNG\",exportToCSV:\"Download CSV\",menu:\"Menu\",selection:\"Selection\",selectionZoom:\"Selection Zoom\",zoomIn:\"Zoom In\",zoomOut:\"Zoom Out\",pan:\"Panning\",reset:\"Reset Zoom\"}}},L=function(){function t(){a(this,t),this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,logBase:10,tickAmount:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:\"11px\",fontWeight:400,fontFamily:void 0,cssClass:\"\"},formatter:void 0},axisBorder:{show:!1,color:\"#e0e0e0\",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:\"#e0e0e0\",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:\"11px\",fontWeight:900,fontFamily:void 0,cssClass:\"\"}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:\"front\",stroke:{color:\"#b6b6b6\",width:1,dashArray:0}}},this.pointAnnotation={id:void 0,x:0,y:null,yAxisIndex:0,seriesIndex:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,marker:{size:4,fillColor:\"#fff\",strokeWidth:2,strokeColor:\"#333\",shape:\"circle\",offsetX:0,offsetY:0,radius:2,cssClass:\"\"},label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"middle\",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0}},this.yAxisAnnotation={id:void 0,y:0,y2:null,strokeDashArray:1,fillColor:\"#c2c2c2\",borderColor:\"#c2c2c2\",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:\"100%\",yAxisIndex:0,label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"end\",position:\"right\",offsetX:0,offsetY:-3,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={id:void 0,x:0,x2:null,strokeDashArray:1,fillColor:\"#c2c2c2\",borderColor:\"#c2c2c2\",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"middle\",orientation:\"vertical\",position:\"top\",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:\"\",textAnchor:\"start\",foreColor:void 0,fontSize:\"13px\",fontFamily:void 0,fontWeight:400,appendTo:\".apexcharts-annotations\",backgroundColor:\"transparent\",borderColor:\"#c2c2c2\",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}return r(t,[{key:\"init\",value:function(){return{annotations:{yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},chart:{animations:{enabled:!0,easing:\"easeinout\",speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:\"transparent\",locales:[C],defaultLocale:\"en\",dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:\"#000\",opacity:.35},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,mouseLeave:void 0,xAxisLabelClick:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0},foreColor:\"#373d3f\",fontFamily:\"Helvetica, Arial, sans-serif\",height:\"auto\",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,id:void 0,group:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:\"x\",fill:{color:\"#24292e\",opacity:.1},stroke:{width:1,color:\"#24292e\",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0},stacked:!1,stackType:\"normal\",toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:\",\",headerCategory:\"category\",headerValue:\"value\",dateFormatter:function(t){return new Date(t).toDateString()}},png:{filename:void 0},svg:{filename:void 0}},autoSelected:\"zoom\"},type:\"line\",width:\"100%\",zoom:{enabled:!0,type:\"x\",autoScaleYaxis:!1,zoomedArea:{fill:{color:\"#90CAF9\",opacity:.4},stroke:{color:\"#0D47A1\",opacity:.4,width:1}}}},plotOptions:{area:{fillTo:\"origin\"},bar:{horizontal:!1,columnWidth:\"70%\",barHeight:\"70%\",distributed:!1,borderRadius:0,borderRadiusApplication:\"around\",borderRadiusWhenStacked:\"last\",rangeBarOverlap:!0,rangeBarGroupRows:!1,hideZeroBarsWhenGrouped:!1,isDumbbell:!1,dumbbellColors:void 0,isFunnel:!1,isFunnel3d:!0,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:\"top\",maxItems:100,hideOverflowingLabels:!0,orientation:\"horizontal\",total:{enabled:!1,formatter:void 0,offsetX:0,offsetY:0,style:{color:\"#373d3f\",fontSize:\"12px\",fontFamily:void 0,fontWeight:600}}}},bubble:{zScaling:!0,minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:\"#00B746\",downward:\"#EF403C\"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:\"#00E396\",lower:\"#008FFB\"}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:\"50%\",background:\"transparent\",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:\"front\",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:\"#000\",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:\"#f2f2f2\",strokeWidth:\"97%\",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:\"#000\",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:\"16px\",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:function(t){return t}},value:{show:!0,fontSize:\"14px\",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:function(t){return t+\"%\"}},total:{show:!1,label:\"Total\",fontSize:\"16px\",fontWeight:600,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)/t.globals.series.length+\"%\"}}}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:\"65%\",background:\"transparent\",labels:{show:!1,name:{show:!0,fontSize:\"16px\",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:function(t){return t}},value:{show:!0,fontSize:\"20px\",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:function(t){return t}},total:{show:!1,showAlways:!1,label:\"Total\",fontSize:\"16px\",fontWeight:400,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)}}}}},polarArea:{rings:{strokeWidth:1,strokeColor:\"#e8e8e8\"},spokes:{strokeWidth:1,connectorColors:\"#e8e8e8\"}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:\"#e8e8e8\",connectorColors:\"#e8e8e8\",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(t){return null!==t?t:\"\"},textAnchor:\"middle\",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:\"12px\",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:\"#fff\",borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:\"#fff\",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:\"#000\",opacity:.45}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:\"#000\",opacity:.45}},fill:{type:\"solid\",colors:void 0,opacity:.85,gradient:{shade:\"dark\",type:\"horizontal\",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:\"squares\",width:6,height:6,strokeWidth:2}},forecastDataPoints:{count:0,fillOpacity:.5,strokeWidth:void 0,dashArray:4},grid:{show:!0,borderColor:\"#e0e0e0\",strokeDashArray:0,position:\"back\",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:\"bottom\",horizontalAlign:\"center\",inverseOrder:!1,fontSize:\"12px\",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,customLegendItems:[],labels:{colors:void 0,useSeriesColors:!1},markers:{width:12,height:12,strokeWidth:0,fillColors:void 0,strokeColor:\"#fff\",radius:12,customHTML:void 0,offsetX:0,offsetY:0,onClick:void 0},itemMargin:{horizontal:5,vertical:2},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:\"#fff\",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:\"circle\",width:8,height:8,radius:2,offsetX:0,offsetY:0,onClick:void 0,onDblClick:void 0,showNullDataPoints:!0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:\"center\",verticalAlign:\"middle\",offsetX:0,offsetY:0,style:{color:void 0,fontSize:\"14px\",fontFamily:void 0}},responsive:[],series:void 0,states:{normal:{filter:{type:\"none\",value:0}},hover:{filter:{type:\"lighten\",value:.1}},active:{allowMultipleDataPointsSelection:!1,filter:{type:\"darken\",value:.5}}},title:{text:void 0,align:\"left\",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:\"14px\",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:\"left\",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:\"12px\",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:\"smooth\",lineCap:\"butt\",width:2,colors:void 0,dashArray:0,fill:{type:\"solid\",colors:void 0,opacity:.85,gradient:{shade:\"dark\",type:\"horizontal\",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]}}},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:\"light\",cssClass:\"\",style:{fontSize:\"12px\",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:\"dd MMM\",formatter:void 0},y:{formatter:void 0,title:{formatter:function(t){return t?t+\": \":\"\"}}},z:{formatter:void 0,title:\"Size: \"},marker:{show:!0,fillColors:void 0},items:{display:\"flex\"},fixed:{enabled:!1,position:\"topRight\",offsetX:0,offsetY:0}},xaxis:{type:\"category\",categories:[],convertedCatToNumeric:!1,offsetX:0,offsetY:0,overwriteCategories:void 0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:\"12px\",fontWeight:400,fontFamily:void 0,cssClass:\"\"},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:\"yyyy\",month:\"MMM 'yy\",day:\"dd MMM\",hour:\"HH:mm\",minute:\"HH:mm:ss\",second:\"HH:mm:ss\"}},group:{groups:[],style:{colors:[],fontSize:\"12px\",fontWeight:400,fontFamily:void 0,cssClass:\"\"}},axisBorder:{show:!0,color:\"#e0e0e0\",width:\"100%\",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:\"#e0e0e0\",height:6,offsetX:0,offsetY:0},tickAmount:void 0,tickPlacement:\"on\",min:void 0,max:void 0,range:void 0,floating:!1,decimalsInFloat:void 0,position:\"bottom\",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:\"12px\",fontWeight:900,fontFamily:void 0,cssClass:\"\"}},crosshairs:{show:!0,width:1,position:\"back\",opacity:.9,stroke:{color:\"#b6b6b6\",width:1,dashArray:3},fill:{type:\"solid\",color:\"#B1B9C4\",gradient:{colorFrom:\"#D8E3F0\",colorTo:\"#BED1E6\",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.4}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:\"12px\",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:\"light\",palette:\"palette1\",monochrome:{enabled:!1,color:\"#008FFB\",shadeTo:\"light\",shadeIntensity:.65}}}}}]),t}(),P=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.graphics=new m(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new w(this),this.xAxisAnnotations=new k(this),this.yAxisAnnotations=new A(this),this.pointsAnnotations=new S(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return r(t,[{key:\"drawAxesAnnotations\",value:function(){var t=this.w;if(t.globals.axisCharts){for(var e=this.yAxisAnnotations.drawYAxisAnnotations(),i=this.xAxisAnnotations.drawXAxisAnnotations(),a=this.pointsAnnotations.drawPointAnnotations(),s=t.config.chart.animations.enabled,r=[e,i,a],o=[i.node,e.node,a.node],n=0;n<3;n++)t.globals.dom.elGraphical.add(r[n]),!s||t.globals.resized||t.globals.dataChanged||\"scatter\"!==t.config.chart.type&&\"bubble\"!==t.config.chart.type&&t.globals.dataPoints>1&&o[n].classList.add(\"apexcharts-element-hidden\"),t.globals.delayedElements.push({el:o[n],index:0});this.helpers.annotationsBackground()}}},{key:\"drawImageAnnos\",value:function(){var t=this;this.w.config.annotations.images.map((function(e,i){t.addImage(e,i)}))}},{key:\"drawTextAnnos\",value:function(){var t=this;this.w.config.annotations.texts.map((function(e,i){t.addText(e,i)}))}},{key:\"addXaxisAnnotation\",value:function(t,e,i){this.xAxisAnnotations.addXaxisAnnotation(t,e,i)}},{key:\"addYaxisAnnotation\",value:function(t,e,i){this.yAxisAnnotations.addYaxisAnnotation(t,e,i)}},{key:\"addPointAnnotation\",value:function(t,e,i){this.pointsAnnotations.addPointAnnotation(t,e,i)}},{key:\"addText\",value:function(t,e){var i=t.x,a=t.y,s=t.text,r=t.textAnchor,o=t.foreColor,n=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.cssClass,d=t.backgroundColor,g=t.borderWidth,u=t.strokeDashArray,p=t.borderRadius,f=t.borderColor,x=t.appendTo,b=void 0===x?\".apexcharts-annotations\":x,v=t.paddingLeft,m=void 0===v?4:v,y=t.paddingRight,w=void 0===y?4:y,k=t.paddingBottom,A=void 0===k?2:k,S=t.paddingTop,C=void 0===S?2:S,L=this.w,P=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||\"start\",fontSize:n||\"12px\",fontWeight:h||\"regular\",fontFamily:l||L.config.chart.fontFamily,foreColor:o||L.config.chart.foreColor,cssClass:c}),I=L.globals.dom.baseEl.querySelector(b);I&&I.appendChild(P.node);var T=P.bbox();if(s){var M=this.graphics.drawRect(T.x-m,T.y-C,T.width+m+w,T.height+A+C,p,d||\"transparent\",1,g,f,u);I.insertBefore(M.node,P.node)}}},{key:\"addImage\",value:function(t,e){var i=this.w,a=t.path,s=t.x,r=void 0===s?0:s,o=t.y,n=void 0===o?0:o,l=t.width,h=void 0===l?20:l,c=t.height,d=void 0===c?20:c,g=t.appendTo,u=void 0===g?\".apexcharts-annotations\":g,p=i.globals.dom.Paper.image(a);p.size(h,d).move(r,n);var f=i.globals.dom.baseEl.querySelector(u);return f&&f.appendChild(p.node),p}},{key:\"addXaxisAnnotationExternal\",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"xaxis\",contextMethod:i.addXaxisAnnotation}),i}},{key:\"addYaxisAnnotationExternal\",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"yaxis\",contextMethod:i.addYaxisAnnotation}),i}},{key:\"addPointAnnotationExternal\",value:function(t,e,i){return void 0===this.invertAxis&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"point\",contextMethod:i.addPointAnnotation}),i}},{key:\"addAnnotationExternal\",value:function(t){var e=t.params,i=t.pushToMemory,a=t.context,s=t.type,r=t.contextMethod,o=a,n=o.w,l=n.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations\")),h=l.childNodes.length+1,c=new L,d=Object.assign({},\"xaxis\"===s?c.xAxisAnnotation:\"yaxis\"===s?c.yAxisAnnotation:c.pointAnnotation),g=x.extend(d,e);switch(s){case\"xaxis\":this.addXaxisAnnotation(g,l,h);break;case\"yaxis\":this.addYaxisAnnotation(g,l,h);break;case\"point\":this.addPointAnnotation(g,l,h)}var u=n.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations .apexcharts-\").concat(s,\"-annotation-label[rel='\").concat(h,\"']\")),p=this.helpers.addBackgroundToAnno(u,g);return p&&l.insertBefore(p.node,u),i&&n.globals.memory.methodsToExec.push({context:o,id:g.id?g.id:x.randomId(),method:r,label:\"addAnnotation\",params:e}),a}},{key:\"clearAnnotations\",value:function(t){var e=t.w,i=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations\");e.globals.memory.methodsToExec.map((function(t,i){\"addText\"!==t.label&&\"addAnnotation\"!==t.label||e.globals.memory.methodsToExec.splice(i,1)})),i=x.listToArray(i),Array.prototype.forEach.call(i,(function(t){for(;t.firstChild;)t.removeChild(t.firstChild)}))}},{key:\"removeAnnotation\",value:function(t,e){var i=t.w,a=i.globals.dom.baseEl.querySelectorAll(\".\".concat(e));a&&(i.globals.memory.methodsToExec.map((function(t,a){t.id===e&&i.globals.memory.methodsToExec.splice(a,1)})),Array.prototype.forEach.call(a,(function(t){t.parentElement.removeChild(t)})))}}]),t}(),I=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.months31=[1,3,5,7,8,10,12],this.months30=[2,4,6,9,11],this.daysCntOfYear=[0,31,59,90,120,151,181,212,243,273,304,334]}return r(t,[{key:\"isValidDate\",value:function(t){return!isNaN(this.parseDate(t))}},{key:\"getTimeStamp\",value:function(t){return Date.parse(t)?this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toISOString().substr(0,25)).getTime():new Date(t).getTime():t}},{key:\"getDate\",value:function(t){return this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toUTCString()):new Date(t)}},{key:\"parseDate\",value:function(t){var e=Date.parse(t);if(!isNaN(e))return this.getTimeStamp(t);var i=Date.parse(t.replace(/-/g,\"/\").replace(/[a-z]+/gi,\" \"));return i=this.getTimeStamp(i)}},{key:\"parseDateWithTimezone\",value:function(t){return Date.parse(t.replace(/-/g,\"/\").replace(/[a-z]+/gi,\" \"))}},{key:\"formatDate\",value:function(t,e){var i=this.w.globals.locale,a=this.w.config.xaxis.labels.datetimeUTC,s=[\"\\0\"].concat(u(i.months)),r=[\"\\x01\"].concat(u(i.shortMonths)),o=[\"\\x02\"].concat(u(i.days)),n=[\"\\x03\"].concat(u(i.shortDays));function l(t,e){var i=t+\"\";for(e=e||2;i.length<e;)i=\"0\"+i;return i}var h=a?t.getUTCFullYear():t.getFullYear();e=(e=(e=e.replace(/(^|[^\\\\])yyyy+/g,\"$1\"+h)).replace(/(^|[^\\\\])yy/g,\"$1\"+h.toString().substr(2,2))).replace(/(^|[^\\\\])y/g,\"$1\"+h);var c=(a?t.getUTCMonth():t.getMonth())+1;e=(e=(e=(e=e.replace(/(^|[^\\\\])MMMM+/g,\"$1\"+s[0])).replace(/(^|[^\\\\])MMM/g,\"$1\"+r[0])).replace(/(^|[^\\\\])MM/g,\"$1\"+l(c))).replace(/(^|[^\\\\])M/g,\"$1\"+c);var d=a?t.getUTCDate():t.getDate();e=(e=(e=(e=e.replace(/(^|[^\\\\])dddd+/g,\"$1\"+o[0])).replace(/(^|[^\\\\])ddd/g,\"$1\"+n[0])).replace(/(^|[^\\\\])dd/g,\"$1\"+l(d))).replace(/(^|[^\\\\])d/g,\"$1\"+d);var g=a?t.getUTCHours():t.getHours(),p=g>12?g-12:0===g?12:g;e=(e=(e=(e=e.replace(/(^|[^\\\\])HH+/g,\"$1\"+l(g))).replace(/(^|[^\\\\])H/g,\"$1\"+g)).replace(/(^|[^\\\\])hh+/g,\"$1\"+l(p))).replace(/(^|[^\\\\])h/g,\"$1\"+p);var f=a?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\\\])mm+/g,\"$1\"+l(f))).replace(/(^|[^\\\\])m/g,\"$1\"+f);var x=a?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\\\])ss+/g,\"$1\"+l(x))).replace(/(^|[^\\\\])s/g,\"$1\"+x);var b=a?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\\\])fff+/g,\"$1\"+l(b,3)),b=Math.round(b/10),e=e.replace(/(^|[^\\\\])ff/g,\"$1\"+l(b)),b=Math.round(b/10);var v=g<12?\"AM\":\"PM\";e=(e=(e=e.replace(/(^|[^\\\\])f/g,\"$1\"+b)).replace(/(^|[^\\\\])TT+/g,\"$1\"+v)).replace(/(^|[^\\\\])T/g,\"$1\"+v.charAt(0));var m=v.toLowerCase();e=(e=e.replace(/(^|[^\\\\])tt+/g,\"$1\"+m)).replace(/(^|[^\\\\])t/g,\"$1\"+m.charAt(0));var y=-t.getTimezoneOffset(),w=a||!y?\"Z\":y>0?\"+\":\"-\";if(!a){var k=(y=Math.abs(y))%60;w+=l(Math.floor(y/60))+\":\"+l(k)}e=e.replace(/(^|[^\\\\])K/g,\"$1\"+w);var A=(a?t.getUTCDay():t.getDay())+1;return e=(e=(e=(e=(e=e.replace(new RegExp(o[0],\"g\"),o[A])).replace(new RegExp(n[0],\"g\"),n[A])).replace(new RegExp(s[0],\"g\"),s[c])).replace(new RegExp(r[0],\"g\"),r[c])).replace(/\\\\(.)/g,\"$1\")}},{key:\"getTimeUnitsfromTimestamp\",value:function(t,e,i){var a=this.w;void 0!==a.config.xaxis.min&&(t=a.config.xaxis.min),void 0!==a.config.xaxis.max&&(e=a.config.xaxis.max);var s=this.getDate(t),r=this.getDate(e),o=this.formatDate(s,\"yyyy MM dd HH mm ss fff\").split(\" \"),n=this.formatDate(r,\"yyyy MM dd HH mm ss fff\").split(\" \");return{minMillisecond:parseInt(o[6],10),maxMillisecond:parseInt(n[6],10),minSecond:parseInt(o[5],10),maxSecond:parseInt(n[5],10),minMinute:parseInt(o[4],10),maxMinute:parseInt(n[4],10),minHour:parseInt(o[3],10),maxHour:parseInt(n[3],10),minDate:parseInt(o[2],10),maxDate:parseInt(n[2],10),minMonth:parseInt(o[1],10)-1,maxMonth:parseInt(n[1],10)-1,minYear:parseInt(o[0],10),maxYear:parseInt(n[0],10)}}},{key:\"isLeapYear\",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:\"calculcateLastDaysOfMonth\",value:function(t,e,i){return this.determineDaysOfMonths(t,e)-i}},{key:\"determineDaysOfYear\",value:function(t){var e=365;return this.isLeapYear(t)&&(e=366),e}},{key:\"determineRemainingDaysOfYear\",value:function(t,e,i){var a=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear()&&a++,a}},{key:\"determineDaysOfMonths\",value:function(t,e){var i=30;switch(t=x.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}}]),t}(),T=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.tooltipKeyFormat=\"dd MMM\"}return r(t,[{key:\"xLabelFormat\",value:function(t,e,i,a){var s=this.w;if(\"datetime\"===s.config.xaxis.type&&void 0===s.config.xaxis.labels.formatter&&void 0===s.config.tooltip.x.formatter){var r=new I(this.ctx);return r.formatDate(r.getDate(e),s.config.tooltip.x.format)}return t(e,i,a)}},{key:\"defaultGeneralFormatter\",value:function(t){return Array.isArray(t)?t.map((function(t){return t})):t}},{key:\"defaultYFormatter\",value:function(t,e,i){var a=this.w;return x.isNumber(t)&&(t=0!==a.globals.yValueDecimal?t.toFixed(void 0!==e.decimalsInFloat?e.decimalsInFloat:a.globals.yValueDecimal):a.globals.maxYArr[i]-a.globals.minYArr[i]<5?t.toFixed(1):t.toFixed(0)),t}},{key:\"setLabelFormatters\",value:function(){var t=this,e=this.w;return e.globals.xaxisTooltipFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttKeyFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttZFormatter=function(t){return t},e.globals.legendFormatter=function(e){return t.defaultGeneralFormatter(e)},void 0!==e.config.xaxis.labels.formatter?e.globals.xLabelFormatter=e.config.xaxis.labels.formatter:e.globals.xLabelFormatter=function(t){if(x.isNumber(t)){if(!e.config.xaxis.convertedCatToNumeric&&\"numeric\"===e.config.xaxis.type){if(x.isNumber(e.config.xaxis.decimalsInFloat))return t.toFixed(e.config.xaxis.decimalsInFloat);var i=e.globals.maxX-e.globals.minX;return i>0&&i<100?t.toFixed(1):t.toFixed(0)}if(e.globals.isBarHorizontal)if(e.globals.maxY-e.globals.minYArr<4)return t.toFixed(1);return t.toFixed(0)}return t},\"function\"==typeof e.config.tooltip.x.formatter?e.globals.ttKeyFormatter=e.config.tooltip.x.formatter:e.globals.ttKeyFormatter=e.globals.xLabelFormatter,\"function\"==typeof e.config.xaxis.tooltip.formatter&&(e.globals.xaxisTooltipFormatter=e.config.xaxis.tooltip.formatter),(Array.isArray(e.config.tooltip.y)||void 0!==e.config.tooltip.y.formatter)&&(e.globals.ttVal=e.config.tooltip.y),void 0!==e.config.tooltip.z.formatter&&(e.globals.ttZFormatter=e.config.tooltip.z.formatter),void 0!==e.config.legend.formatter&&(e.globals.legendFormatter=e.config.legend.formatter),e.config.yaxis.forEach((function(i,a){void 0!==i.labels.formatter?e.globals.yLabelFormatters[a]=i.labels.formatter:e.globals.yLabelFormatters[a]=function(s){return e.globals.xyCharts?Array.isArray(s)?s.map((function(e){return t.defaultYFormatter(e,i,a)})):t.defaultYFormatter(s,i,a):s}})),e.globals}},{key:\"heatmapLabelFormatters\",value:function(){var t=this.w;if(\"heatmap\"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce((function(t,e){return t.length>e.length?t:e}),0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}]),t}(),M=function(t){var e,i=t.isTimeline,a=t.ctx,s=t.seriesIndex,r=t.dataPointIndex,o=t.y1,n=t.y2,l=t.w,h=l.globals.seriesRangeStart[s][r],c=l.globals.seriesRangeEnd[s][r],d=l.globals.labels[r],g=l.config.series[s].name?l.config.series[s].name:\"\",u=l.globals.ttKeyFormatter,p=l.config.tooltip.y.title.formatter,f={w:l,seriesIndex:s,dataPointIndex:r,start:h,end:c};(\"function\"==typeof p&&(g=p(g,f)),null!==(e=l.config.series[s].data[r])&&void 0!==e&&e.x&&(d=l.config.series[s].data[r].x),i)||\"datetime\"===l.config.xaxis.type&&(d=new T(a).xLabelFormat(l.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new I(a).formatDate,w:l}));\"function\"==typeof u&&(d=u(d,f)),Number.isFinite(o)&&Number.isFinite(n)&&(h=o,c=n);var x=\"\",b=\"\",v=l.globals.colors[s];if(void 0===l.config.tooltip.x.formatter)if(\"datetime\"===l.config.xaxis.type){var m=new I(a);x=m.formatDate(m.getDate(h),l.config.tooltip.x.format),b=m.formatDate(m.getDate(c),l.config.tooltip.x.format)}else x=h,b=c;else x=l.config.tooltip.x.formatter(h),b=l.config.tooltip.x.formatter(c);return{start:h,end:c,startVal:x,endVal:b,ylabel:d,color:v,seriesName:g}},X=function(t){var e=t.color,i=t.seriesName,a=t.ylabel,s=t.start,r=t.end,o=t.seriesIndex,n=t.dataPointIndex,l=t.ctx.tooltip.tooltipLabels.getFormatters(o);s=l.yLbFormatter(s),r=l.yLbFormatter(r);var h=l.yLbFormatter(t.w.globals.series[o][n]),c='<span class=\"value start-value\">\\n '.concat(s,'\\n </span> <span class=\"separator\">-</span> <span class=\"value end-value\">\\n ').concat(r,\"\\n </span>\");return'<div class=\"apexcharts-tooltip-rangebar\"><div> <span class=\"series-name\" style=\"color: '+e+'\">'+(i||\"\")+'</span></div><div> <span class=\"category\">'+a+\": </span> \"+(t.w.globals.comboCharts?\"rangeArea\"===t.w.config.series[o].type||\"rangeBar\"===t.w.config.series[o].type?c:\"<span>\".concat(h,\"</span>\"):c)+\" </div></div>\"},z=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:\"hideYAxis\",value:function(){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text=\"\",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0}},{key:\"line\",value:function(){return{chart:{animations:{easing:\"swing\"}},dataLabels:{enabled:!1},stroke:{width:5,curve:\"straight\"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:\"sparkline\",value:function(t){this.hideYAxis();return x.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:\"bar\",value:function(){return{chart:{stacked:!1,animations:{easing:\"swing\"}},plotOptions:{bar:{dataLabels:{position:\"center\"}}},dataLabels:{style:{colors:[\"#fff\"]},background:{enabled:!1}},stroke:{width:0,lineCap:\"round\"},fill:{opacity:.85},legend:{markers:{shape:\"square\",radius:2,size:8}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:\"between\",crosshairs:{width:\"barWidth\",position:\"back\",fill:{type:\"gradient\"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:\"funnel\",value:function(){return this.hideYAxis(),e(e({},this.bar()),{},{chart:{animations:{easing:\"linear\",speed:800,animateGradually:{enabled:!1}}},plotOptions:{bar:{horizontal:!0,borderRadiusApplication:\"around\",borderRadius:0,dataLabels:{position:\"center\"}}},grid:{show:!1,padding:{left:0,right:0}},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}}})}},{key:\"candlestick\",value:function(){var t=this;return{stroke:{width:1,colors:[\"#333\"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,[\"Open\",\"High\",\"\",\"Low\",\"Close\"],\"candlestick\")}},states:{active:{filter:{type:\"none\"}}},xaxis:{crosshairs:{width:1}}}}},{key:\"boxPlot\",value:function(){var t=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:[\"#24292e\"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,[\"Minimum\",\"Q1\",\"Median\",\"Q3\",\"Maximum\"],\"boxPlot\")}},markers:{size:5,strokeWidth:1,strokeColors:\"#111\"},xaxis:{crosshairs:{width:1}}}}},{key:\"rangeBar\",value:function(){return{chart:{animations:{animateGradually:!1}},stroke:{width:0,lineCap:\"square\"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:\"center\"}}},dataLabels:{enabled:!1,formatter:function(t,e){e.ctx;var i=e.seriesIndex,a=e.dataPointIndex,s=e.w,r=function(){var t=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-t};return s.globals.comboCharts?\"rangeBar\"===s.config.series[i].type||\"rangeArea\"===s.config.series[i].type?r():t:r()},background:{enabled:!1},style:{colors:[\"#fff\"]}},markers:{size:10},tooltip:{shared:!1,followCursor:!0,custom:function(t){return t.w.config.plotOptions&&t.w.config.plotOptions.bar&&t.w.config.plotOptions.bar.horizontal?function(t){var i=M(e(e({},t),{},{isTimeline:!0})),a=i.color,s=i.seriesName,r=i.ylabel,o=i.startVal,n=i.endVal;return X(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t):function(t){var i=M(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return X(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t)}},xaxis:{tickPlacement:\"between\",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:\"dumbbell\",value:function(t){var e,i;return null!==(e=t.plotOptions.bar)&&void 0!==e&&e.barHeight||(t.plotOptions.bar.barHeight=2),null!==(i=t.plotOptions.bar)&&void 0!==i&&i.columnWidth||(t.plotOptions.bar.columnWidth=2),t}},{key:\"area\",value:function(){return{stroke:{width:4,fill:{type:\"solid\",gradient:{inverseColors:!1,shade:\"light\",type:\"vertical\",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}}},fill:{type:\"gradient\",gradient:{inverseColors:!1,shade:\"light\",type:\"vertical\",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:\"rangeArea\",value:function(){return{stroke:{curve:\"straight\",width:0},fill:{type:\"solid\",opacity:.6},markers:{size:0},states:{hover:{filter:{type:\"none\"}},active:{filter:{type:\"none\"}}},tooltip:{intersect:!1,shared:!0,followCursor:!0,custom:function(t){return function(t){var i=M(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return X(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t)}}}}},{key:\"brush\",value:function(t){return x.extend(t,{chart:{toolbar:{autoSelected:\"selection\",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:\"stacked100\",value:function(t){t.dataLabels=t.dataLabels||{},t.dataLabels.formatter=t.dataLabels.formatter||void 0;var e=t.dataLabels.formatter;return t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})),\"bar\"===t.chart.type&&(t.dataLabels.formatter=e||function(t){return\"number\"==typeof t&&t?t.toFixed(0)+\"%\":t}),t}},{key:\"stackedBars\",value:function(){var t=this.bar();return e(e({},t),{},{plotOptions:e(e({},t.plotOptions),{},{bar:e(e({},t.plotOptions.bar),{},{borderRadiusApplication:\"end\",borderRadiusWhenStacked:\"last\"})})})}},{key:\"convertCatToNumeric\",value:function(t){return t.xaxis.convertedCatToNumeric=!0,t}},{key:\"convertCatToNumericXaxis\",value:function(t,e,i){t.xaxis.type=\"numeric\",t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return x.isNumber(t)?Math.floor(t):t};var a=t.xaxis.labels.formatter,s=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return i&&i.length&&(s=i.map((function(t){return Array.isArray(t)?t:String(t)}))),s&&s.length&&(t.xaxis.labels.formatter=function(t){return x.isNumber(t)?a(s[Math.floor(t)-1]):a(t)}),t.xaxis.categories=[],t.labels=[],t.xaxis.tickAmount=t.xaxis.tickAmount||\"dataPoints\",t}},{key:\"bubble\",value:function(){return{dataLabels:{style:{colors:[\"#fff\"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:\"solid\",gradient:{shade:\"light\",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:\"scatter\",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:\"heatmap\",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:[\"#fff\"]}},stroke:{colors:[\"#fff\"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:\"top\",markers:{shape:\"square\",size:10,offsetY:2}},grid:{padding:{right:20}}}}},{key:\"treemap\",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:[\"#fff\"]}},stroke:{show:!0,width:2,colors:[\"#fff\"]},legend:{show:!1},fill:{gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:\"pie\",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},style:{colors:[\"#fff\"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:[\"#fff\"]},fill:{opacity:1,gradient:{shade:\"light\",stops:[0,100]}},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"}}}},{key:\"donut\",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},style:{colors:[\"#fff\"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:[\"#fff\"]},fill:{opacity:1,gradient:{shade:\"light\",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"}}}},{key:\"polarArea\",value:function(){return this.opts.yaxis[0].tickAmount=this.opts.yaxis[0].tickAmount?this.opts.yaxis[0].tickAmount:6,{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"}}}},{key:\"radar\",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:\"11px\"}},stroke:{width:2},markers:{size:3,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1},xaxis:{labels:{formatter:function(t){return t},style:{colors:[\"#a8a8a8\"],fontSize:\"11px\"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:\"radialBar\",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:\"dark\",shadeIntensity:.4,inverseColors:!1,type:\"diagonal2\",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:\"right\"},tooltip:{enabled:!1,fillSeriesColor:!0}}}},{key:\"_getBoxTooltip\",value:function(t,e,i,a,s){var r=t.globals.seriesCandleO[e][i],o=t.globals.seriesCandleH[e][i],n=t.globals.seriesCandleM[e][i],l=t.globals.seriesCandleL[e][i],h=t.globals.seriesCandleC[e][i];return t.config.series[e].type&&t.config.series[e].type!==s?'<div class=\"apexcharts-custom-tooltip\">\\n '.concat(t.config.series[e].name?t.config.series[e].name:\"series-\"+(e+1),\": <strong>\").concat(t.globals.series[e][i],\"</strong>\\n </div>\"):'<div class=\"apexcharts-tooltip-box apexcharts-tooltip-'.concat(t.config.chart.type,'\">')+\"<div>\".concat(a[0],': <span class=\"value\">')+r+\"</span></div>\"+\"<div>\".concat(a[1],': <span class=\"value\">')+o+\"</span></div>\"+(n?\"<div>\".concat(a[2],': <span class=\"value\">')+n+\"</span></div>\":\"\")+\"<div>\".concat(a[3],': <span class=\"value\">')+l+\"</span></div>\"+\"<div>\".concat(a[4],': <span class=\"value\">')+h+\"</span></div></div>\"}}]),t}(),E=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:\"init\",value:function(t){var e=t.responsiveOverride,a=this.opts,s=new L,r=new z(a);this.chartType=a.chart.type,a=this.extendYAxis(a),a=this.extendAnnotations(a);var o=s.init(),n={};if(a&&\"object\"===i(a)){var l,h,c,d,g,u,p,f,b={};b=-1!==[\"line\",\"area\",\"bar\",\"candlestick\",\"boxPlot\",\"rangeBar\",\"rangeArea\",\"bubble\",\"scatter\",\"heatmap\",\"treemap\",\"pie\",\"polarArea\",\"donut\",\"radar\",\"radialBar\"].indexOf(a.chart.type)?r[a.chart.type]():r.line(),null!==(l=a.plotOptions)&&void 0!==l&&null!==(h=l.bar)&&void 0!==h&&h.isFunnel&&(b=r.funnel()),a.chart.stacked&&\"bar\"===a.chart.type&&(b=r.stackedBars()),null!==(c=a.chart.brush)&&void 0!==c&&c.enabled&&(b=r.brush(b)),a.chart.stacked&&\"100%\"===a.chart.stackType&&(a=r.stacked100(a)),null!==(d=a.plotOptions)&&void 0!==d&&null!==(g=d.bar)&&void 0!==g&&g.isDumbbell&&(a=r.dumbbell(a)),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(a),a.xaxis=a.xaxis||window.Apex.xaxis||{},e||(a.xaxis.convertedCatToNumeric=!1),(null!==(u=(a=this.checkForCatToNumericXAxis(this.chartType,b,a)).chart.sparkline)&&void 0!==u&&u.enabled||null!==(p=window.Apex.chart)&&void 0!==p&&null!==(f=p.sparkline)&&void 0!==f&&f.enabled)&&(b=r.sparkline(b)),n=x.extend(o,b)}var v=x.extend(n,window.Apex);return o=x.extend(v,a),o=this.handleUserInputErrors(o)}},{key:\"checkForCatToNumericXAxis\",value:function(t,e,i){var a,s,r=new z(i),o=(\"bar\"===t||\"boxPlot\"===t)&&(null===(a=i.plotOptions)||void 0===a||null===(s=a.bar)||void 0===s?void 0:s.horizontal),n=\"pie\"===t||\"polarArea\"===t||\"donut\"===t||\"radar\"===t||\"radialBar\"===t||\"heatmap\"===t,l=\"datetime\"!==i.xaxis.type&&\"numeric\"!==i.xaxis.type,h=i.xaxis.tickPlacement?i.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return o||n||!l||\"between\"===h||(i=r.convertCatToNumeric(i)),i}},{key:\"extendYAxis\",value:function(t,e){var i=new L;(void 0===t.yaxis||!t.yaxis||Array.isArray(t.yaxis)&&0===t.yaxis.length)&&(t.yaxis={}),t.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(t.yaxis=x.extend(t.yaxis,window.Apex.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[x.extend(i.yAxis,t.yaxis)]:t.yaxis=x.extendArray(t.yaxis,i.yAxis);var a=!1;t.yaxis.forEach((function(t){t.logarithmic&&(a=!0)}));var s=t.series;return e&&!s&&(s=e.config.series),a&&s.length!==t.yaxis.length&&s.length&&(t.yaxis=s.map((function(e,a){if(e.name||(s[a].name=\"series-\".concat(a+1)),t.yaxis[a])return t.yaxis[a].seriesName=s[a].name,t.yaxis[a];var r=x.extend(i.yAxis,t.yaxis[0]);return r.show=!1,r}))),a&&s.length>1&&s.length!==t.yaxis.length&&console.warn(\"A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both.\"),t}},{key:\"extendAnnotations\",value:function(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),t=this.extendPointAnnotations(t)}},{key:\"extendYAxisAnnotations\",value:function(t){var e=new L;return t.annotations.yaxis=x.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}},{key:\"extendXAxisAnnotations\",value:function(t){var e=new L;return t.annotations.xaxis=x.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}},{key:\"extendPointAnnotations\",value:function(t){var e=new L;return t.annotations.points=x.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}},{key:\"checkForDarkTheme\",value:function(t){t.theme&&\"dark\"===t.theme.mode&&(t.tooltip||(t.tooltip={}),\"light\"!==t.tooltip.theme&&(t.tooltip.theme=\"dark\"),t.chart.foreColor||(t.chart.foreColor=\"#f6f7f8\"),t.chart.background||(t.chart.background=\"#424242\"),t.theme.palette||(t.theme.palette=\"palette4\"))}},{key:\"handleUserInputErrors\",value:function(t){var e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error(\"tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.\");if(\"bar\"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error(\"Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false\");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return\"bar\"!==e.chart.type&&\"rangeBar\"!==e.chart.type||e.tooltip.shared&&\"barWidth\"===e.xaxis.crosshairs.width&&e.series.length>1&&(e.xaxis.crosshairs.width=\"tickWidth\"),\"candlestick\"!==e.chart.type&&\"boxPlot\"!==e.chart.type||e.yaxis[0].reversed&&(console.warn(\"Reversed y-axis in \".concat(e.chart.type,\" chart is not supported.\")),e.yaxis[0].reversed=!1),e}}]),t}(),Y=function(){function t(){a(this,t)}return r(t,[{key:\"initGlobalVars\",value:function(t){t.series=[],t.seriesCandleO=[],t.seriesCandleH=[],t.seriesCandleM=[],t.seriesCandleL=[],t.seriesCandleC=[],t.seriesRangeStart=[],t.seriesRangeEnd=[],t.seriesRange=[],t.seriesPercent=[],t.seriesGoals=[],t.seriesX=[],t.seriesZ=[],t.seriesNames=[],t.seriesTotals=[],t.seriesLog=[],t.seriesColors=[],t.stackedSeriesTotals=[],t.seriesXvalues=[],t.seriesYvalues=[],t.labels=[],t.hasXaxisGroups=!1,t.groups=[],t.hasSeriesGroups=!1,t.seriesGroups=[],t.categoryLabels=[],t.timescaleLabels=[],t.noLabelsProvided=!1,t.resizeTimer=null,t.selectionResizeTimer=null,t.delayedElements=[],t.pointsArray=[],t.dataLabelsRects=[],t.isXNumeric=!1,t.skipLastTimelinelabel=!1,t.skipFirstTimelinelabel=!1,t.isDataXYZ=!1,t.isMultiLineX=!1,t.isMultipleYAxis=!1,t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE,t.minYArr=[],t.maxYArr=[],t.maxX=-Number.MAX_VALUE,t.minX=Number.MAX_VALUE,t.initialMaxX=-Number.MAX_VALUE,t.initialMinX=Number.MAX_VALUE,t.maxDate=0,t.minDate=Number.MAX_VALUE,t.minZ=Number.MAX_VALUE,t.maxZ=-Number.MAX_VALUE,t.minXDiff=Number.MAX_VALUE,t.yAxisScale=[],t.xAxisScale=null,t.xAxisTicksPositions=[],t.yLabelsCoords=[],t.yTitleCoords=[],t.barPadForNumericAxis=0,t.padHorizontal=0,t.xRange=0,t.yRange=[],t.zRange=0,t.dataPoints=0,t.xTickAmount=0}},{key:\"globalVars\",value:function(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:\"ontouchstart\"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],goldenPadding:35,invalidLogScale:!1,ignoreYAxisIndexes:[],yAxisSameScaleIndices:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:\"zoom\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:\"pan\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:\"selection\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:\"http://www.w3.org/2000/svg\",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisGroupLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null}}},{key:\"init\",value:function(t){var e=this.globalVars(t);return this.initGlobalVars(e),e.initialConfig=x.extend({},t),e.initialSeries=x.clone(t.series),e.lastXAxis=x.clone(e.initialConfig.xaxis),e.lastYAxis=x.clone(e.initialConfig.yaxis),e}}]),t}(),F=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:\"init\",value:function(){var t=new E(this.opts).init({responsiveOverride:!1});return{config:t,globals:(new Y).init(t)}}}]),t}(),R=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.opts=null,this.seriesIndex=0}return r(t,[{key:\"clippedImgArea\",value:function(t){var e=this.w,i=e.config,a=parseInt(e.globals.gridWidth,10),s=parseInt(e.globals.gridHeight,10),r=a>s?a:s,o=t.image,n=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(n=i.fill.image.width+1,l=i.fill.image.height):(n=r+1,l=r):(n=t.width,l=t.height);var h=document.createElementNS(e.globals.SVGNS,\"pattern\");m.setAttrs(h,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:\"userSpaceOnUse\",width:n+\"px\",height:l+\"px\"});var c=document.createElementNS(e.globals.SVGNS,\"image\");h.appendChild(c),c.setAttributeNS(window.SVG.xlink,\"href\",o),m.setAttrs(c,{x:0,y:0,preserveAspectRatio:\"none\",width:n+\"px\",height:l+\"px\"}),c.style.opacity=t.opacity,e.globals.dom.elDefs.node.appendChild(h)}},{key:\"getSeriesIndex\",value:function(t){var e=this.w,i=e.config.chart.type;return(\"bar\"===i||\"rangeBar\"===i)&&e.config.plotOptions.bar.distributed||\"heatmap\"===i||\"treemap\"===i?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.globals.series.length,this.seriesIndex}},{key:\"fillPath\",value:function(t){var e=this.w;this.opts=t;var i,a,s,r=this.w.config;this.seriesIndex=this.getSeriesIndex(t);var o=this.getFillColors()[this.seriesIndex];void 0!==e.globals.seriesColors[this.seriesIndex]&&(o=e.globals.seriesColors[this.seriesIndex]),\"function\"==typeof o&&(o=o({seriesIndex:this.seriesIndex,dataPointIndex:t.dataPointIndex,value:t.value,w:e}));var n=t.fillType?t.fillType:this.getFillType(this.seriesIndex),l=Array.isArray(r.fill.opacity)?r.fill.opacity[this.seriesIndex]:r.fill.opacity;t.color&&(o=t.color);var h=o;if(-1===o.indexOf(\"rgb\")?o.length<9&&(h=x.hexToRgba(o,l)):o.indexOf(\"rgba\")>-1&&(l=x.getOpacityFromRGBA(o)),t.opacity&&(l=t.opacity),\"pattern\"===n&&(a=this.handlePatternFill({fillConfig:t.fillConfig,patternFill:a,fillColor:o,fillOpacity:l,defaultColor:h})),\"gradient\"===n&&(s=this.handleGradientFill({fillConfig:t.fillConfig,fillColor:o,fillOpacity:l,i:this.seriesIndex})),\"image\"===n){var c=r.fill.image.src,d=t.patternID?t.patternID:\"\";this.clippedImgArea({opacity:l,image:Array.isArray(c)?t.seriesNumber<c.length?c[t.seriesNumber]:c[0]:c,width:t.width?t.width:void 0,height:t.height?t.height:void 0,patternUnits:t.patternUnits,patternID:\"pattern\".concat(e.globals.cuid).concat(t.seriesNumber+1).concat(d)}),i=\"url(#pattern\".concat(e.globals.cuid).concat(t.seriesNumber+1).concat(d,\")\")}else i=\"gradient\"===n?s:\"pattern\"===n?a:h;return t.solid&&(i=h),i}},{key:\"getFillType\",value:function(t){var e=this.w;return Array.isArray(e.config.fill.type)?e.config.fill.type[t]:e.config.fill.type}},{key:\"getFillColors\",value:function(){var t=this.w,e=t.config,i=this.opts,a=[];return t.globals.comboCharts?\"line\"===t.config.series[this.seriesIndex].type?Array.isArray(t.globals.stroke.colors)?a=t.globals.stroke.colors:a.push(t.globals.stroke.colors):Array.isArray(t.globals.fill.colors)?a=t.globals.fill.colors:a.push(t.globals.fill.colors):\"line\"===e.chart.type?Array.isArray(t.globals.stroke.colors)?a=t.globals.stroke.colors:a.push(t.globals.stroke.colors):Array.isArray(t.globals.fill.colors)?a=t.globals.fill.colors:a.push(t.globals.fill.colors),void 0!==i.fillColors&&(a=[],Array.isArray(i.fillColors)?a=i.fillColors.slice():a.push(i.fillColors)),a}},{key:\"handlePatternFill\",value:function(t){var e=t.fillConfig,i=t.patternFill,a=t.fillColor,s=t.fillOpacity,r=t.defaultColor,o=this.w.config.fill;e&&(o=e);var n=this.opts,l=new m(this.ctx),h=Array.isArray(o.pattern.strokeWidth)?o.pattern.strokeWidth[this.seriesIndex]:o.pattern.strokeWidth,c=a;Array.isArray(o.pattern.style)?i=void 0!==o.pattern.style[n.seriesNumber]?l.drawPattern(o.pattern.style[n.seriesNumber],o.pattern.width,o.pattern.height,c,h,s):r:i=l.drawPattern(o.pattern.style,o.pattern.width,o.pattern.height,c,h,s);return i}},{key:\"handleGradientFill\",value:function(t){var i=t.fillColor,a=t.fillOpacity,s=t.fillConfig,r=t.i,o=this.w.config.fill;s&&(o=e(e({},o),s));var n,l=this.opts,h=new m(this.ctx),c=new x,d=o.gradient.type,g=i,u=void 0===o.gradient.opacityFrom?a:Array.isArray(o.gradient.opacityFrom)?o.gradient.opacityFrom[r]:o.gradient.opacityFrom;g.indexOf(\"rgba\")>-1&&(u=x.getOpacityFromRGBA(g));var p=void 0===o.gradient.opacityTo?a:Array.isArray(o.gradient.opacityTo)?o.gradient.opacityTo[r]:o.gradient.opacityTo;if(void 0===o.gradient.gradientToColors||0===o.gradient.gradientToColors.length)n=\"dark\"===o.gradient.shade?c.shadeColor(-1*parseFloat(o.gradient.shadeIntensity),i.indexOf(\"rgb\")>-1?x.rgb2hex(i):i):c.shadeColor(parseFloat(o.gradient.shadeIntensity),i.indexOf(\"rgb\")>-1?x.rgb2hex(i):i);else if(o.gradient.gradientToColors[l.seriesNumber]){var f=o.gradient.gradientToColors[l.seriesNumber];n=f,f.indexOf(\"rgba\")>-1&&(p=x.getOpacityFromRGBA(f))}else n=i;if(o.gradient.gradientFrom&&(g=o.gradient.gradientFrom),o.gradient.gradientTo&&(n=o.gradient.gradientTo),o.gradient.inverseColors){var b=g;g=n,n=b}return g.indexOf(\"rgb\")>-1&&(g=x.rgb2hex(g)),n.indexOf(\"rgb\")>-1&&(n=x.rgb2hex(n)),h.drawGradient(d,g,n,u,p,l.size,o.gradient.stops,o.gradient.colorStops,r)}}]),t}(),H=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"setGlobalMarkerSize\",value:function(){var t=this.w;if(t.globals.markers.size=Array.isArray(t.config.markers.size)?t.config.markers.size:[t.config.markers.size],t.globals.markers.size.length>0){if(t.globals.markers.size.length<t.globals.series.length+1)for(var e=0;e<=t.globals.series.length;e++)void 0===t.globals.markers.size[e]&&t.globals.markers.size.push(t.globals.markers.size[0])}else t.globals.markers.size=t.config.series.map((function(e){return t.config.markers.size}))}},{key:\"plotChartMarkers\",value:function(t,e,i,a){var s,r=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=this.w,n=e,l=t,h=null,c=new m(this.ctx),d=o.config.markers.discrete&&o.config.markers.discrete.length;if((o.globals.markers.size[e]>0||r||d)&&(h=c.group({class:r||d?\"\":\"apexcharts-series-markers\"})).attr(\"clip-path\",\"url(#gridRectMarkerMask\".concat(o.globals.cuid,\")\")),Array.isArray(l.x))for(var g=0;g<l.x.length;g++){var u=i;1===i&&0===g&&(u=0),1===i&&1===g&&(u=1);var p=\"apexcharts-marker\";if(\"line\"!==o.config.chart.type&&\"area\"!==o.config.chart.type||o.globals.comboCharts||o.config.tooltip.intersect||(p+=\" no-pointer-events\"),(Array.isArray(o.config.markers.size)?o.globals.markers.size[e]>0:o.config.markers.size>0)||r||d){x.isNumber(l.y[g])?p+=\" w\".concat(x.randomId()):p=\"apexcharts-nullpoint\";var f=this.getMarkerConfig({cssClass:p,seriesIndex:e,dataPointIndex:u});o.config.series[n].data[u]&&(o.config.series[n].data[u].fillColor&&(f.pointFillColor=o.config.series[n].data[u].fillColor),o.config.series[n].data[u].strokeColor&&(f.pointStrokeColor=o.config.series[n].data[u].strokeColor)),a&&(f.pSize=a),(l.x[g]<0||l.x[g]>o.globals.gridWidth||l.y[g]<0||l.y[g]>o.globals.gridHeight)&&(f.pSize=0),(s=c.drawMarker(l.x[g],l.y[g],f)).attr(\"rel\",u),s.attr(\"j\",u),s.attr(\"index\",e),s.node.setAttribute(\"default-marker-size\",f.pSize),new v(this.ctx).setSelectionFilter(s,e,u),this.addEvents(s),h&&h.add(s)}else void 0===o.globals.pointsArray[e]&&(o.globals.pointsArray[e]=[]),o.globals.pointsArray[e].push([l.x[g],l.y[g]])}return h}},{key:\"getMarkerConfig\",value:function(t){var e=t.cssClass,i=t.seriesIndex,a=t.dataPointIndex,s=void 0===a?null:a,r=t.finishRadius,o=void 0===r?null:r,n=this.w,l=this.getMarkerStyle(i),h=n.globals.markers.size[i],c=n.config.markers;return null!==s&&c.discrete.length&&c.discrete.map((function(t){t.seriesIndex===i&&t.dataPointIndex===s&&(l.pointStrokeColor=t.strokeColor,l.pointFillColor=t.fillColor,h=t.size,l.pointShape=t.shape)})),{pSize:null===o?h:o,pRadius:c.radius,width:Array.isArray(c.width)?c.width[i]:c.width,height:Array.isArray(c.height)?c.height[i]:c.height,pointStrokeWidth:Array.isArray(c.strokeWidth)?c.strokeWidth[i]:c.strokeWidth,pointStrokeColor:l.pointStrokeColor,pointFillColor:l.pointFillColor,shape:l.pointShape||(Array.isArray(c.shape)?c.shape[i]:c.shape),class:e,pointStrokeOpacity:Array.isArray(c.strokeOpacity)?c.strokeOpacity[i]:c.strokeOpacity,pointStrokeDashArray:Array.isArray(c.strokeDashArray)?c.strokeDashArray[i]:c.strokeDashArray,pointFillOpacity:Array.isArray(c.fillOpacity)?c.fillOpacity[i]:c.fillOpacity,seriesIndex:i}}},{key:\"addEvents\",value:function(t){var e=this.w,i=new m(this.ctx);t.node.addEventListener(\"mouseenter\",i.pathMouseEnter.bind(this.ctx,t)),t.node.addEventListener(\"mouseleave\",i.pathMouseLeave.bind(this.ctx,t)),t.node.addEventListener(\"mousedown\",i.pathMouseDown.bind(this.ctx,t)),t.node.addEventListener(\"click\",e.config.markers.onClick),t.node.addEventListener(\"dblclick\",e.config.markers.onDblClick),t.node.addEventListener(\"touchstart\",i.pathMouseDown.bind(this.ctx,t),{passive:!0})}},{key:\"getMarkerStyle\",value:function(t){var e=this.w,i=e.globals.markers.colors,a=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[t]:a,pointFillColor:Array.isArray(i)?i[t]:i}}}]),t}(),D=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled}return r(t,[{key:\"draw\",value:function(t,e,i){var a=this.w,s=new m(this.ctx),r=i.realIndex,o=i.pointsPos,n=i.zRatio,l=i.elParent,h=s.group({class:\"apexcharts-series-markers apexcharts-series-\".concat(a.config.chart.type)});if(h.attr(\"clip-path\",\"url(#gridRectMarkerMask\".concat(a.globals.cuid,\")\")),Array.isArray(o.x))for(var c=0;c<o.x.length;c++){var d=e+1,g=!0;0===e&&0===c&&(d=0),0===e&&1===c&&(d=1);var u=0,p=a.globals.markers.size[r];if(n!==1/0){var f=a.config.plotOptions.bubble;p=a.globals.seriesZ[r][d],f.zScaling&&(p/=n),f.minBubbleRadius&&p<f.minBubbleRadius&&(p=f.minBubbleRadius),f.maxBubbleRadius&&p>f.maxBubbleRadius&&(p=f.maxBubbleRadius)}a.config.chart.animations.enabled||(u=p);var x=o.x[c],b=o.y[c];if(u=u||0,null!==b&&void 0!==a.globals.series[r][d]||(g=!1),g){var v=this.drawPoint(x,b,u,p,r,d,e);h.add(v)}l.add(h)}}},{key:\"drawPoint\",value:function(t,e,i,a,s,r,o){var n=this.w,l=s,h=new b(this.ctx),c=new v(this.ctx),d=new R(this.ctx),g=new H(this.ctx),u=new m(this.ctx),p=g.getMarkerConfig({cssClass:\"apexcharts-marker\",seriesIndex:l,dataPointIndex:r,finishRadius:\"bubble\"===n.config.chart.type||n.globals.comboCharts&&n.config.series[s]&&\"bubble\"===n.config.series[s].type?a:null});a=p.pSize;var f,x=d.fillPath({seriesNumber:s,dataPointIndex:r,color:p.pointFillColor,patternUnits:\"objectBoundingBox\",value:n.globals.series[s][o]});if(\"circle\"===p.shape?f=u.drawCircle(i):\"square\"!==p.shape&&\"rect\"!==p.shape||(f=u.drawRect(0,0,p.width-p.pointStrokeWidth/2,p.height-p.pointStrokeWidth/2,p.pRadius)),n.config.series[l].data[r]&&n.config.series[l].data[r].fillColor&&(x=n.config.series[l].data[r].fillColor),f.attr({x:t-p.width/2-p.pointStrokeWidth/2,y:e-p.height/2-p.pointStrokeWidth/2,cx:t,cy:e,fill:x,\"fill-opacity\":p.pointFillOpacity,stroke:p.pointStrokeColor,r:a,\"stroke-width\":p.pointStrokeWidth,\"stroke-dasharray\":p.pointStrokeDashArray,\"stroke-opacity\":p.pointStrokeOpacity}),n.config.chart.dropShadow.enabled){var y=n.config.chart.dropShadow;c.dropShadow(f,y,s)}if(!this.initialAnim||n.globals.dataChanged||n.globals.resized)n.globals.animationEnded=!0;else{var w=n.config.chart.animations.speed;h.animateMarker(f,0,\"circle\"===p.shape?a:{width:p.width,height:p.height},w,n.globals.easing,(function(){window.setTimeout((function(){h.animationCompleted(f)}),100)}))}if(n.globals.dataChanged&&\"circle\"===p.shape)if(this.dynamicAnim){var k,A,S,C,L=n.config.chart.animations.dynamicAnimation.speed;null!=(C=n.globals.previousPaths[s]&&n.globals.previousPaths[s][o])&&(k=C.x,A=C.y,S=void 0!==C.r?C.r:a);for(var P=0;P<n.globals.collapsedSeries.length;P++)n.globals.collapsedSeries[P].index===s&&(L=1,a=0);0===t&&0===e&&(a=0),h.animateCircle(f,{cx:k,cy:A,r:S},{cx:t,cy:e,r:a},L,n.globals.easing)}else f.attr({r:a});return f.attr({rel:r,j:r,index:s,\"default-marker-size\":a}),c.setSelectionFilter(f,s,r),g.addEvents(f),f.node.classList.add(\"apexcharts-marker\"),f}},{key:\"centerTextInBubble\",value:function(t){var e=this.w;return{y:t+=parseInt(e.config.dataLabels.style.fontSize,10)/4}}}]),t}(),O=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"dataLabelsCorrection\",value:function(t,e,i,a,s,r,o){var n=this.w,l=!1,h=new m(this.ctx).getTextRects(i,o),c=h.width,d=h.height;e<0&&(e=0),e>n.globals.gridHeight+d&&(e=n.globals.gridHeight+d/2),void 0===n.globals.dataLabelsRects[a]&&(n.globals.dataLabelsRects[a]=[]),n.globals.dataLabelsRects[a].push({x:t,y:e,width:c,height:d});var g=n.globals.dataLabelsRects[a].length-2,u=void 0!==n.globals.lastDrawnDataLabelsIndexes[a]?n.globals.lastDrawnDataLabelsIndexes[a][n.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(void 0!==n.globals.dataLabelsRects[a][g]){var p=n.globals.dataLabelsRects[a][u];(t>p.x+p.width+2||e>p.y+p.height+2||t+c<p.x)&&(l=!0)}return(0===s||r)&&(l=!0),{x:t,y:e,textRects:h,drawnextLabel:l}}},{key:\"drawDataLabel\",value:function(t){var e=this,i=t.type,a=t.pos,s=t.i,r=t.j,o=t.isRangeStart,n=t.strokeWidth,l=void 0===n?2:n,h=this.w,c=new m(this.ctx),d=h.config.dataLabels,g=0,u=0,p=r,f=null;if(!d.enabled||!Array.isArray(a.x))return f;f=c.group({class:\"apexcharts-data-labels\"});for(var x=0;x<a.x.length;x++)if(g=a.x[x]+d.offsetX,u=a.y[x]+d.offsetY+l,!isNaN(g)){1===r&&0===x&&(p=0),1===r&&1===x&&(p=1);var b=h.globals.series[s][p];\"rangeArea\"===i&&(b=o?h.globals.seriesRangeStart[s][p]:h.globals.seriesRangeEnd[s][p]);var v=\"\",y=function(t){return h.config.dataLabels.formatter(t,{ctx:e.ctx,seriesIndex:s,dataPointIndex:p,w:h})};if(\"bubble\"===h.config.chart.type)v=y(b=h.globals.seriesZ[s][p]),u=a.y[x],u=new D(this.ctx).centerTextInBubble(u,s,p).y;else void 0!==b&&(v=y(b));this.plotDataLabelsText({x:g,y:u,text:v,i:s,j:p,parent:f,offsetCorrection:!0,dataLabelsConfig:h.config.dataLabels})}return f}},{key:\"plotDataLabelsText\",value:function(t){var e=this.w,i=new m(this.ctx),a=t.x,s=t.y,r=t.i,o=t.j,n=t.text,l=t.textAnchor,h=t.fontSize,c=t.parent,d=t.dataLabelsConfig,g=t.color,u=t.alwaysDrawDataLabel,p=t.offsetCorrection;if(!(Array.isArray(e.config.dataLabels.enabledOnSeries)&&e.config.dataLabels.enabledOnSeries.indexOf(r)<0)){var f={x:a,y:s,drawnextLabel:!0,textRects:null};p&&(f=this.dataLabelsCorrection(a,s,n,r,o,u,parseInt(d.style.fontSize,10))),e.globals.zoomed||(a=f.x,s=f.y),f.textRects&&(a<-10-f.textRects.width||a>e.globals.gridWidth+f.textRects.width+10)&&(n=\"\");var x=e.globals.dataLabels.style.colors[r];((\"bar\"===e.config.chart.type||\"rangeBar\"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||e.config.dataLabels.distributed)&&(x=e.globals.dataLabels.style.colors[o]),\"function\"==typeof x&&(x=x({series:e.globals.series,seriesIndex:r,dataPointIndex:o,w:e})),g&&(x=g);var b=d.offsetX,y=d.offsetY;if(\"bar\"!==e.config.chart.type&&\"rangeBar\"!==e.config.chart.type||(b=0,y=0),f.drawnextLabel){var w=i.drawText({width:100,height:parseInt(d.style.fontSize,10),x:a+b,y:s+y,foreColor:x,textAnchor:l||d.textAnchor,text:n,fontSize:h||d.style.fontSize,fontFamily:d.style.fontFamily,fontWeight:d.style.fontWeight||\"normal\"});if(w.attr({class:\"apexcharts-datalabel\",cx:a,cy:s}),d.dropShadow.enabled){var k=d.dropShadow;new v(this.ctx).dropShadow(w,k)}c.add(w),void 0===e.globals.lastDrawnDataLabelsIndexes[r]&&(e.globals.lastDrawnDataLabelsIndexes[r]=[]),e.globals.lastDrawnDataLabelsIndexes[r].push(o)}}}},{key:\"addBackgroundToDataLabel\",value:function(t,e){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,o=e.width,n=e.height,l=new m(this.ctx).drawRect(e.x-s,e.y-r/2,o+2*s,n+r,a.borderRadius,\"transparent\"===i.config.chart.background?\"#fff\":i.config.chart.background,a.opacity,a.borderWidth,a.borderColor);a.dropShadow.enabled&&new v(this.ctx).dropShadow(l,a.dropShadow);return l}},{key:\"dataLabelsBackground\",value:function(){var t=this.w;if(\"bubble\"!==t.config.chart.type)for(var e=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-datalabels text\"),i=0;i<e.length;i++){var a=e[i],s=a.getBBox(),r=null;if(s.width&&s.height&&(r=this.addBackgroundToDataLabel(a,s)),r){a.parentNode.insertBefore(r.node,a);var o=a.getAttribute(\"fill\");t.config.chart.animations.enabled&&!t.globals.resized&&!t.globals.dataChanged?r.animate().attr({fill:o}):r.attr({fill:o}),a.setAttribute(\"fill\",t.config.dataLabels.background.foreColor)}}}},{key:\"bringForward\",value:function(){for(var t=this.w,e=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-datalabels\"),i=t.globals.dom.baseEl.querySelector(\".apexcharts-plot-series:last-child\"),a=0;a<e.length;a++)i&&i.insertBefore(e[a],i.nextSibling)}}]),t}(),N=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.legendInactiveClass=\"legend-mouseover-inactive\"}return r(t,[{key:\"getAllSeriesEls\",value:function(){return this.w.globals.dom.baseEl.getElementsByClassName(\"apexcharts-series\")}},{key:\"getSeriesByName\",value:function(t){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-inner .apexcharts-series[seriesName='\".concat(x.escapeString(t),\"']\"))}},{key:\"isSeriesHidden\",value:function(t){var e=this.getSeriesByName(t),i=parseInt(e.getAttribute(\"data:realIndex\"),10);return{isHidden:e.classList.contains(\"apexcharts-series-collapsed\"),realIndex:i}}},{key:\"addCollapsedClassToSeries\",value:function(t,e){var i=this.w;function a(i){for(var a=0;a<i.length;a++)i[a].index===e&&t.node.classList.add(\"apexcharts-series-collapsed\")}a(i.globals.collapsedSeries),a(i.globals.ancillaryCollapsedSeries)}},{key:\"toggleSeries\",value:function(t){var e=this.isSeriesHidden(t);return this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex,e.isHidden),e.isHidden}},{key:\"showSeries\",value:function(t){var e=this.isSeriesHidden(t);e.isHidden&&this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex,!0)}},{key:\"hideSeries\",value:function(t){var e=this.isSeriesHidden(t);e.isHidden||this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex,!1)}},{key:\"resetSeries\",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w,s=x.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,t&&(e&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:\"emptyCollapsedSeries\",value:function(t){for(var e=this.w,i=0;i<t.length;i++)e.globals.collapsedSeriesIndices.indexOf(i)>-1&&(t[i].data=[]);return t}},{key:\"toggleSeriesOnHover\",value:function(t,e){var i=this.w;e||(e=t.target);var a=i.globals.dom.baseEl.querySelectorAll(\".apexcharts-series, .apexcharts-datalabels\");if(\"mousemove\"===t.type){var s=parseInt(e.getAttribute(\"rel\"),10)-1,r=null,o=null;i.globals.axisCharts||\"radialBar\"===i.config.chart.type?i.globals.axisCharts?(r=i.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(s,\"']\")),o=i.globals.dom.baseEl.querySelector(\".apexcharts-datalabels[data\\\\:realIndex='\".concat(s,\"']\"))):r=i.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(s+1,\"']\")):r=i.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(s+1,\"'] path\"));for(var n=0;n<a.length;n++)a[n].classList.add(this.legendInactiveClass);null!==r&&(i.globals.axisCharts||r.parentNode.classList.remove(this.legendInactiveClass),r.classList.remove(this.legendInactiveClass),null!==o&&o.classList.remove(this.legendInactiveClass))}else if(\"mouseout\"===t.type)for(var l=0;l<a.length;l++)a[l].classList.remove(this.legendInactiveClass)}},{key:\"highlightRangeInSeries\",value:function(t,e){var i=this,a=this.w,s=a.globals.dom.baseEl.getElementsByClassName(\"apexcharts-heatmap-rect\"),r=function(t){for(var e=0;e<s.length;e++)s[e].classList[t](i.legendInactiveClass)};if(\"mousemove\"===t.type){var o=parseInt(e.getAttribute(\"rel\"),10)-1;r(\"add\"),function(t){for(var e=0;e<s.length;e++){var a=parseInt(s[e].getAttribute(\"val\"),10);a>=t.from&&a<=t.to&&s[e].classList.remove(i.legendInactiveClass)}}(a.config.plotOptions.heatmap.colorScale.ranges[o])}else\"mouseout\"===t.type&&r(\"remove\")}},{key:\"getActiveConfigSeriesIndex\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"asc\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=this.w,a=0;if(i.config.series.length>1)for(var s=i.config.series.map((function(t,a){return t.data&&t.data.length>0&&-1===i.globals.collapsedSeriesIndices.indexOf(a)&&(!i.globals.comboCharts||0===e.length||e.length&&e.indexOf(i.config.series[a].type)>-1)?a:-1})),r=\"asc\"===t?0:s.length-1;\"asc\"===t?r<s.length:r>=0;\"asc\"===t?r++:r--)if(-1!==s[r]){a=s[r];break}return a}},{key:\"getBarSeriesIndices\",value:function(){return this.w.globals.comboCharts?this.w.config.series.map((function(t,e){return\"bar\"===t.type||\"column\"===t.type?e:-1})).filter((function(t){return-1!==t})):this.w.config.series.map((function(t,e){return e}))}},{key:\"getPreviousPaths\",value:function(){var t=this.w;function e(e,i,a){for(var s=e[i].childNodes,r={type:a,paths:[],realIndex:e[i].getAttribute(\"data:realIndex\")},o=0;o<s.length;o++)if(s[o].hasAttribute(\"pathTo\")){var n=s[o].getAttribute(\"pathTo\");r.paths.push({d:n})}t.globals.previousPaths.push(r)}t.globals.previousPaths=[];[\"line\",\"area\",\"bar\",\"rangebar\",\"rangeArea\",\"candlestick\",\"radar\"].forEach((function(i){for(var a,s=(a=i,t.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(a,\"-series .apexcharts-series\"))),r=0;r<s.length;r++)e(s,r,i)})),this.handlePrevBubbleScatterPaths(\"bubble\"),this.handlePrevBubbleScatterPaths(\"scatter\");var i=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t.config.chart.type,\" .apexcharts-series\"));if(i.length>0)for(var a=function(e){for(var i=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t.config.chart.type,\" .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] rect\")),a=[],s=function(t){var e=function(e){return i[t].getAttribute(e)},s={x:parseFloat(e(\"x\")),y:parseFloat(e(\"y\")),width:parseFloat(e(\"width\")),height:parseFloat(e(\"height\"))};a.push({rect:s,color:i[t].getAttribute(\"color\")})},r=0;r<i.length;r++)s(r);t.globals.previousPaths.push(a)},s=0;s<i.length;s++)a(s);t.globals.axisCharts||(t.globals.previousPaths=t.globals.series)}},{key:\"handlePrevBubbleScatterPaths\",value:function(t){var e=this.w,i=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t,\"-series .apexcharts-series\"));if(i.length>0)for(var a=0;a<i.length;a++){for(var s=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t,\"-series .apexcharts-series[data\\\\:realIndex='\").concat(a,\"'] circle\")),r=[],o=0;o<s.length;o++)r.push({x:s[o].getAttribute(\"cx\"),y:s[o].getAttribute(\"cy\"),r:s[o].getAttribute(\"r\")});e.globals.previousPaths.push(r)}}},{key:\"clearPreviousPaths\",value:function(){var t=this.w;t.globals.previousPaths=[],t.globals.allSeriesCollapsed=!1}},{key:\"handleNoData\",value:function(){var t=this.w,e=t.config.noData,i=new m(this.ctx),a=t.globals.svgWidth/2,s=t.globals.svgHeight/2,r=\"middle\";if(t.globals.noData=!0,t.globals.animationEnded=!0,\"left\"===e.align?(a=10,r=\"start\"):\"right\"===e.align&&(a=t.globals.svgWidth-10,r=\"end\"),\"top\"===e.verticalAlign?s=50:\"bottom\"===e.verticalAlign&&(s=t.globals.svgHeight-50),a+=e.offsetX,s=s+parseInt(e.style.fontSize,10)+2+e.offsetY,void 0!==e.text&&\"\"!==e.text){var o=i.drawText({x:a,y:s,text:e.text,textAnchor:r,fontSize:e.style.fontSize,fontFamily:e.style.fontFamily,foreColor:e.style.color,opacity:1,class:\"apexcharts-text-nodata\"});t.globals.dom.Paper.add(o)}}},{key:\"setNullSeriesToZeroValues\",value:function(t){for(var e=this.w,i=0;i<t.length;i++)if(0===t[i].length)for(var a=0;a<t[e.globals.maxValsInArrayIndex].length;a++)t[i].push(0);return t}},{key:\"hasAllSeriesEqualX\",value:function(){for(var t=!0,e=this.w,i=this.filteredSeriesX(),a=0;a<i.length-1;a++)if(i[a][0]!==i[a+1][0]){t=!1;break}return e.globals.allSeriesHasEqualX=t,t}},{key:\"filteredSeriesX\",value:function(){var t=this.w.globals.seriesX.map((function(t){return t.length>0?t:[]}));return t}}]),t}(),W=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.seriesGoals=[],this.coreUtils=new y(this.ctx)}return r(t,[{key:\"isMultiFormat\",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:\"isFormatXY\",value:function(){var t=this.w.config.series.slice(),e=new N(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:\"isFormat2DArray\",value:function(){var t=this.w.config.series.slice(),e=new N(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:\"handleFormat2DArray\",value:function(t,e){for(var i=this.w.config,a=this.w.globals,s=\"boxPlot\"===i.chart.type||\"boxPlot\"===i.series[e].type,r=0;r<t[e].data.length;r++)if(void 0!==t[e].data[r][1]&&(Array.isArray(t[e].data[r][1])&&4===t[e].data[r][1].length&&!s?this.twoDSeries.push(x.parseNumber(t[e].data[r][1][3])):t[e].data[r].length>=5?this.twoDSeries.push(x.parseNumber(t[e].data[r][4])):this.twoDSeries.push(x.parseNumber(t[e].data[r][1])),a.dataFormatXNumeric=!0),\"datetime\"===i.xaxis.type){var o=new Date(t[e].data[r][0]);o=new Date(o).getTime(),this.twoDSeriesX.push(o)}else this.twoDSeriesX.push(t[e].data[r][0]);for(var n=0;n<t[e].data.length;n++)void 0!==t[e].data[n][2]&&(this.threeDSeries.push(t[e].data[n][2]),a.isDataXYZ=!0)}},{key:\"handleFormatXY\",value:function(t,e){var i=this.w.config,a=this.w.globals,s=new I(this.ctx),r=e;a.collapsedSeriesIndices.indexOf(e)>-1&&(r=this.activeSeriesIndex);for(var o=0;o<t[e].data.length;o++)void 0!==t[e].data[o].y&&(Array.isArray(t[e].data[o].y)?this.twoDSeries.push(x.parseNumber(t[e].data[o].y[t[e].data[o].y.length-1])):this.twoDSeries.push(x.parseNumber(t[e].data[o].y))),void 0!==t[e].data[o].goals&&Array.isArray(t[e].data[o].goals)?(void 0===this.seriesGoals[e]&&(this.seriesGoals[e]=[]),this.seriesGoals[e].push(t[e].data[o].goals)):(void 0===this.seriesGoals[e]&&(this.seriesGoals[e]=[]),this.seriesGoals[e].push(null));for(var n=0;n<t[r].data.length;n++){var l=\"string\"==typeof t[r].data[n].x,h=Array.isArray(t[r].data[n].x),c=!h&&!!s.isValidDate(t[r].data[n].x.toString());if(l||c)if(l||i.xaxis.convertedCatToNumeric){var d=a.isBarHorizontal&&a.isRangeData;\"datetime\"!==i.xaxis.type||d?(this.fallbackToCategory=!0,this.twoDSeriesX.push(t[r].data[n].x)):this.twoDSeriesX.push(s.parseDate(t[r].data[n].x))}else\"datetime\"===i.xaxis.type?this.twoDSeriesX.push(s.parseDate(t[r].data[n].x.toString())):(a.dataFormatXNumeric=!0,a.isXNumeric=!0,this.twoDSeriesX.push(parseFloat(t[r].data[n].x)));else h?(this.fallbackToCategory=!0,this.twoDSeriesX.push(t[r].data[n].x)):(a.isXNumeric=!0,a.dataFormatXNumeric=!0,this.twoDSeriesX.push(t[r].data[n].x))}if(t[e].data[0]&&void 0!==t[e].data[0].z){for(var g=0;g<t[e].data.length;g++)this.threeDSeries.push(t[e].data[g].z);a.isDataXYZ=!0}}},{key:\"handleRangeData\",value:function(t,e){var i=this.w.globals,a={};return this.isFormat2DArray()?a=this.handleRangeDataFormat(\"array\",t,e):this.isFormatXY()&&(a=this.handleRangeDataFormat(\"xy\",t,e)),i.seriesRangeStart.push(a.start),i.seriesRangeEnd.push(a.end),i.seriesRange.push(a.rangeUniques),i.seriesRange.forEach((function(t,e){t&&t.forEach((function(t,e){t.y.forEach((function(e,i){for(var a=0;a<t.y.length;a++)if(i!==a){var s=e.y1,r=e.y2,o=t.y[a].y1;s<=t.y[a].y2&&o<=r&&(t.overlaps.indexOf(e.rangeName)<0&&t.overlaps.push(e.rangeName),t.overlaps.indexOf(t.y[a].rangeName)<0&&t.overlaps.push(t.y[a].rangeName))}}))}))})),a}},{key:\"handleCandleStickBoxData\",value:function(t,e){var i=this.w.globals,a={};return this.isFormat2DArray()?a=this.handleCandleStickBoxDataFormat(\"array\",t,e):this.isFormatXY()&&(a=this.handleCandleStickBoxDataFormat(\"xy\",t,e)),i.seriesCandleO[e]=a.o,i.seriesCandleH[e]=a.h,i.seriesCandleM[e]=a.m,i.seriesCandleL[e]=a.l,i.seriesCandleC[e]=a.c,a}},{key:\"handleRangeDataFormat\",value:function(t,e,i){var a=[],s=[],r=e[i].data.filter((function(t,e,i){return e===i.findIndex((function(e){return e.x===t.x}))})).map((function(t,e){return{x:t.x,overlaps:[],y:[]}}));if(\"array\"===t)for(var o=0;o<e[i].data.length;o++)Array.isArray(e[i].data[o])?(a.push(e[i].data[o][1][0]),s.push(e[i].data[o][1][1])):(a.push(e[i].data[o]),s.push(e[i].data[o]));else if(\"xy\"===t)for(var n=function(t){var o=Array.isArray(e[i].data[t].y),n=x.randomId(),l=e[i].data[t].x,h={y1:o?e[i].data[t].y[0]:e[i].data[t].y,y2:o?e[i].data[t].y[1]:e[i].data[t].y,rangeName:n};e[i].data[t].rangeName=n;var c=r.findIndex((function(t){return t.x===l}));r[c].y.push(h),a.push(h.y1),s.push(h.y2)},l=0;l<e[i].data.length;l++)n(l);return{start:a,end:s,rangeUniques:r}}},{key:\"handleCandleStickBoxDataFormat\",value:function(t,e,i){var a=this.w,s=\"boxPlot\"===a.config.chart.type||\"boxPlot\"===a.config.series[i].type,r=[],o=[],n=[],l=[],h=[];if(\"array\"===t)if(s&&6===e[i].data[0].length||!s&&5===e[i].data[0].length)for(var c=0;c<e[i].data.length;c++)r.push(e[i].data[c][1]),o.push(e[i].data[c][2]),s?(n.push(e[i].data[c][3]),l.push(e[i].data[c][4]),h.push(e[i].data[c][5])):(l.push(e[i].data[c][3]),h.push(e[i].data[c][4]));else for(var d=0;d<e[i].data.length;d++)Array.isArray(e[i].data[d][1])&&(r.push(e[i].data[d][1][0]),o.push(e[i].data[d][1][1]),s?(n.push(e[i].data[d][1][2]),l.push(e[i].data[d][1][3]),h.push(e[i].data[d][1][4])):(l.push(e[i].data[d][1][2]),h.push(e[i].data[d][1][3])));else if(\"xy\"===t)for(var g=0;g<e[i].data.length;g++)Array.isArray(e[i].data[g].y)&&(r.push(e[i].data[g].y[0]),o.push(e[i].data[g].y[1]),s?(n.push(e[i].data[g].y[2]),l.push(e[i].data[g].y[3]),h.push(e[i].data[g].y[4])):(l.push(e[i].data[g].y[2]),h.push(e[i].data[g].y[3])));return{o:r,h:o,m:n,l:l,c:h}}},{key:\"parseDataAxisCharts\",value:function(t){var e,i=this,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.ctx,s=this.w.config,r=this.w.globals,o=new I(a),n=s.labels.length>0?s.labels.slice():s.xaxis.categories.slice();if(r.isRangeBar=\"rangeBar\"===s.chart.type&&r.isBarHorizontal,r.hasXaxisGroups=\"category\"===s.xaxis.type&&s.xaxis.group.groups.length>0,r.hasXaxisGroups&&(r.groups=s.xaxis.group.groups),r.hasSeriesGroups=null===(e=t[0])||void 0===e?void 0:e.group,r.hasSeriesGroups){var l=[],h=u(new Set(t.map((function(t){return t.group}))));t.forEach((function(t,e){var i=h.indexOf(t.group);l[i]||(l[i]=[]),l[i].push(t.name)})),r.seriesGroups=l}for(var c=function(){for(var t=0;t<n.length;t++)if(\"string\"==typeof n[t]){if(!o.isValidDate(n[t]))throw new Error(\"You have provided invalid Date format. Please provide a valid JavaScript Date\");i.twoDSeriesX.push(o.parseDate(n[t]))}else i.twoDSeriesX.push(n[t])},d=0;d<t.length;d++){if(this.twoDSeries=[],this.twoDSeriesX=[],this.threeDSeries=[],void 0===t[d].data)return void console.error(\"It is a possibility that you may have not included 'data' property in series.\");if(\"rangeBar\"!==s.chart.type&&\"rangeArea\"!==s.chart.type&&\"rangeBar\"!==t[d].type&&\"rangeArea\"!==t[d].type||(r.isRangeData=!0,r.isComboCharts?\"rangeBar\"!==t[d].type&&\"rangeArea\"!==t[d].type||this.handleRangeData(t,d):\"rangeBar\"!==s.chart.type&&\"rangeArea\"!==s.chart.type||this.handleRangeData(t,d)),this.isMultiFormat())this.isFormat2DArray()?this.handleFormat2DArray(t,d):this.isFormatXY()&&this.handleFormatXY(t,d),\"candlestick\"!==s.chart.type&&\"candlestick\"!==t[d].type&&\"boxPlot\"!==s.chart.type&&\"boxPlot\"!==t[d].type||this.handleCandleStickBoxData(t,d),r.series.push(this.twoDSeries),r.labels.push(this.twoDSeriesX),r.seriesX.push(this.twoDSeriesX),r.seriesGoals=this.seriesGoals,d!==this.activeSeriesIndex||this.fallbackToCategory||(r.isXNumeric=!0);else{\"datetime\"===s.xaxis.type?(r.isXNumeric=!0,c(),r.seriesX.push(this.twoDSeriesX)):\"numeric\"===s.xaxis.type&&(r.isXNumeric=!0,n.length>0&&(this.twoDSeriesX=n,r.seriesX.push(this.twoDSeriesX))),r.labels.push(this.twoDSeriesX);var g=t[d].data.map((function(t){return x.parseNumber(t)}));r.series.push(g)}r.seriesZ.push(this.threeDSeries),void 0!==t[d].name?r.seriesNames.push(t[d].name):r.seriesNames.push(\"series-\"+parseInt(d+1,10)),void 0!==t[d].color?r.seriesColors.push(t[d].color):r.seriesColors.push(void 0)}return this.w}},{key:\"parseDataNonAxisCharts\",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a<e.series.length;a++)void 0===e.seriesNames[a]&&e.seriesNames.push(\"series-\"+(a+1));return this.w}},{key:\"handleExternalLabelsData\",value:function(t){var e=this.w.config,i=this.w.globals;if(e.xaxis.categories.length>0)i.labels=e.xaxis.categories;else if(e.labels.length>0)i.labels=e.labels.slice();else if(this.fallbackToCategory){if(i.labels=i.labels[0],i.seriesRange.length&&(i.seriesRange.map((function(t){t.forEach((function(t){i.labels.indexOf(t.x)<0&&t.x&&i.labels.push(t.x)}))})),i.labels=Array.from(new Set(i.labels.map(JSON.stringify)),JSON.parse)),e.xaxis.convertedCatToNumeric)new z(e).convertCatToNumericXaxis(e,this.ctx,i.seriesX[0]),this._generateExternalLabels(t)}else this._generateExternalLabels(t)}},{key:\"_generateExternalLabels\",value:function(t){var e=this.w.globals,i=this.w.config,a=[];if(e.axisCharts){if(e.series.length>0)if(this.isFormatXY())for(var s=i.series.map((function(t,e){return t.data.filter((function(t,e,i){return i.findIndex((function(e){return e.x===t.x}))===e}))})),r=s.reduce((function(t,e,i,a){return a[t].length>e.length?t:i}),0),o=0;o<s[r].length;o++)a.push(o+1);else for(var n=0;n<e.series[e.maxValsInArrayIndex].length;n++)a.push(n+1);e.seriesX=[];for(var l=0;l<t.length;l++)e.seriesX.push(a);e.isXNumeric=!0}if(0===a.length){a=e.axisCharts?[]:e.series.map((function(t,e){return e+1}));for(var h=0;h<t.length;h++)e.seriesX.push(a)}e.labels=a,i.xaxis.convertedCatToNumeric&&(e.categoryLabels=a.map((function(t){return i.xaxis.labels.formatter(t)}))),e.noLabelsProvided=!0}},{key:\"parseData\",value:function(t){var e=this.w,i=e.config,a=e.globals;if(this.excludeCollapsedSeriesInYAxis(),this.fallbackToCategory=!1,this.ctx.core.resetGlobals(),this.ctx.core.isMultipleY(),a.axisCharts?(this.parseDataAxisCharts(t),this.coreUtils.getLargestSeries()):this.parseDataNonAxisCharts(t),i.chart.stacked){var s=new N(this.ctx);a.series=s.setNullSeriesToZeroValues(a.series)}this.coreUtils.getSeriesTotals(),a.axisCharts&&(a.stackedSeriesTotals=this.coreUtils.getStackedSeriesTotals()),this.coreUtils.getPercentSeries(),a.dataFormatXNumeric||a.isXNumeric&&(\"numeric\"!==i.xaxis.type||0!==i.labels.length||0!==i.xaxis.categories.length)||this.handleExternalLabelsData(t);for(var r=this.coreUtils.getCategoryLabels(a.labels),o=0;o<r.length;o++)if(Array.isArray(r[o])){a.isMultiLineX=!0;break}}},{key:\"excludeCollapsedSeriesInYAxis\",value:function(){var t=this,e=this.w;e.globals.ignoreYAxisIndexes=e.globals.collapsedSeries.map((function(i,a){if(t.w.globals.isMultipleYAxis&&!e.config.chart.stacked)return i.index}))}}]),t}(),B=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"getLabel\",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"12px\",o=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],n=this.w,l=void 0===t[a]?\"\":t[a],h=l,c=n.globals.xLabelFormatter,d=n.config.xaxis.labels.formatter,g=!1,u=new T(this.ctx),p=l;o&&(h=u.xLabelFormat(c,l,p,{i:a,dateFormatter:new I(this.ctx).formatDate,w:n}),void 0!==d&&(h=d(l,t[a],{i:a,dateFormatter:new I(this.ctx).formatDate,w:n})));var f,x;e.length>0?(f=e[a].unit,x=null,e.forEach((function(t){\"month\"===t.unit?x=\"year\":\"day\"===t.unit?x=\"month\":\"hour\"===t.unit?x=\"day\":\"minute\"===t.unit&&(x=\"hour\")})),g=x===f,i=e[a].position,h=e[a].value):\"datetime\"===n.config.xaxis.type&&void 0===d&&(h=\"\"),void 0===h&&(h=\"\"),h=Array.isArray(h)?h:h.toString();var b=new m(this.ctx),v={};v=n.globals.rotateXLabels&&o?b.getTextRects(h,parseInt(r,10),null,\"rotate(\".concat(n.config.xaxis.labels.rotate,\" 0 0)\"),!1):b.getTextRects(h,parseInt(r,10));var y=!n.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(h)&&(0===h.indexOf(\"NaN\")||0===h.toLowerCase().indexOf(\"invalid\")||h.toLowerCase().indexOf(\"infinity\")>=0||s.indexOf(h)>=0&&y)&&(h=\"\"),{x:i,text:h,textRect:v,isBold:g}}},{key:\"checkLabelBasedOnTickamount\",value:function(t,e,i){var a=this.w,s=a.config.xaxis.tickAmount;return\"dataPoints\"===s&&(s=Math.round(a.globals.gridWidth/120)),s>i||t%Math.round(i/(s+1))==0||(e.text=\"\"),e}},{key:\"checkForOverflowingLabels\",value:function(t,e,i,a,s){var r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=\"\"),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=\"\"),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var o=s[s.length-1];e.x<o.textRect.width/(r.globals.rotateXLabels?Math.abs(r.config.xaxis.labels.rotate)/12:1.01)+o.x&&(e.text=\"\")}return e}},{key:\"checkForReversedLabels\",value:function(t,e){var i=this.w;return i.config.yaxis[t]&&i.config.yaxis[t].reversed&&e.reverse(),e}},{key:\"isYAxisHidden\",value:function(t){var e=this.w,i=new y(this.ctx);return!e.config.yaxis[t].show||!e.config.yaxis[t].showForNullSeries&&i.isSeriesNull(t)&&-1===e.globals.collapsedSeriesIndices.indexOf(t)}},{key:\"getYAxisForeColor\",value:function(t,e){var i=this.w;return Array.isArray(t)&&i.globals.yAxisScale[e]&&this.ctx.theme.pushExtraColors(t,i.globals.yAxisScale[e].result.length,!1),t}},{key:\"drawYAxisTicks\",value:function(t,e,i,a,s,r,o){var n=this.w,l=new m(this.ctx),h=n.globals.translateY;if(a.show&&e>0){!0===n.config.yaxis[s].opposite&&(t+=a.width);for(var c=e;c>=0;c--){var d=h+e/10+n.config.yaxis[s].labels.offsetY-1;n.globals.isBarHorizontal&&(d=r*c),\"heatmap\"===n.config.chart.type&&(d+=r/2);var g=l.drawLine(t+i.offsetX-a.width+a.offsetX,d+a.offsetY,t+i.offsetX+a.offsetX,d+a.offsetY,a.color);o.add(g),h+=r}}}}]),t}(),G=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"scaleSvgNode\",value:function(t,e){var i=parseFloat(t.getAttributeNS(null,\"width\")),a=parseFloat(t.getAttributeNS(null,\"height\"));t.setAttributeNS(null,\"width\",i*e),t.setAttributeNS(null,\"height\",a*e),t.setAttributeNS(null,\"viewBox\",\"0 0 \"+i+\" \"+a)}},{key:\"fixSvgStringForIe11\",value:function(t){if(!x.isIE11())return t.replace(/ /g,\" \");var e=0,i=t.replace(/xmlns=\"http:\\/\\/www.w3.org\\/2000\\/svg\"/g,(function(t){return 2===++e?'xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:svgjs=\"http://svgjs.dev\"':t}));return i=(i=i.replace(/xmlns:NS\\d+=\"\"/g,\"\")).replace(/NS\\d+:(\\w+:\\w+=\")/g,\"$1\")}},{key:\"getSvgString\",value:function(t){null==t&&(t=1);var e=this.w.globals.dom.Paper.svg();if(1!==t){var i=this.w.globals.dom.Paper.node.cloneNode(!0);this.scaleSvgNode(i,t),e=(new XMLSerializer).serializeToString(i)}return this.fixSvgStringForIe11(e)}},{key:\"cleanup\",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-xcrosshairs\"),i=t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-ycrosshairs\"),a=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-zoom-rect, .apexcharts-selection-rect\");Array.prototype.forEach.call(a,(function(t){t.setAttribute(\"width\",0)})),e&&e[0]&&(e[0].setAttribute(\"x\",-500),e[0].setAttribute(\"x1\",-500),e[0].setAttribute(\"x2\",-500)),i&&i[0]&&(i[0].setAttribute(\"y\",-100),i[0].setAttribute(\"y1\",-100),i[0].setAttribute(\"y2\",-100))}},{key:\"svgUrl\",value:function(){this.cleanup();var t=this.getSvgString(),e=new Blob([t],{type:\"image/svg+xml;charset=utf-8\"});return URL.createObjectURL(e)}},{key:\"dataURI\",value:function(t){var e=this;return new Promise((function(i){var a=e.w,s=t?t.scale||t.width/a.globals.svgWidth:1;e.cleanup();var r=document.createElement(\"canvas\");r.width=a.globals.svgWidth*s,r.height=parseInt(a.globals.dom.elWrap.style.height,10)*s;var o=\"transparent\"===a.config.chart.background?\"#fff\":a.config.chart.background,n=r.getContext(\"2d\");n.fillStyle=o,n.fillRect(0,0,r.width*s,r.height*s);var l=e.getSvgString(s);if(window.canvg&&x.isIE11()){var h=window.canvg.Canvg.fromString(n,l,{ignoreClear:!0,ignoreDimensions:!0});h.start();var c=r.msToBlob();h.stop(),i({blob:c})}else{var d=\"data:image/svg+xml,\"+encodeURIComponent(l),g=new Image;g.crossOrigin=\"anonymous\",g.onload=function(){if(n.drawImage(g,0,0),r.msToBlob){var t=r.msToBlob();i({blob:t})}else{var e=r.toDataURL(\"image/png\");i({imgURI:e})}},g.src=d}}))}},{key:\"exportToSVG\",value:function(){this.triggerDownload(this.svgUrl(),this.w.config.chart.toolbar.export.svg.filename,\".svg\")}},{key:\"exportToPng\",value:function(){var t=this;this.dataURI().then((function(e){var i=e.imgURI,a=e.blob;a?navigator.msSaveOrOpenBlob(a,t.w.globals.chartID+\".png\"):t.triggerDownload(i,t.w.config.chart.toolbar.export.png.filename,\".png\")}))}},{key:\"exportToCSV\",value:function(t){var e=this,i=t.series,a=t.fileName,s=t.columnDelimiter,r=void 0===s?\",\":s,o=t.lineDelimiter,n=void 0===o?\"\\n\":o,l=this.w;i||(i=l.config.series);var h=[],c=[],d=\"\",g=l.globals.series.map((function(t,e){return-1===l.globals.collapsedSeriesIndices.indexOf(e)?t:[]})),p=Math.max.apply(Math,u(i.map((function(t){return t.data?t.data.length:0})))),f=new W(this.ctx),b=new B(this.ctx),v=function(t){var i=\"\";if(l.globals.axisCharts){if(\"category\"===l.config.xaxis.type||l.config.xaxis.convertedCatToNumeric)if(l.globals.isBarHorizontal){var a=l.globals.yLabelFormatters[0],s=new N(e.ctx).getActiveConfigSeriesIndex();i=a(l.globals.labels[t],{seriesIndex:s,dataPointIndex:t,w:l})}else i=b.getLabel(l.globals.labels,l.globals.timescaleLabels,0,t).text;\"datetime\"===l.config.xaxis.type&&(l.config.xaxis.categories.length?i=l.config.xaxis.categories[t]:l.config.labels.length&&(i=l.config.labels[t]))}else i=l.config.labels[t];return Array.isArray(i)&&(i=i.join(\" \")),x.isNumber(i)?i:i.split(r).join(\"\")},m=function(t,e){if(h.length&&0===e&&c.push(h.join(r)),t.data){t.data=t.data.length&&t.data||u(Array(p)).map((function(){return\"\"}));for(var a=0;a<t.data.length;a++){h=[];var s=v(a);if(s||(f.isFormatXY()?s=i[e].data[a].x:f.isFormat2DArray()&&(s=i[e].data[a]?i[e].data[a][0]:\"\")),0===e){h.push((n=s,\"datetime\"===l.config.xaxis.type&&String(n).length>=10?l.config.chart.toolbar.export.csv.dateFormatter(s):x.isNumber(s)?s:s.split(r).join(\"\")));for(var o=0;o<l.globals.series.length;o++)f.isFormatXY()?h.push(i[o].data[a].y):h.push(g[o][a])}(\"candlestick\"===l.config.chart.type||t.type&&\"candlestick\"===t.type)&&(h.pop(),h.push(l.globals.seriesCandleO[e][a]),h.push(l.globals.seriesCandleH[e][a]),h.push(l.globals.seriesCandleL[e][a]),h.push(l.globals.seriesCandleC[e][a])),(\"boxPlot\"===l.config.chart.type||t.type&&\"boxPlot\"===t.type)&&(h.pop(),h.push(l.globals.seriesCandleO[e][a]),h.push(l.globals.seriesCandleH[e][a]),h.push(l.globals.seriesCandleM[e][a]),h.push(l.globals.seriesCandleL[e][a]),h.push(l.globals.seriesCandleC[e][a])),\"rangeBar\"===l.config.chart.type&&(h.pop(),h.push(l.globals.seriesRangeStart[e][a]),h.push(l.globals.seriesRangeEnd[e][a])),h.length&&c.push(h.join(r))}}var n};h.push(l.config.chart.toolbar.export.csv.headerCategory),\"boxPlot\"===l.config.chart.type?(h.push(\"minimum\"),h.push(\"q1\"),h.push(\"median\"),h.push(\"q3\"),h.push(\"maximum\")):\"candlestick\"===l.config.chart.type?(h.push(\"open\"),h.push(\"high\"),h.push(\"low\"),h.push(\"close\")):\"rangeBar\"===l.config.chart.type?(h.push(\"minimum\"),h.push(\"maximum\")):i.map((function(t,e){var i=t.name?t.name:\"series-\".concat(e);l.globals.axisCharts&&h.push(i.split(r).join(\"\")?i.split(r).join(\"\"):\"series-\".concat(e))})),l.globals.axisCharts||(h.push(l.config.chart.toolbar.export.csv.headerValue),c.push(h.join(r))),i.map((function(t,e){l.globals.axisCharts?m(t,e):((h=[]).push(l.globals.labels[e].split(r).join(\"\")),h.push(g[e]),c.push(h.join(r)))})),d+=c.join(n),this.triggerDownload(\"data:text/csv; charset=utf-8,\"+encodeURIComponent(\"\\ufeff\"+d),a||l.config.chart.toolbar.export.csv.filename,\".csv\")}},{key:\"triggerDownload\",value:function(t,e,i){var a=document.createElement(\"a\");a.href=t,a.download=(e||this.w.globals.chartID)+i,document.body.appendChild(a),a.click(),document.body.removeChild(a)}}]),t}(),V=function(){function t(e,i){a(this,t),this.ctx=e,this.elgrid=i,this.w=e.w;var s=this.w;this.axesUtils=new B(e),this.xaxisLabels=s.globals.labels.slice(),s.globals.timescaleLabels.length>0&&!s.globals.isBarHorizontal&&(this.xaxisLabels=s.globals.timescaleLabels.slice()),s.config.xaxis.overwriteCategories&&(this.xaxisLabels=s.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],\"top\"===s.config.xaxis.position?this.offY=0:this.offY=s.globals.gridHeight+1,this.offY=this.offY+s.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal=\"bar\"===s.config.chart.type&&s.config.plotOptions.bar.horizontal,this.xaxisFontSize=s.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=s.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=s.config.xaxis.labels.style.colors,this.xaxisBorderWidth=s.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=s.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf(\"%\")>-1?this.xaxisBorderWidth=s.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=s.config.xaxis.axisBorder.height,this.yaxis=s.config.yaxis[0]}return r(t,[{key:\"drawXaxis\",value:function(){var t=this.w,e=new m(this.ctx),i=e.group({class:\"apexcharts-xaxis\",transform:\"translate(\".concat(t.config.xaxis.offsetX,\", \").concat(t.config.xaxis.offsetY,\")\")}),a=e.group({class:\"apexcharts-xaxis-texts-g\",transform:\"translate(\".concat(t.globals.translateXAxisX,\", \").concat(t.globals.translateXAxisY,\")\")});i.add(a);for(var s=[],r=0;r<this.xaxisLabels.length;r++)s.push(this.xaxisLabels[r]);if(this.drawXAxisLabelAndGroup(!0,e,a,s,t.globals.isXNumeric,(function(t,e){return e})),t.globals.hasXaxisGroups){var o=t.globals.groups;s=[];for(var n=0;n<o.length;n++)s.push(o[n].title);var l={};t.config.xaxis.group.style&&(l.xaxisFontSize=t.config.xaxis.group.style.fontSize,l.xaxisFontFamily=t.config.xaxis.group.style.fontFamily,l.xaxisForeColors=t.config.xaxis.group.style.colors,l.fontWeight=t.config.xaxis.group.style.fontWeight,l.cssClass=t.config.xaxis.group.style.cssClass),this.drawXAxisLabelAndGroup(!1,e,a,s,!1,(function(t,e){return o[t].cols*e}),l)}if(void 0!==t.config.xaxis.title.text){var h=e.group({class:\"apexcharts-xaxis-title\"}),c=e.drawText({x:t.globals.gridWidth/2+t.config.xaxis.title.offsetX,y:this.offY+parseFloat(this.xaxisFontSize)+(\"bottom\"===t.config.xaxis.position?t.globals.xAxisLabelsHeight:-t.globals.xAxisLabelsHeight-10)+t.config.xaxis.title.offsetY,text:t.config.xaxis.title.text,textAnchor:\"middle\",fontSize:t.config.xaxis.title.style.fontSize,fontFamily:t.config.xaxis.title.style.fontFamily,fontWeight:t.config.xaxis.title.style.fontWeight,foreColor:t.config.xaxis.title.style.color,cssClass:\"apexcharts-xaxis-title-text \"+t.config.xaxis.title.style.cssClass});h.add(c),i.add(h)}if(t.config.xaxis.axisBorder.show){var d=t.globals.barPadForNumericAxis,g=e.drawLine(t.globals.padHorizontal+t.config.xaxis.axisBorder.offsetX-d,this.offY,this.xaxisBorderWidth+d,this.offY,t.config.xaxis.axisBorder.color,0,this.xaxisBorderHeight);this.elgrid&&this.elgrid.elGridBorders&&t.config.grid.show?this.elgrid.elGridBorders.add(g):i.add(g)}return i}},{key:\"drawXAxisLabelAndGroup\",value:function(t,e,i,a,s,r){var o,n=this,l=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},h=[],c=[],d=this.w,g=l.xaxisFontSize||this.xaxisFontSize,u=l.xaxisFontFamily||this.xaxisFontFamily,p=l.xaxisForeColors||this.xaxisForeColors,f=l.fontWeight||d.config.xaxis.labels.style.fontWeight,x=l.cssClass||d.config.xaxis.labels.style.cssClass,b=d.globals.padHorizontal,v=a.length,m=\"category\"===d.config.xaxis.type?d.globals.dataPoints:v;if(0===m&&v>m&&(m=v),s){var y=m>1?m-1:m;o=d.globals.gridWidth/y,b=b+r(0,o)/2+d.config.xaxis.labels.offsetX}else o=d.globals.gridWidth/m,b=b+r(0,o)+d.config.xaxis.labels.offsetX;for(var w=function(s){var l=b-r(s,o)/2+d.config.xaxis.labels.offsetX;0===s&&1===v&&o/2===b&&1===m&&(l=d.globals.gridWidth/2);var y=n.axesUtils.getLabel(a,d.globals.timescaleLabels,l,s,h,g,t),w=28;d.globals.rotateXLabels&&t&&(w=22),d.config.xaxis.title.text&&\"top\"===d.config.xaxis.position&&(w+=parseFloat(d.config.xaxis.title.style.fontSize)+2),t||(w=w+parseFloat(g)+(d.globals.xAxisLabelsHeight-d.globals.xAxisGroupLabelsHeight)+(d.globals.rotateXLabels?10:0)),y=void 0!==d.config.xaxis.tickAmount&&\"dataPoints\"!==d.config.xaxis.tickAmount&&\"datetime\"!==d.config.xaxis.type?n.axesUtils.checkLabelBasedOnTickamount(s,y,v):n.axesUtils.checkForOverflowingLabels(s,y,v,h,c);if(d.config.xaxis.labels.show){var k=e.drawText({x:y.x,y:n.offY+d.config.xaxis.labels.offsetY+w-(\"top\"===d.config.xaxis.position?d.globals.xAxisHeight+d.config.xaxis.axisTicks.height-2:0),text:y.text,textAnchor:\"middle\",fontWeight:y.isBold?600:f,fontSize:g,fontFamily:u,foreColor:Array.isArray(p)?t&&d.config.xaxis.convertedCatToNumeric?p[d.globals.minX+s-1]:p[s]:p,isPlainText:!1,cssClass:(t?\"apexcharts-xaxis-label \":\"apexcharts-xaxis-group-label \")+x});if(i.add(k),k.on(\"click\",(function(t){if(\"function\"==typeof d.config.chart.events.xAxisLabelClick){var e=Object.assign({},d,{labelIndex:s});d.config.chart.events.xAxisLabelClick(t,n.ctx,e)}})),t){var A=document.createElementNS(d.globals.SVGNS,\"title\");A.textContent=Array.isArray(y.text)?y.text.join(\" \"):y.text,k.node.appendChild(A),\"\"!==y.text&&(h.push(y.text),c.push(y))}}s<v-1&&(b+=r(s+1,o))},k=0;k<=v-1;k++)w(k)}},{key:\"drawXaxisInversed\",value:function(t){var e,i,a=this,s=this.w,r=new m(this.ctx),o=s.config.yaxis[0].opposite?s.globals.translateYAxisX[t]:0,n=r.group({class:\"apexcharts-yaxis apexcharts-xaxis-inversed\",rel:t}),l=r.group({class:\"apexcharts-yaxis-texts-g apexcharts-xaxis-inversed-texts-g\",transform:\"translate(\"+o+\", 0)\"});n.add(l);var h=[];if(s.config.yaxis[t].show)for(var c=0;c<this.xaxisLabels.length;c++)h.push(this.xaxisLabels[c]);e=s.globals.gridHeight/h.length,i=-e/2.2;var d=s.globals.yLabelFormatters[0],g=s.config.yaxis[0].labels;if(g.show)for(var u=function(o){var n=void 0===h[o]?\"\":h[o];n=d(n,{seriesIndex:t,dataPointIndex:o,w:s});var c=a.axesUtils.getYAxisForeColor(g.style.colors,t),u=0;Array.isArray(n)&&(u=n.length/2*parseInt(g.style.fontSize,10));var p=g.offsetX-15,f=\"end\";a.yaxis.opposite&&(f=\"start\"),\"left\"===s.config.yaxis[0].labels.align?(p=g.offsetX,f=\"start\"):\"center\"===s.config.yaxis[0].labels.align?(p=g.offsetX,f=\"middle\"):\"right\"===s.config.yaxis[0].labels.align&&(f=\"end\");var x=r.drawText({x:p,y:i+e+g.offsetY-u,text:n,textAnchor:f,foreColor:Array.isArray(c)?c[o]:c,fontSize:g.style.fontSize,fontFamily:g.style.fontFamily,fontWeight:g.style.fontWeight,isPlainText:!1,cssClass:\"apexcharts-yaxis-label \"+g.style.cssClass,maxWidth:g.maxWidth});l.add(x),x.on(\"click\",(function(t){if(\"function\"==typeof s.config.chart.events.xAxisLabelClick){var e=Object.assign({},s,{labelIndex:o});s.config.chart.events.xAxisLabelClick(t,a.ctx,e)}}));var b=document.createElementNS(s.globals.SVGNS,\"title\");if(b.textContent=Array.isArray(n)?n.join(\" \"):n,x.node.appendChild(b),0!==s.config.yaxis[t].labels.rotate){var v=r.rotateAroundCenter(x.node);x.node.setAttribute(\"transform\",\"rotate(\".concat(s.config.yaxis[t].labels.rotate,\" 0 \").concat(v.y,\")\"))}i+=e},p=0;p<=h.length-1;p++)u(p);if(void 0!==s.config.yaxis[0].title.text){var f=r.group({class:\"apexcharts-yaxis-title apexcharts-xaxis-title-inversed\",transform:\"translate(\"+o+\", 0)\"}),x=r.drawText({x:s.config.yaxis[0].title.offsetX,y:s.globals.gridHeight/2+s.config.yaxis[0].title.offsetY,text:s.config.yaxis[0].title.text,textAnchor:\"middle\",foreColor:s.config.yaxis[0].title.style.color,fontSize:s.config.yaxis[0].title.style.fontSize,fontWeight:s.config.yaxis[0].title.style.fontWeight,fontFamily:s.config.yaxis[0].title.style.fontFamily,cssClass:\"apexcharts-yaxis-title-text \"+s.config.yaxis[0].title.style.cssClass});f.add(x),n.add(f)}var b=0;this.isCategoryBarHorizontal&&s.config.yaxis[0].opposite&&(b=s.globals.gridWidth);var v=s.config.xaxis.axisBorder;if(v.show){var y=r.drawLine(s.globals.padHorizontal+v.offsetX+b,1+v.offsetY,s.globals.padHorizontal+v.offsetX+b,s.globals.gridHeight+v.offsetY,v.color,0);this.elgrid&&this.elgrid.elGridBorders&&s.config.grid.show?this.elgrid.elGridBorders.add(y):n.add(y)}return s.config.yaxis[0].axisTicks.show&&this.axesUtils.drawYAxisTicks(b,h.length,s.config.yaxis[0].axisBorder,s.config.yaxis[0].axisTicks,0,e,n),n}},{key:\"drawXaxisTicks\",value:function(t,e,i){var a=this.w,s=t;if(!(t<0||t-2>a.globals.gridWidth)){var r=this.offY+a.config.xaxis.axisTicks.offsetY;if(e=e+r+a.config.xaxis.axisTicks.height,\"top\"===a.config.xaxis.position&&(e=r-a.config.xaxis.axisTicks.height),a.config.xaxis.axisTicks.show){var o=new m(this.ctx).drawLine(t+a.config.xaxis.axisTicks.offsetX,r+a.config.xaxis.offsetY,s+a.config.xaxis.axisTicks.offsetX,e+a.config.xaxis.offsetY,a.config.xaxis.axisTicks.color);i.add(o),o.node.classList.add(\"apexcharts-xaxis-tick\")}}}},{key:\"getXAxisTicksPositions\",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timescaleLabels.length>0)for(var s=0;s<i;s++)a=this.xaxisLabels[s].position,e.push(a);else for(var r=i,o=0;o<r;o++){var n=r;t.globals.isXNumeric&&\"bar\"!==t.config.chart.type&&(n-=1),a+=t.globals.gridWidth/n,e.push(a)}return e}},{key:\"xAxisLabelCorrections\",value:function(){var t=this.w,e=new m(this.ctx),i=t.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-texts-g\"),a=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-xaxis-texts-g text:not(.apexcharts-xaxis-group-label)\"),s=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis-inversed text\"),r=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-xaxis-inversed-texts-g text tspan\");if(t.globals.rotateXLabels||t.config.xaxis.labels.rotateAlways)for(var o=0;o<a.length;o++){var n=e.rotateAroundCenter(a[o]);n.y=n.y-1,n.x=n.x+1,a[o].setAttribute(\"transform\",\"rotate(\".concat(t.config.xaxis.labels.rotate,\" \").concat(n.x,\" \").concat(n.y,\")\")),a[o].setAttribute(\"text-anchor\",\"end\");i.setAttribute(\"transform\",\"translate(0, \".concat(-10,\")\"));var l=a[o].childNodes;t.config.xaxis.labels.trim&&Array.prototype.forEach.call(l,(function(i){e.placeTextWithEllipsis(i,i.textContent,t.globals.xAxisLabelsHeight-(\"bottom\"===t.config.legend.position?20:10))}))}else!function(){for(var i=t.globals.gridWidth/(t.globals.labels.length+1),s=0;s<a.length;s++){var r=a[s].childNodes;t.config.xaxis.labels.trim&&\"datetime\"!==t.config.xaxis.type&&Array.prototype.forEach.call(r,(function(t){e.placeTextWithEllipsis(t,t.textContent,i)}))}}();if(s.length>0){var h=s[s.length-1].getBBox(),c=s[0].getBBox();h.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),c.x+c.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var d=0;d<r.length;d++)e.placeTextWithEllipsis(r[d],r[d].textContent,t.config.yaxis[0].labels.maxWidth-(t.config.yaxis[0].title.text?2*parseFloat(t.config.yaxis[0].title.style.fontSize):0)-15)}}}]),t}(),j=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.xaxisLabels=i.globals.labels.slice(),this.axesUtils=new B(e),this.isRangeBar=i.globals.seriesRange.length,i.globals.timescaleLabels.length>0&&(this.xaxisLabels=i.globals.timescaleLabels.slice())}return r(t,[{key:\"drawGridArea\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new m(this.ctx);null===t&&(t=i.group({class:\"apexcharts-grid\"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,\"transparent\"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,\"transparent\");return t.add(s),t.add(a),t}},{key:\"drawGrid\",value:function(){var t=null;return this.w.globals.axisCharts&&(t=this.renderGrid(),this.drawGridArea(t.el)),t}},{key:\"createGridMask\",value:function(){var t=this.w,e=t.globals,i=new m(this.ctx),a=Array.isArray(t.config.stroke.width)?0:t.config.stroke.width;if(Array.isArray(t.config.stroke.width)){var s=0;t.config.stroke.width.forEach((function(t){s=Math.max(s,t)})),a=s}e.dom.elGridRectMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elGridRectMask.setAttribute(\"id\",\"gridRectMask\".concat(e.cuid)),e.dom.elGridRectMarkerMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elGridRectMarkerMask.setAttribute(\"id\",\"gridRectMarkerMask\".concat(e.cuid)),e.dom.elForecastMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elForecastMask.setAttribute(\"id\",\"forecastMask\".concat(e.cuid)),e.dom.elNonForecastMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elNonForecastMask.setAttribute(\"id\",\"nonForecastMask\".concat(e.cuid));var r=t.config.chart.type,o=0,n=0;(\"bar\"===r||\"rangeBar\"===r||\"candlestick\"===r||\"boxPlot\"===r||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&(o=t.config.grid.padding.left,n=t.config.grid.padding.right,e.barPadForNumericAxis>o&&(o=e.barPadForNumericAxis,n=e.barPadForNumericAxis)),e.dom.elGridRect=i.drawRect(-a/2-o-2,-a/2,e.gridWidth+a+n+o+4,e.gridHeight+a,0,\"#fff\");var l=t.globals.markers.largestSize+1;e.dom.elGridRectMarker=i.drawRect(2*-l,2*-l,e.gridWidth+4*l,e.gridHeight+4*l,0,\"#fff\"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var h=e.dom.baseEl.querySelector(\"defs\");h.appendChild(e.dom.elGridRectMask),h.appendChild(e.dom.elForecastMask),h.appendChild(e.dom.elNonForecastMask),h.appendChild(e.dom.elGridRectMarkerMask)}},{key:\"_drawGridLines\",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.xCount,n=t.parent,l=this.w;if(!(0===e&&l.globals.skipFirstTimelinelabel||e===o-1&&l.globals.skipLastTimelinelabel&&!l.config.xaxis.labels.formatter||\"radar\"===l.config.chart.type)){l.config.grid.xaxis.lines.show&&this._drawGridLine({i:e,x1:i,y1:a,x2:s,y2:r,xCount:o,parent:n});var h=0;if(l.globals.hasXaxisGroups&&\"between\"===l.config.xaxis.tickPlacement){var c=l.globals.groups;if(c){for(var d=0,g=0;d<e&&g<c.length;g++)d+=c[g].cols;d===e&&(h=.6*l.globals.xAxisLabelsHeight)}}new V(this.ctx).drawXaxisTicks(i,h,l.globals.dom.elGraphical)}}},{key:\"_drawGridLine\",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.xCount,n=t.parent,l=this.w,h=!1,c=n.node.classList.contains(\"apexcharts-gridlines-horizontal\"),d=l.config.grid.strokeDashArray,g=l.globals.barPadForNumericAxis;(0===a&&0===r||0===i&&0===s)&&(h=!0),a===l.globals.gridHeight&&r===l.globals.gridHeight&&(h=!0),!l.globals.isBarHorizontal||0!==e&&e!==o-1||(h=!0);var u=new m(this).drawLine(i-(c?g:0),a,s+(c?g:0),r,l.config.grid.borderColor,d);u.node.classList.add(\"apexcharts-gridline\"),h&&l.config.grid.show?this.elGridBorders.add(u):n.add(u)}},{key:\"_drawGridBandRect\",value:function(t){var e=t.c,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.type,n=this.w,l=new m(this.ctx),h=n.globals.barPadForNumericAxis;if(\"column\"!==o||\"datetime\"!==n.config.xaxis.type){var c=n.config.grid[o].colors[e],d=l.drawRect(i-(\"row\"===o?h:0),a,s+(\"row\"===o?2*h:0),r,0,c,n.config.grid[o].opacity);this.elg.add(d),d.attr(\"clip-path\",\"url(#gridRectMask\".concat(n.globals.cuid,\")\")),d.node.classList.add(\"apexcharts-grid-\".concat(o))}}},{key:\"_drawXYLines\",value:function(t){var e=this,i=t.xCount,a=t.tickAmount,s=this.w;if(s.config.grid.xaxis.lines.show||s.config.xaxis.axisTicks.show){var r,o=s.globals.padHorizontal,n=s.globals.gridHeight;s.globals.timescaleLabels.length?function(t){for(var a=t.xC,s=t.x1,r=t.y1,o=t.x2,n=t.y2,l=0;l<a;l++)s=e.xaxisLabels[l].position,o=e.xaxisLabels[l].position,e._drawGridLines({i:l,x1:s,y1:r,x2:o,y2:n,xCount:i,parent:e.elgridLinesV})}({xC:i,x1:o,y1:0,x2:r,y2:n}):(s.globals.isXNumeric&&(i=s.globals.xAxisScale.result.length),function(t){for(var a=t.xC,r=t.x1,o=t.y1,n=t.x2,l=t.y2,h=0;h<a+(s.globals.isXNumeric?0:1);h++)0===h&&1===a&&1===s.globals.dataPoints&&(n=r=s.globals.gridWidth/2),e._drawGridLines({i:h,x1:r,y1:o,x2:n,y2:l,xCount:i,parent:e.elgridLinesV}),n=r+=s.globals.gridWidth/(s.globals.isXNumeric?a-1:a)}({xC:i,x1:o,y1:0,x2:r,y2:n}))}if(s.config.grid.yaxis.lines.show){var l=0,h=0,c=s.globals.gridWidth,d=a+1;this.isRangeBar&&(d=s.globals.labels.length);for(var g=0;g<d+(this.isRangeBar?1:0);g++)this._drawGridLine({i:g,xCount:d+(this.isRangeBar?1:0),x1:0,y1:l,x2:c,y2:h,parent:this.elgridLinesH}),h=l+=s.globals.gridHeight/(this.isRangeBar?d:a)}}},{key:\"_drawInvertedXYLines\",value:function(t){var e=t.xCount,i=this.w;if(i.config.grid.xaxis.lines.show||i.config.xaxis.axisTicks.show)for(var a,s=i.globals.padHorizontal,r=i.globals.gridHeight,o=0;o<e+1;o++){i.config.grid.xaxis.lines.show&&this._drawGridLine({i:o,xCount:e+1,x1:s,y1:0,x2:a,y2:r,parent:this.elgridLinesV}),new V(this.ctx).drawXaxisTicks(s,0,i.globals.dom.elGraphical),a=s=s+i.globals.gridWidth/e+.3}if(i.config.grid.yaxis.lines.show)for(var n=0,l=0,h=i.globals.gridWidth,c=0;c<i.globals.dataPoints+1;c++)this._drawGridLine({i:c,xCount:i.globals.dataPoints+1,x1:0,y1:n,x2:h,y2:l,parent:this.elgridLinesH}),l=n+=i.globals.gridHeight/i.globals.dataPoints}},{key:\"renderGrid\",value:function(){var t=this.w,e=new m(this.ctx);this.elg=e.group({class:\"apexcharts-grid\"}),this.elgridLinesH=e.group({class:\"apexcharts-gridlines-horizontal\"}),this.elgridLinesV=e.group({class:\"apexcharts-gridlines-vertical\"}),this.elGridBorders=e.group({class:\"apexcharts-grid-borders\"}),this.elg.add(this.elgridLinesH),this.elg.add(this.elgridLinesV),t.config.grid.show||(this.elgridLinesV.hide(),this.elgridLinesH.hide(),this.elGridBorders.hide());for(var i,a=t.globals.yAxisScale.length?t.globals.yAxisScale[0].result.length-1:5,s=0;s<t.globals.series.length&&(void 0!==t.globals.yAxisScale[s]&&(a=t.globals.yAxisScale[s].result.length-1),!(a>2));s++);return!t.globals.isBarHorizontal||this.isRangeBar?(i=this.xaxisLabels.length,this.isRangeBar&&t.globals.isBarHorizontal&&(i--,a=t.globals.labels.length,t.config.xaxis.tickAmount&&t.config.xaxis.labels.formatter&&(i=t.config.xaxis.tickAmount)),this._drawXYLines({xCount:i,tickAmount:a})):(i=a,a=t.globals.xTickAmount,this._drawInvertedXYLines({xCount:i,tickAmount:a})),this.drawGridBands(i,a),{el:this.elg,elGridBorders:this.elGridBorders,xAxisTickWidth:t.globals.gridWidth/i}}},{key:\"drawGridBands\",value:function(t,e){var i=this.w;if(void 0!==i.config.grid.row.colors&&i.config.grid.row.colors.length>0)for(var a=0,s=i.globals.gridHeight/e,r=i.globals.gridWidth,o=0,n=0;o<e;o++,n++)n>=i.config.grid.row.colors.length&&(n=0),this._drawGridBandRect({c:n,x1:0,y1:a,x2:r,y2:s,type:\"row\"}),a+=i.globals.gridHeight/e;if(void 0!==i.config.grid.column.colors&&i.config.grid.column.colors.length>0)for(var l=i.globals.isBarHorizontal||\"category\"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric?t:t-1,h=i.globals.padHorizontal,c=i.globals.padHorizontal+i.globals.gridWidth/l,d=i.globals.gridHeight,g=0,u=0;g<t;g++,u++)u>=i.config.grid.column.colors.length&&(u=0),this._drawGridBandRect({c:u,x1:h,y1:0,x2:c,y2:d,type:\"column\"}),h+=i.globals.gridWidth/l}}]),t}(),_=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"niceScale\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4?arguments[4]:void 0,r=this.w,o=Math.abs(e-t);if(\"dataPoints\"===(i=this._adjustTicksForSmallRange(i,a,o))&&(i=r.globals.dataPoints-1),t===Number.MIN_VALUE&&0===e||!x.isNumber(t)&&!x.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE)return t=0,e=i,this.linearScale(t,e,i);t>e?(console.warn(\"axis.min cannot be greater than axis.max\"),e=t+.1):t===e&&(t=0===t?0:t-.5,e=0===e?2:e+.5);var n=[];o<1&&s&&(\"candlestick\"===r.config.chart.type||\"candlestick\"===r.config.series[a].type||\"boxPlot\"===r.config.chart.type||\"boxPlot\"===r.config.series[a].type||r.globals.isRangeData)&&(e*=1.01);var l=i+1;l<2?l=2:l>2&&(l-=2);var h=o/l,c=Math.floor(x.log10(h)),d=Math.pow(10,c),g=Math.round(h/d);g<1&&(g=1);var u=g*d,p=u*Math.floor(t/u),f=u*Math.ceil(e/u),b=p;if(s&&o>2){for(;n.push(b),!((b+=u)>f););return{result:n,niceMin:n[0],niceMax:n[n.length-1]}}var v=t;(n=[]).push(v);for(var m=Math.abs(e-t)/i,y=0;y<=i;y++)v+=m,n.push(v);return n[n.length-2]>=e&&n.pop(),{result:n,niceMin:n[0],niceMax:n[n.length-1]}}},{key:\"linearScale\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3?arguments[3]:void 0,s=Math.abs(e-t);\"dataPoints\"===(i=this._adjustTicksForSmallRange(i,a,s))&&(i=this.w.globals.dataPoints-1);var r=s/i;i===Number.MAX_VALUE&&(i=10,r=1);for(var o=[],n=t;i>=0;)o.push(n),n+=r,i-=1;return{result:o,niceMin:o[0],niceMax:o[o.length-1]}}},{key:\"logarithmicScaleNice\",value:function(t,e,i){e<=0&&(e=Math.max(t,i)),t<=0&&(t=Math.min(e,i));for(var a=[],s=Math.ceil(Math.log(e)/Math.log(i)+1),r=Math.floor(Math.log(t)/Math.log(i));r<s;r++)a.push(Math.pow(i,r));return{result:a,niceMin:a[0],niceMax:a[a.length-1]}}},{key:\"logarithmicScale\",value:function(t,e,i){e<=0&&(e=Math.max(t,i)),t<=0&&(t=Math.min(e,i));for(var a=[],s=Math.log(e)/Math.log(i),r=Math.log(t)/Math.log(i),o=s-r,n=Math.round(o),l=o/n,h=0,c=r;h<n;h++,c+=l)a.push(Math.pow(i,c));return a.push(Math.pow(i,s)),{result:a,niceMin:t,niceMax:e}}},{key:\"_adjustTicksForSmallRange\",value:function(t,e,i){var a=t;if(void 0!==e&&this.w.config.yaxis[e].labels.formatter&&void 0===this.w.config.yaxis[e].tickAmount){var s=Number(this.w.config.yaxis[e].labels.formatter(1));x.isNumber(s)&&0===this.w.globals.yValueDecimal&&(a=Math.ceil(i))}return a<t?a:t}},{key:\"setYScaleForIndex\",value:function(t,e,i){var a=this.w.globals,s=this.w.config,r=a.isBarHorizontal?s.xaxis:s.yaxis[t];void 0===a.yAxisScale[t]&&(a.yAxisScale[t]=[]);var o=Math.abs(i-e);if(r.logarithmic&&o<=5&&(a.invalidLogScale=!0),r.logarithmic&&o>5)a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.logarithmicScale(e,i,r.logBase),a.yAxisScale[t]=r.forceNiceScale?this.logarithmicScaleNice(e,i,r.logBase):this.logarithmicScale(e,i,r.logBase);else if(i!==-Number.MAX_VALUE&&x.isNumber(i))if(a.allSeriesCollapsed=!1,void 0===r.min&&void 0===r.max||r.forceNiceScale){var n=void 0===s.yaxis[t].max&&void 0===s.yaxis[t].min||s.yaxis[t].forceNiceScale;a.yAxisScale[t]=this.niceScale(e,i,r.tickAmount?r.tickAmount:o<5&&o>1?o+1:5,t,n)}else a.yAxisScale[t]=this.linearScale(e,i,r.tickAmount,t);else a.yAxisScale[t]=this.linearScale(0,5,5)}},{key:\"setXScale\",value:function(t,e){var i=this.w,a=i.globals,s=i.config.xaxis,r=Math.abs(e-t);return e!==-Number.MAX_VALUE&&x.isNumber(e)?a.xAxisScale=this.linearScale(t,e,s.tickAmount?s.tickAmount:r<5&&r>1?r+1:5,0):a.xAxisScale=this.linearScale(0,5,5),a.xAxisScale}},{key:\"setMultipleYScales\",value:function(){var t=this,e=this.w.globals,i=this.w.config,a=e.minYArr.concat([]),s=e.maxYArr.concat([]),r=[];i.yaxis.forEach((function(e,o){var n=o;i.series.forEach((function(t,i){t.name===e.seriesName&&(n=i,o!==i?r.push({index:i,similarIndex:o,alreadyExists:!0}):r.push({index:i}))}));var l=a[n],h=s[n];t.setYScaleForIndex(o,l,h)})),this.sameScaleInMultipleAxes(a,s,r)}},{key:\"sameScaleInMultipleAxes\",value:function(t,e,i){var a=this,s=this.w.config,r=this.w.globals,o=[];i.forEach((function(t){t.alreadyExists&&(void 0===o[t.index]&&(o[t.index]=[]),o[t.index].push(t.index),o[t.index].push(t.similarIndex))})),r.yAxisSameScaleIndices=o,o.forEach((function(t,e){o.forEach((function(i,a){var s,r;e!==a&&(s=t,r=i,s.filter((function(t){return-1!==r.indexOf(t)}))).length>0&&(o[e]=o[e].concat(o[a]))}))}));var n=o.map((function(t){return t.filter((function(e,i){return t.indexOf(e)===i}))})).map((function(t){return t.sort()}));o=o.filter((function(t){return!!t}));var l=n.slice(),h=l.map((function(t){return JSON.stringify(t)}));l=l.filter((function(t,e){return h.indexOf(JSON.stringify(t))===e}));var c=[],d=[];t.forEach((function(t,i){l.forEach((function(a,s){a.indexOf(i)>-1&&(void 0===c[s]&&(c[s]=[],d[s]=[]),c[s].push({key:i,value:t}),d[s].push({key:i,value:e[i]}))}))}));var g=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,Number.MIN_VALUE),u=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,-Number.MAX_VALUE);c.forEach((function(t,e){t.forEach((function(t,i){g[e]=Math.min(t.value,g[e])}))})),d.forEach((function(t,e){t.forEach((function(t,i){u[e]=Math.max(t.value,u[e])}))})),t.forEach((function(t,e){d.forEach((function(t,i){var o=g[i],n=u[i];s.chart.stacked&&(n=0,t.forEach((function(t,e){t.value!==-Number.MAX_VALUE&&(n+=t.value),o!==Number.MIN_VALUE&&(o+=c[i][e].value)}))),t.forEach((function(i,l){t[l].key===e&&(void 0!==s.yaxis[e].min&&(o=\"function\"==typeof s.yaxis[e].min?s.yaxis[e].min(r.minY):s.yaxis[e].min),void 0!==s.yaxis[e].max&&(n=\"function\"==typeof s.yaxis[e].max?s.yaxis[e].max(r.maxY):s.yaxis[e].max),a.setYScaleForIndex(e,o,n))}))}))}))}},{key:\"autoScaleY\",value:function(t,e,i){t||(t=this);var a=t.w;if(a.globals.isMultipleYAxis||a.globals.collapsedSeries.length)return console.warn(\"autoScaleYaxis is not supported in a multi-yaxis chart.\"),e;var s=a.globals.seriesX[0],r=a.config.chart.stacked;return e.forEach((function(t,o){for(var n=0,l=0;l<s.length;l++)if(s[l]>=i.xaxis.min){n=l;break}var h,c,d=a.globals.minYArr[o],g=a.globals.maxYArr[o],u=a.globals.stackedSeriesTotals;a.globals.series.forEach((function(o,l){var p=o[n];r?(p=u[n],h=c=p,u.forEach((function(t,e){s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min&&(t>c&&null!==t&&(c=t),o[e]<h&&null!==o[e]&&(h=o[e]))}))):(h=c=p,o.forEach((function(t,e){if(s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min){var r=t,o=t;a.globals.series.forEach((function(i,a){null!==t&&(r=Math.min(i[e],r),o=Math.max(i[e],o))})),o>c&&null!==o&&(c=o),r<h&&null!==r&&(h=r)}}))),void 0===h&&void 0===c&&(h=d,c=g),c*=c<0?.9:1.1,0===(h*=h<0?1.1:.9)&&0===c&&(h=-1,c=1),c<0&&c<g&&(c=g),h<0&&h>d&&(h=d),e.length>1?(e[l].min=void 0===t.min?h:t.min,e[l].max=void 0===t.max?c:t.max):(e[0].min=void 0===t.min?h:t.min,e[0].max=void 0===t.max?c:t.max)}))})),e}}]),t}(),U=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.scales=new _(e)}return r(t,[{key:\"init\",value:function(){this.setYRange(),this.setXRange(),this.setZRange()}},{key:\"getMinYMaxY\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.config,r=this.w.globals,o=-Number.MAX_VALUE,n=Number.MIN_VALUE;null===a&&(a=t+1);var l=r.series,h=l,c=l;\"candlestick\"===s.chart.type?(h=r.seriesCandleL,c=r.seriesCandleH):\"boxPlot\"===s.chart.type?(h=r.seriesCandleO,c=r.seriesCandleC):r.isRangeData&&(h=r.seriesRangeStart,c=r.seriesRangeEnd);for(var d=t;d<a;d++){r.dataPoints=Math.max(r.dataPoints,l[d].length),r.categoryLabels.length&&(r.dataPoints=r.categoryLabels.filter((function(t){return void 0!==t})).length),r.labels.length&&(r.dataPoints=Math.max(r.dataPoints,r.labels.length));for(var g=0;g<r.series[d].length;g++){var u=l[d][g];null!==u&&x.isNumber(u)?(void 0!==c[d][g]&&(o=Math.max(o,c[d][g]),e=Math.min(e,c[d][g])),void 0!==h[d][g]&&(e=Math.min(e,h[d][g]),i=Math.max(i,h[d][g])),\"candlestick\"!==this.w.config.chart.type&&\"boxPlot\"!==this.w.config.chart.type&&\"rangeArea\"===this.w.config.chart.type&&\"rangeBar\"===this.w.config.chart.type||(\"candlestick\"!==this.w.config.chart.type&&\"boxPlot\"!==this.w.config.chart.type||void 0!==r.seriesCandleC[d][g]&&(o=Math.max(o,r.seriesCandleO[d][g]),o=Math.max(o,r.seriesCandleH[d][g]),o=Math.max(o,r.seriesCandleL[d][g]),o=Math.max(o,r.seriesCandleC[d][g]),\"boxPlot\"===this.w.config.chart.type&&(o=Math.max(o,r.seriesCandleM[d][g]))),!s.series[d].type||\"candlestick\"===s.series[d].type&&\"boxPlot\"===s.series[d].type&&\"rangeArea\"===s.series[d].type&&\"rangeBar\"===s.series[d].type||(o=Math.max(o,r.series[d][g]),e=Math.min(e,r.series[d][g])),i=o),r.seriesGoals[d]&&r.seriesGoals[d][g]&&Array.isArray(r.seriesGoals[d][g])&&r.seriesGoals[d][g].forEach((function(t){n!==Number.MIN_VALUE&&(n=Math.min(n,t.value),e=n),o=Math.max(o,t.value),i=o})),x.isFloat(u)&&(u=x.noExponents(u),r.yValueDecimal=Math.max(r.yValueDecimal,u.toString().split(\".\")[1].length)),n>h[d][g]&&h[d][g]<0&&(n=h[d][g])):r.hasNullValues=!0}}return\"rangeBar\"===s.chart.type&&r.seriesRangeStart.length&&r.isBarHorizontal&&(n=e),\"bar\"===s.chart.type&&(n<0&&o<0&&(o=0),n===Number.MIN_VALUE&&(n=0)),{minY:n,maxY:o,lowestY:e,highestY:i}}},{key:\"setYRange\",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i=Number.MAX_VALUE;if(t.isMultipleYAxis)for(var a=0;a<t.series.length;a++){var s=this.getMinYMaxY(a,i,null,a+1);t.minYArr.push(s.minY),t.maxYArr.push(s.maxY),i=s.lowestY}var r=this.getMinYMaxY(0,i,null,t.series.length);if(t.minY=r.minY,t.maxY=r.maxY,i=r.lowestY,e.chart.stacked&&this._setStackedMinMax(),(\"line\"===e.chart.type||\"area\"===e.chart.type||\"candlestick\"===e.chart.type||\"boxPlot\"===e.chart.type||\"rangeBar\"===e.chart.type&&!t.isBarHorizontal)&&t.minY===Number.MIN_VALUE&&i!==-Number.MAX_VALUE&&i!==t.maxY){var o=t.maxY-i;(i>=0&&i<=10||void 0!==e.yaxis[0].min||void 0!==e.yaxis[0].max)&&(o=0),t.minY=i-5*o/100,i>0&&t.minY<0&&(t.minY=0),t.maxY=t.maxY+5*o/100}if(e.yaxis.forEach((function(e,i){void 0!==e.max&&(\"number\"==typeof e.max?t.maxYArr[i]=e.max:\"function\"==typeof e.max&&(t.maxYArr[i]=e.max(t.isMultipleYAxis?t.maxYArr[i]:t.maxY)),t.maxY=t.maxYArr[i]),void 0!==e.min&&(\"number\"==typeof e.min?t.minYArr[i]=e.min:\"function\"==typeof e.min&&(t.minYArr[i]=e.min(t.isMultipleYAxis?t.minYArr[i]===Number.MIN_VALUE?0:t.minYArr[i]:t.minY)),t.minY=t.minYArr[i])})),t.isBarHorizontal){[\"min\",\"max\"].forEach((function(i){void 0!==e.xaxis[i]&&\"number\"==typeof e.xaxis[i]&&(\"min\"===i?t.minY=e.xaxis[i]:t.maxY=e.xaxis[i])}))}return t.isMultipleYAxis?(this.scales.setMultipleYScales(),t.minY=i,t.yAxisScale.forEach((function(e,i){t.minYArr[i]=e.niceMin,t.maxYArr[i]=e.niceMax}))):(this.scales.setYScaleForIndex(0,t.minY,t.maxY),t.minY=t.yAxisScale[0].niceMin,t.maxY=t.yAxisScale[0].niceMax,t.minYArr[0]=t.yAxisScale[0].niceMin,t.maxYArr[0]=t.yAxisScale[0].niceMax),{minY:t.minY,maxY:t.maxY,minYArr:t.minYArr,maxYArr:t.maxYArr,yAxisScale:t.yAxisScale}}},{key:\"setXRange\",value:function(){var t=this.w.globals,e=this.w.config,i=\"numeric\"===e.xaxis.type||\"datetime\"===e.xaxis.type||\"category\"===e.xaxis.type&&!t.noLabelsProvided||t.noLabelsProvided||t.isXNumeric;if(t.isXNumeric&&function(){for(var e=0;e<t.series.length;e++)if(t.labels[e])for(var i=0;i<t.labels[e].length;i++)null!==t.labels[e][i]&&x.isNumber(t.labels[e][i])&&(t.maxX=Math.max(t.maxX,t.labels[e][i]),t.initialMaxX=Math.max(t.maxX,t.labels[e][i]),t.minX=Math.min(t.minX,t.labels[e][i]),t.initialMinX=Math.min(t.minX,t.labels[e][i]))}(),t.noLabelsProvided&&0===e.xaxis.categories.length&&(t.maxX=t.labels[t.labels.length-1],t.initialMaxX=t.labels[t.labels.length-1],t.minX=1,t.initialMinX=1),t.isXNumeric||t.noLabelsProvided||t.dataFormatXNumeric){var a;if(void 0===e.xaxis.tickAmount?(a=Math.round(t.svgWidth/150),\"numeric\"===e.xaxis.type&&t.dataPoints<30&&(a=t.dataPoints-1),a>t.dataPoints&&0!==t.dataPoints&&(a=t.dataPoints-1)):\"dataPoints\"===e.xaxis.tickAmount?(t.series.length>1&&(a=t.series[t.maxValsInArrayIndex].length-1),t.isXNumeric&&(a=t.maxX-t.minX-1)):a=e.xaxis.tickAmount,t.xTickAmount=a,void 0!==e.xaxis.max&&\"number\"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&\"number\"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!t.dataFormatXNumeric){for(var s=[],r=t.minX-1;r<t.maxX;r++)s.push(r+1);t.xAxisScale={result:s,niceMin:s[0],niceMax:s[s.length-1]}}else t.xAxisScale=this.scales.setXScale(t.minX,t.maxX);else t.xAxisScale=this.scales.linearScale(1,a,a),t.noLabelsProvided&&t.labels.length>0&&(t.xAxisScale=this.scales.linearScale(1,t.labels.length,a-1),t.seriesX=t.labels.slice());i&&(t.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&t.labels.length&&(t.xTickAmount=t.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}},{key:\"setZRange\",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e<t.series.length;e++)if(void 0!==t.seriesZ[e])for(var i=0;i<t.seriesZ[e].length;i++)null!==t.seriesZ[e][i]&&x.isNumber(t.seriesZ[e][i])&&(t.maxZ=Math.max(t.maxZ,t.seriesZ[e][i]),t.minZ=Math.min(t.minZ,t.seriesZ[e][i]))}},{key:\"_handleSingleDataPoint\",value:function(){var t=this.w.globals,e=this.w.config;if(t.minX===t.maxX){var i=new I(this.ctx);if(\"datetime\"===e.xaxis.type){var a=i.getDate(t.minX);e.xaxis.labels.datetimeUTC?a.setUTCDate(a.getUTCDate()-2):a.setDate(a.getDate()-2),t.minX=new Date(a).getTime();var s=i.getDate(t.maxX);e.xaxis.labels.datetimeUTC?s.setUTCDate(s.getUTCDate()+2):s.setDate(s.getDate()+2),t.maxX=new Date(s).getTime()}else(\"numeric\"===e.xaxis.type||\"category\"===e.xaxis.type&&!t.noLabelsProvided)&&(t.minX=t.minX-2,t.initialMinX=t.minX,t.maxX=t.maxX+2,t.initialMaxX=t.maxX)}}},{key:\"_getMinXDiff\",value:function(){var t=this.w.globals;t.isXNumeric&&t.seriesX.forEach((function(e,i){1===e.length&&e.push(t.seriesX[t.maxValsInArrayIndex][t.seriesX[t.maxValsInArrayIndex].length-1]);var a=e.slice();a.sort((function(t,e){return t-e})),a.forEach((function(e,i){if(i>0){var s=e-a[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}})),1!==t.dataPoints&&t.minXDiff!==Number.MAX_VALUE||(t.minXDiff=.5)}))}},{key:\"_setStackedMinMax\",value:function(){var t=this,e=this.w.globals;if(e.series.length){var i=e.seriesGroups;i.length||(i=[this.w.config.series.map((function(t){return t.name}))]);var a={},s={};i.forEach((function(i){a[i]=[],s[i]=[],t.w.config.series.map((function(t,e){return i.indexOf(t.name)>-1?e:null})).filter((function(t){return null!==t})).forEach((function(t){for(var r=0;r<e.series[e.maxValsInArrayIndex].length;r++)void 0===a[i][r]&&(a[i][r]=0,s[i][r]=0),null!==e.series[t][r]&&x.isNumber(e.series[t][r])&&(e.series[t][r]>0?a[i][r]+=parseFloat(e.series[t][r])+1e-4:s[i][r]+=parseFloat(e.series[t][r]))}))})),Object.entries(a).forEach((function(t){var i=g(t,1)[0];a[i].forEach((function(t,r){e.maxY=Math.max(e.maxY,a[i][r]),e.minY=Math.min(e.minY,s[i][r])}))}))}}}]),t}(),q=function(){function t(e,i){a(this,t),this.ctx=e,this.elgrid=i,this.w=e.w;var s=this.w;this.xaxisFontSize=s.config.xaxis.labels.style.fontSize,this.axisFontFamily=s.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=s.config.xaxis.labels.style.colors,this.isCategoryBarHorizontal=\"bar\"===s.config.chart.type&&s.config.plotOptions.bar.horizontal,this.xAxisoffX=0,\"bottom\"===s.config.xaxis.position&&(this.xAxisoffX=s.globals.gridHeight),this.drawnLabels=[],this.axesUtils=new B(e)}return r(t,[{key:\"drawYaxis\",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=i.config.yaxis[t].labels.style,r=s.fontSize,o=s.fontFamily,n=s.fontWeight,l=a.group({class:\"apexcharts-yaxis\",rel:t,transform:\"translate(\"+i.globals.translateYAxisX[t]+\", 0)\"});if(this.axesUtils.isYAxisHidden(t))return l;var h=a.group({class:\"apexcharts-yaxis-texts-g\"});l.add(h);var c=i.globals.yAxisScale[t].result.length-1,d=i.globals.gridHeight/c,g=i.globals.translateY,u=i.globals.yLabelFormatters[t],p=i.globals.yAxisScale[t].result.slice();p=this.axesUtils.checkForReversedLabels(t,p);var f=\"\";if(i.config.yaxis[t].labels.show)for(var x=function(l){var x=p[l];x=u(x,l,i);var b=i.config.yaxis[t].labels.padding;i.config.yaxis[t].opposite&&0!==i.config.yaxis.length&&(b*=-1);var v=\"end\";i.config.yaxis[t].opposite&&(v=\"start\"),\"left\"===i.config.yaxis[t].labels.align?v=\"start\":\"center\"===i.config.yaxis[t].labels.align?v=\"middle\":\"right\"===i.config.yaxis[t].labels.align&&(v=\"end\");var m=e.axesUtils.getYAxisForeColor(s.colors,t),y=a.drawText({x:b,y:g+c/10+i.config.yaxis[t].labels.offsetY+1,text:x,textAnchor:v,fontSize:r,fontFamily:o,fontWeight:n,maxWidth:i.config.yaxis[t].labels.maxWidth,foreColor:Array.isArray(m)?m[l]:m,isPlainText:!1,cssClass:\"apexcharts-yaxis-label \"+s.cssClass});l===c&&(f=y),h.add(y);var w=document.createElementNS(i.globals.SVGNS,\"title\");if(w.textContent=Array.isArray(x)?x.join(\" \"):x,y.node.appendChild(w),0!==i.config.yaxis[t].labels.rotate){var k=a.rotateAroundCenter(f.node),A=a.rotateAroundCenter(y.node);y.node.setAttribute(\"transform\",\"rotate(\".concat(i.config.yaxis[t].labels.rotate,\" \").concat(k.x,\" \").concat(A.y,\")\"))}g+=d},b=c;b>=0;b--)x(b);if(void 0!==i.config.yaxis[t].title.text){var v=a.group({class:\"apexcharts-yaxis-title\"}),y=0;i.config.yaxis[t].opposite&&(y=i.globals.translateYAxisX[t]);var w=a.drawText({x:y,y:i.globals.gridHeight/2+i.globals.translateY+i.config.yaxis[t].title.offsetY,text:i.config.yaxis[t].title.text,textAnchor:\"end\",foreColor:i.config.yaxis[t].title.style.color,fontSize:i.config.yaxis[t].title.style.fontSize,fontWeight:i.config.yaxis[t].title.style.fontWeight,fontFamily:i.config.yaxis[t].title.style.fontFamily,cssClass:\"apexcharts-yaxis-title-text \"+i.config.yaxis[t].title.style.cssClass});v.add(w),l.add(v)}var k=i.config.yaxis[t].axisBorder,A=31+k.offsetX;if(i.config.yaxis[t].opposite&&(A=-31-k.offsetX),k.show){var S=a.drawLine(A,i.globals.translateY+k.offsetY-2,A,i.globals.gridHeight+i.globals.translateY+k.offsetY+2,k.color,0,k.width);l.add(S)}return i.config.yaxis[t].axisTicks.show&&this.axesUtils.drawYAxisTicks(A,c,k,i.config.yaxis[t].axisTicks,t,d,l),l}},{key:\"drawYaxisInversed\",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:\"apexcharts-xaxis apexcharts-yaxis-inversed\"}),s=i.group({class:\"apexcharts-xaxis-texts-g\",transform:\"translate(\".concat(e.globals.translateXAxisX,\", \").concat(e.globals.translateXAxisY,\")\")});a.add(s);var r=e.globals.yAxisScale[t].result.length-1,o=e.globals.gridWidth/r+.1,n=o+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,h=e.globals.yAxisScale[t].result.slice(),c=e.globals.timescaleLabels;c.length>0&&(this.xaxisLabels=c.slice(),r=(h=c.slice()).length),h=this.axesUtils.checkForReversedLabels(t,h);var d=c.length;if(e.config.xaxis.labels.show)for(var g=d?0:r;d?g<d:g>=0;d?g++:g--){var u=h[g];u=l(u,g,e);var p=e.globals.gridWidth+e.globals.padHorizontal-(n-o+e.config.xaxis.labels.offsetX);if(c.length){var f=this.axesUtils.getLabel(h,c,p,g,this.drawnLabels,this.xaxisFontSize);p=f.x,u=f.text,this.drawnLabels.push(f.text),0===g&&e.globals.skipFirstTimelinelabel&&(u=\"\"),g===h.length-1&&e.globals.skipLastTimelinelabel&&(u=\"\")}var x=i.drawText({x:p,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-(\"top\"===e.config.xaxis.position?e.globals.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:u,textAnchor:\"middle\",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:\"apexcharts-xaxis-label \"+e.config.xaxis.labels.style.cssClass});s.add(x),x.tspan(u);var b=document.createElementNS(e.globals.SVGNS,\"title\");b.textContent=u,x.node.appendChild(b),n+=o}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:\"inversedYAxisBorder\",value:function(t){var e=this.w,i=new m(this.ctx),a=e.config.xaxis.axisBorder;if(a.show){var s=0;\"bar\"===e.config.chart.type&&e.globals.isXNumeric&&(s-=15);var r=i.drawLine(e.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,e.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);this.elgrid&&this.elgrid.elGridBorders&&e.config.grid.show?this.elgrid.elGridBorders.add(r):t.add(r)}}},{key:\"inversedYAxisTitleText\",value:function(t){var e=this.w,i=new m(this.ctx);if(void 0!==e.config.xaxis.title.text){var a=i.group({class:\"apexcharts-xaxis-title apexcharts-yaxis-title-inversed\"}),s=i.drawText({x:e.globals.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:\"middle\",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:\"apexcharts-xaxis-title-text \"+e.config.xaxis.title.style.cssClass});a.add(s),t.add(a)}}},{key:\"yAxisTitleRotate\",value:function(t,e){var i=this.w,a=new m(this.ctx),s={width:0,height:0},r={width:0,height:0},o=i.globals.dom.baseEl.querySelector(\" .apexcharts-yaxis[rel='\".concat(t,\"'] .apexcharts-yaxis-texts-g\"));null!==o&&(s=o.getBoundingClientRect());var n=i.globals.dom.baseEl.querySelector(\".apexcharts-yaxis[rel='\".concat(t,\"'] .apexcharts-yaxis-title text\"));if(null!==n&&(r=n.getBoundingClientRect()),null!==n){var l=this.xPaddingForYAxisTitle(t,s,r,e);n.setAttribute(\"x\",l.xPos-(e?10:0))}if(null!==n){var h=a.rotateAroundCenter(n);n.setAttribute(\"transform\",\"rotate(\".concat(e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate,\" \").concat(h.x,\" \").concat(h.y,\")\"))}}},{key:\"xPaddingForYAxisTitle\",value:function(t,e,i,a){var s=this.w,r=0,o=0,n=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:o,padd:0}:(a?(o=e.width+s.config.yaxis[t].title.offsetX+i.width/2+n/2,0===(r+=1)&&(o-=n/2)):(o=-1*e.width+s.config.yaxis[t].title.offsetX+n/2+i.width/2,s.globals.isBarHorizontal&&(n=25,o=-1*e.width-s.config.yaxis[t].title.offsetX-n)),{xPos:o,padd:n})}},{key:\"setYAxisXPosition\",value:function(t,e){var i=this.w,a=0,s=0,r=18,o=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map((function(n,l){var h=i.globals.ignoreYAxisIndexes.indexOf(l)>-1||!n.show||n.floating||0===t[l].width,c=t[l].width+e[l].width;n.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-n.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+o,h||(o=o+c+20),i.globals.translateYAxisX[l]=s-n.labels.offsetX+20):(a=i.globals.translateX-r,h||(r=r+c+20),i.globals.translateYAxisX[l]=a+n.labels.offsetX)}))}},{key:\"setYAxisTextAlignments\",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-yaxis\");(e=x.listToArray(e)).forEach((function(e,i){var a=t.config.yaxis[i];if(a&&!a.floating&&void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(\".apexcharts-yaxis[rel='\".concat(i,\"'] .apexcharts-yaxis-texts-g\")),r=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis[rel='\".concat(i,\"'] .apexcharts-yaxis-label\"));r=x.listToArray(r);var o=s.getBoundingClientRect();\"left\"===a.labels.align?(r.forEach((function(t,e){t.setAttribute(\"text-anchor\",\"start\")})),a.opposite||s.setAttribute(\"transform\",\"translate(-\".concat(o.width,\", 0)\"))):\"center\"===a.labels.align?(r.forEach((function(t,e){t.setAttribute(\"text-anchor\",\"middle\")})),s.setAttribute(\"transform\",\"translate(\".concat(o.width/2*(a.opposite?1:-1),\", 0)\"))):\"right\"===a.labels.align&&(r.forEach((function(t,e){t.setAttribute(\"text-anchor\",\"end\")})),a.opposite&&s.setAttribute(\"transform\",\"translate(\".concat(o.width,\", 0)\")))}}))}}]),t}(),Z=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.documentEvent=x.bind(this.documentEvent,this)}return r(t,[{key:\"addEventListener\",value:function(t,e){var i=this.w;i.globals.events.hasOwnProperty(t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}},{key:\"removeEventListener\",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){var a=i.globals.events[t].indexOf(e);-1!==a&&i.globals.events[t].splice(a,1)}}},{key:\"fireEvent\",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){e&&e.length||(e=[]);for(var a=i.globals.events[t],s=a.length,r=0;r<s;r++)a[r].apply(null,e)}}},{key:\"setupEventHandlers\",value:function(){var t=this,e=this.w,i=this.ctx,a=e.globals.dom.baseEl.querySelector(e.globals.chartClass);this.ctx.eventList.forEach((function(t){a.addEventListener(t,(function(t){var a=Object.assign({},e,{seriesIndex:e.globals.capturedSeriesIndex,dataPointIndex:e.globals.capturedDataPointIndex});\"mousemove\"===t.type||\"touchmove\"===t.type?\"function\"==typeof e.config.chart.events.mouseMove&&e.config.chart.events.mouseMove(t,i,a):\"mouseleave\"===t.type||\"touchleave\"===t.type?\"function\"==typeof e.config.chart.events.mouseLeave&&e.config.chart.events.mouseLeave(t,i,a):(\"mouseup\"===t.type&&1===t.which||\"touchend\"===t.type)&&(\"function\"==typeof e.config.chart.events.click&&e.config.chart.events.click(t,i,a),i.ctx.events.fireEvent(\"click\",[t,i,a]))}),{capture:!1,passive:!0})})),this.ctx.eventList.forEach((function(i){e.globals.dom.baseEl.addEventListener(i,t.documentEvent,{passive:!0})})),this.ctx.core.setupBrushHandler()}},{key:\"documentEvent\",value:function(t){var e=this.w,i=t.target.className;if(\"click\"===t.type){var a=e.globals.dom.baseEl.querySelector(\".apexcharts-menu\");a&&a.classList.contains(\"apexcharts-menu-open\")&&\"apexcharts-menu-icon\"!==i&&a.classList.remove(\"apexcharts-menu-open\")}e.globals.clientX=\"touchmove\"===t.type?t.touches[0].clientX:t.clientX,e.globals.clientY=\"touchmove\"===t.type?t.touches[0].clientY:t.clientY}}]),t}(),$=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"setCurrentLocaleValues\",value:function(t){var e=this.w.config.chart.locales;window.Apex.chart&&window.Apex.chart.locales&&window.Apex.chart.locales.length>0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter((function(e){return e.name===t}))[0];if(!i)throw new Error(\"Wrong locale name provided. Please make sure you set the correct locale name in options\");var a=x.extend(C,i);this.w.globals.locale=a.options}}]),t}(),J=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"drawAxis\",value:function(t,e){var i,a,s=this,r=this.w.globals,o=this.w.config,n=new V(this.ctx,e),l=new q(this.ctx,e);r.axisCharts&&\"radar\"!==t&&(r.isBarHorizontal?(a=l.drawYaxisInversed(0),i=n.drawXaxisInversed(0),r.dom.elGraphical.add(i),r.dom.elGraphical.add(a)):(i=n.drawXaxis(),r.dom.elGraphical.add(i),o.yaxis.map((function(t,e){if(-1===r.ignoreYAxisIndexes.indexOf(e)&&(a=l.drawYaxis(e),r.dom.Paper.add(a),\"back\"===s.w.config.grid.position)){var i=r.dom.Paper.children()[1];i.remove(),r.dom.Paper.add(i)}}))))}}]),t}(),Q=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"drawXCrosshairs\",value:function(){var t=this.w,e=new m(this.ctx),i=new v(this.ctx),a=t.config.xaxis.crosshairs.fill.gradient,s=t.config.xaxis.crosshairs.dropShadow,r=t.config.xaxis.crosshairs.fill.type,o=a.colorFrom,n=a.colorTo,l=a.opacityFrom,h=a.opacityTo,c=a.stops,d=s.enabled,g=s.left,u=s.top,p=s.blur,f=s.color,b=s.opacity,y=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){\"gradient\"===r&&(y=e.drawGradient(\"vertical\",o,n,l,h,null,c,null));var w=e.drawRect();1===t.config.xaxis.crosshairs.width&&(w=e.drawLine());var k=t.globals.gridHeight;(!x.isNumber(k)||k<0)&&(k=0);var A=t.config.xaxis.crosshairs.width;(!x.isNumber(A)||A<0)&&(A=0),w.attr({class:\"apexcharts-xcrosshairs\",x:0,y:0,y2:k,width:A,height:k,fill:y,filter:\"none\",\"fill-opacity\":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,\"stroke-width\":t.config.xaxis.crosshairs.stroke.width,\"stroke-dasharray\":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(w=i.dropShadow(w,{left:g,top:u,blur:p,color:f,opacity:b})),t.globals.dom.elGraphical.add(w)}}},{key:\"drawYCrosshairs\",value:function(){var t=this.w,e=new m(this.ctx),i=t.config.yaxis[0].crosshairs,a=t.globals.barPadForNumericAxis;if(t.config.yaxis[0].crosshairs.show){var s=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:\"apexcharts-ycrosshairs\"}),t.globals.dom.elGraphical.add(s)}var r=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:\"apexcharts-ycrosshairs-hidden\"}),t.globals.dom.elGraphical.add(r)}}]),t}(),K=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"checkResponsiveConfig\",value:function(t){var e=this,i=this.w,a=i.config;if(0!==a.responsive.length){var s=a.responsive.slice();s.sort((function(t,e){return t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0})).reverse();var r=new E({}),o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,o=window.innerWidth>0?window.innerWidth:screen.width;if(o>a){var n=y.extendArrayProps(r,i.globals.initialConfig,i);t=x.extend(n,t),t=x.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var l=0;l<s.length;l++)o<s[l].breakpoint&&(t=y.extendArrayProps(r,s[l].options,i),t=x.extend(i.config,t),e.overrideResponsiveOptions(t))};if(t){var n=y.extendArrayProps(r,t,i);n=x.extend(i.config,n),o(n=x.extend(n,t))}else o({})}}},{key:\"overrideResponsiveOptions\",value:function(t){var e=new E(t).init({responsiveOverride:!0});this.w.config=e}}]),t}(),tt=function(){function t(e){a(this,t),this.ctx=e,this.colors=[],this.w=e.w;var i=this.w;this.isColorFn=!1,this.isHeatmapDistributed=\"treemap\"===i.config.chart.type&&i.config.plotOptions.treemap.distributed||\"heatmap\"===i.config.chart.type&&i.config.plotOptions.heatmap.distributed,this.isBarDistributed=i.config.plotOptions.bar.distributed&&(\"bar\"===i.config.chart.type||\"rangeBar\"===i.config.chart.type)}return r(t,[{key:\"init\",value:function(){this.setDefaultColors()}},{key:\"setDefaultColors\",value:function(){var t,e=this,i=this.w,a=new x;if(i.globals.dom.elWrap.classList.add(\"apexcharts-theme-\".concat(i.config.theme.mode)),void 0===i.config.colors||0===(null===(t=i.config.colors)||void 0===t?void 0:t.length)?i.globals.colors=this.predefined():(i.globals.colors=i.config.colors,Array.isArray(i.config.colors)&&i.config.colors.length>0&&\"function\"==typeof i.config.colors[0]&&(i.globals.colors=i.config.series.map((function(t,a){var s=i.config.colors[a];return s||(s=i.config.colors[0]),\"function\"==typeof s?(e.isColorFn=!0,s({value:i.globals.axisCharts?i.globals.series[a][0]?i.globals.series[a][0]:0:i.globals.series[a],seriesIndex:a,dataPointIndex:a,w:i})):s})))),i.globals.seriesColors.map((function(t,e){t&&(i.globals.colors[e]=t)})),i.config.theme.monochrome.enabled){var s=[],r=i.globals.series.length;(this.isBarDistributed||this.isHeatmapDistributed)&&(r=i.globals.series[0].length*i.globals.series.length);for(var o=i.config.theme.monochrome.color,n=1/(r/i.config.theme.monochrome.shadeIntensity),l=i.config.theme.monochrome.shadeTo,h=0,c=0;c<r;c++){var d=void 0;\"dark\"===l?(d=a.shadeColor(-1*h,o),h+=n):(d=a.shadeColor(h,o),h+=n),s.push(d)}i.globals.colors=s.slice()}var g=i.globals.colors.slice();this.pushExtraColors(i.globals.colors);[\"fill\",\"stroke\"].forEach((function(t){void 0===i.config[t].colors?i.globals[t].colors=e.isColorFn?i.config.colors:g:i.globals[t].colors=i.config[t].colors.slice(),e.pushExtraColors(i.globals[t].colors)})),void 0===i.config.dataLabels.style.colors?i.globals.dataLabels.style.colors=g:i.globals.dataLabels.style.colors=i.config.dataLabels.style.colors.slice(),this.pushExtraColors(i.globals.dataLabels.style.colors,50),void 0===i.config.plotOptions.radar.polygons.fill.colors?i.globals.radarPolygons.fill.colors=[\"dark\"===i.config.theme.mode?\"#424242\":\"none\"]:i.globals.radarPolygons.fill.colors=i.config.plotOptions.radar.polygons.fill.colors.slice(),this.pushExtraColors(i.globals.radarPolygons.fill.colors,20),void 0===i.config.markers.colors?i.globals.markers.colors=g:i.globals.markers.colors=i.config.markers.colors.slice(),this.pushExtraColors(i.globals.markers.colors)}},{key:\"pushExtraColors\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||\"heatmap\"===a.config.chart.type&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),t.length<s)for(var r=s-t.length,o=0;o<r;o++)t.push(t[o])}},{key:\"updateThemeOptions\",value:function(t){t.chart=t.chart||{},t.tooltip=t.tooltip||{};var e=t.theme.mode||\"light\",i=t.theme.palette?t.theme.palette:\"dark\"===e?\"palette4\":\"palette1\",a=t.chart.foreColor?t.chart.foreColor:\"dark\"===e?\"#f6f7f8\":\"#373d3f\";return t.tooltip.theme=e,t.chart.foreColor=a,t.theme.palette=i,t}},{key:\"predefined\",value:function(){switch(this.w.config.theme.palette){case\"palette1\":default:this.colors=[\"#008FFB\",\"#00E396\",\"#FEB019\",\"#FF4560\",\"#775DD0\"];break;case\"palette2\":this.colors=[\"#3f51b5\",\"#03a9f4\",\"#4caf50\",\"#f9ce1d\",\"#FF9800\"];break;case\"palette3\":this.colors=[\"#33b2df\",\"#546E7A\",\"#d4526e\",\"#13d8aa\",\"#A5978B\"];break;case\"palette4\":this.colors=[\"#4ecdc4\",\"#c7f464\",\"#81D4FA\",\"#fd6a6a\",\"#546E7A\"];break;case\"palette5\":this.colors=[\"#2b908f\",\"#f9a3a4\",\"#90ee7e\",\"#fa4443\",\"#69d2e7\"];break;case\"palette6\":this.colors=[\"#449DD1\",\"#F86624\",\"#EA3546\",\"#662E9B\",\"#C5D86D\"];break;case\"palette7\":this.colors=[\"#D7263D\",\"#1B998B\",\"#2E294E\",\"#F46036\",\"#E2C044\"];break;case\"palette8\":this.colors=[\"#662E9B\",\"#F86624\",\"#F9C80E\",\"#EA3546\",\"#43BCCD\"];break;case\"palette9\":this.colors=[\"#5C4742\",\"#A5978B\",\"#8D5B4C\",\"#5A2A27\",\"#C4BBAF\"];break;case\"palette10\":this.colors=[\"#A300D6\",\"#7D02EB\",\"#5653FE\",\"#2983FF\",\"#00B1F2\"]}return this.colors}}]),t}(),et=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"draw\",value:function(){this.drawTitleSubtitle(\"title\"),this.drawTitleSubtitle(\"subtitle\")}},{key:\"drawTitleSubtitle\",value:function(t){var e=this.w,i=\"title\"===t?e.config.title:e.config.subtitle,a=e.globals.svgWidth/2,s=i.offsetY,r=\"middle\";if(\"left\"===i.align?(a=10,r=\"start\"):\"right\"===i.align&&(a=e.globals.svgWidth-10,r=\"end\"),a+=i.offsetX,s=s+parseInt(i.style.fontSize,10)+i.margin/2,void 0!==i.text){var o=new m(this.ctx).drawText({x:a,y:s,text:i.text,textAnchor:r,fontSize:i.style.fontSize,fontFamily:i.style.fontFamily,fontWeight:i.style.fontWeight,foreColor:i.style.color,opacity:1});o.node.setAttribute(\"class\",\"apexcharts-\".concat(t,\"-text\")),e.globals.dom.Paper.add(o)}}}]),t}(),it=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:\"getTitleSubtitleCoords\",value:function(t){var e=this.w,i=0,a=0,s=\"title\"===t?e.config.title.floating:e.config.subtitle.floating,r=e.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(t,\"-text\"));if(null!==r&&!s){var o=r.getBoundingClientRect();i=o.width,a=e.globals.axisCharts?o.height+5:o.height}return{width:i,height:a}}},{key:\"getLegendsRect\",value:function(){var t=this.w,e=t.globals.dom.elLegendWrap;t.config.legend.height||\"top\"!==t.config.legend.position&&\"bottom\"!==t.config.legend.position||(e.style.maxHeight=t.globals.svgHeight/2+\"px\");var i=Object.assign({},x.getBoundingClientRect(e));return null!==e&&!t.config.legend.floating&&t.config.legend.show?this.dCtx.lgRect={x:i.x,y:i.y,height:i.height,width:0===i.height?0:i.width}:this.dCtx.lgRect={x:0,y:0,height:0,width:0},\"left\"!==t.config.legend.position&&\"right\"!==t.config.legend.position||1.5*this.dCtx.lgRect.width>t.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:\"getLargestStringFromMultiArr\",value:function(t,e){var i=t;if(this.w.globals.isMultiLineX){var a=e.map((function(t,e){return Array.isArray(t)?t.length:1})),s=Math.max.apply(Math,u(a));i=e[a.indexOf(s)]}return i}}]),t}(),at=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:\"getxAxisLabelsCoords\",value:function(){var t,e=this.w,i=e.globals.labels.slice();if(e.config.xaxis.convertedCatToNumeric&&0===i.length&&(i=e.globals.categoryLabels),e.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height},e.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends=\"left\"!==e.config.legend.position&&\"right\"!==e.config.legend.position||e.config.legend.floating?0:this.dCtx.lgRect.width;var s=e.globals.xLabelFormatter,r=x.getLargestStringFromArr(i),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);e.globals.isBarHorizontal&&(o=r=e.globals.yAxisScale[0].result.reduce((function(t,e){return t.length>e.length?t:e}),0));var n=new T(this.dCtx.ctx),l=r;r=n.xLabelFormat(s,r,l,{i:void 0,dateFormatter:new I(this.dCtx.ctx).formatDate,w:e}),o=n.xLabelFormat(s,o,l,{i:void 0,dateFormatter:new I(this.dCtx.ctx).formatDate,w:e}),(e.config.xaxis.convertedCatToNumeric&&void 0===r||\"\"===String(r).trim())&&(o=r=\"1\");var h=new m(this.dCtx.ctx),c=h.getTextRects(r,e.config.xaxis.labels.style.fontSize),d=c;if(r!==o&&(d=h.getTextRects(o,e.config.xaxis.labels.style.fontSize)),(t={width:c.width>=d.width?c.width:d.width,height:c.height>=d.height?c.height:d.height}).width*i.length>e.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==e.config.xaxis.labels.rotate||e.config.xaxis.labels.rotateAlways){if(!e.globals.isBarHorizontal){e.globals.rotateXLabels=!0;var g=function(t){return h.getTextRects(t,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,\"rotate(\".concat(e.config.xaxis.labels.rotate,\" 0 0)\"),!1)};c=g(r),r!==o&&(d=g(o)),t.height=(c.height>d.height?c.height:d.height)/1.5,t.width=c.width>d.width?c.width:d.width}}else e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:\"getxAxisGroupLabelsCoords\",value:function(){var t,e=this.w;if(!e.globals.hasXaxisGroups)return{width:0,height:0};var i,a=(null===(t=e.config.xaxis.group.style)||void 0===t?void 0:t.fontSize)||e.config.xaxis.labels.style.fontSize,s=e.globals.groups.map((function(t){return t.title})),r=x.getLargestStringFromArr(s),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,s),n=new m(this.dCtx.ctx),l=n.getTextRects(r,a),h=l;return r!==o&&(h=n.getTextRects(o,a)),i={width:l.width>=h.width?l.width:h.width,height:l.height>=h.height?l.height:h.height},e.config.xaxis.labels.show||(i={width:0,height:0}),{width:i.width,height:i.height}}},{key:\"getxAxisTitleCoords\",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new m(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:\"getxAxisTimeScaleLabelsCoords\",value:function(){var t,e=this.w;this.dCtx.timescaleLabels=e.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map((function(t){return t.value})),a=i.reduce((function(t,e){return void 0===t?(console.error(\"You have possibly supplied invalid Date format. Please supply a valid JavaScript Date\"),0):t.length>e.length?t:e}),0);return 1.05*(t=new m(this.dCtx.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:\"additionalPaddingXLabels\",value:function(t){var e=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,o=t.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var n=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,l=function(t,n){s.yaxis.length>1&&function(t){return-1!==a.collapsedSeriesIndices.indexOf(t)}(n)||function(t){if(e.dCtx.timescaleLabels&&e.dCtx.timescaleLabels.length){var n=e.dCtx.timescaleLabels[0],l=e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length-1].position+o/1.75-e.dCtx.yAxisWidthRight,h=n.position-o/1.75+e.dCtx.yAxisWidthLeft,c=\"right\"===i.config.legend.position&&e.dCtx.lgRect.width>0?e.dCtx.lgRect.width:0;l>a.svgWidth-a.translateX-c&&(a.skipLastTimelinelabel=!0),h<-(t.show&&!t.floating||\"bar\"!==s.chart.type&&\"candlestick\"!==s.chart.type&&\"rangeBar\"!==s.chart.type&&\"boxPlot\"!==s.chart.type?10:o/1.75)&&(a.skipFirstTimelinelabel=!0)}else\"datetime\"===r?e.dCtx.gridPad.right<o&&!a.rotateXLabels&&(a.skipLastTimelinelabel=!0):\"datetime\"!==r&&e.dCtx.gridPad.right<o/2-e.dCtx.yAxisWidthRight&&!a.rotateXLabels&&!i.config.xaxis.labels.trim&&(\"between\"!==i.config.xaxis.tickPlacement||i.globals.isBarHorizontal)&&(e.dCtx.xPadRight=o/2+1)}(t)};s.yaxis.forEach((function(t,i){n?(e.dCtx.gridPad.left<o&&(e.dCtx.xPadLeft=o/2+1),e.dCtx.xPadRight=o/2+1):l(t,i)}))}}]),t}(),st=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:\"getyAxisLabelsCoords\",value:function(){var t=this,e=this.w,i=[],a=10,s=new B(this.dCtx.ctx);return e.config.yaxis.map((function(r,o){var n=e.globals.yAxisScale[o],l=0;if(!s.isYAxisHidden(o)&&r.labels.show&&void 0!==r.labels.minWidth&&(l=r.labels.minWidth),!s.isYAxisHidden(o)&&r.labels.show&&n.result.length){var h=e.globals.yLabelFormatters[o],c=n.niceMin===Number.MIN_VALUE?0:n.niceMin,d=String(c).length>String(n.niceMax).length?c:n.niceMax,g=h(d,{seriesIndex:o,dataPointIndex:-1,w:e}),u=g;if(void 0!==g&&0!==g.length||(g=d),e.globals.isBarHorizontal){a=0;var p=e.globals.labels.slice();g=h(g=x.getLargestStringFromArr(p),{seriesIndex:o,dataPointIndex:-1,w:e}),u=t.dCtx.dimHelpers.getLargestStringFromMultiArr(g,p)}var f=new m(t.dCtx.ctx),b=\"rotate(\".concat(r.labels.rotate,\" 0 0)\"),v=f.getTextRects(g,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1),y=v;g!==u&&(y=f.getTextRects(u,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1)),i.push({width:(l>y.width||l>v.width?l:y.width>v.width?y.width:v.width)+a,height:y.height>v.height?y.height:v.height})}else i.push({width:0,height:0})})),i}},{key:\"getyAxisTitleCoords\",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map((function(e,a){if(e.show&&void 0!==e.title.text){var s=new m(t.dCtx.ctx),r=\"rotate(\".concat(e.title.rotate,\" 0 0)\"),o=s.getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,r,!1);i.push({width:o.width,height:o.height})}else i.push({width:0,height:0})})),i}},{key:\"getTotalYAxisWidth\",value:function(){var t=this.w,e=0,i=0,a=0,s=t.globals.yAxisScale.length>1?10:0,r=new B(this.dCtx.ctx),o=function(o,n){var l=t.config.yaxis[n].floating,h=0;o.width>0&&!l?(h=o.width+s,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(n)&&(h=h-o.width-s)):h=l||r.isYAxisHidden(n)?0:5,t.config.yaxis[n].opposite?a+=h:i+=h,e+=h};return t.globals.yLabelsCoords.map((function(t,e){o(t,e)})),t.globals.yTitleCoords.map((function(t,e){o(t,e)})),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.globals.yLabelsCoords[0].width+t.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,e}}]),t}(),rt=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:\"gridPadForColumnsInNumericAxis\",value:function(t){var e=this.w;if(e.globals.noData||e.globals.allSeriesCollapsed)return 0;var i=function(t){return\"bar\"===t||\"rangeBar\"===t||\"candlestick\"===t||\"boxPlot\"===t},a=e.config.chart.type,s=0,r=i(a)?e.config.series.length:1;if(e.globals.comboBarCount>0&&(r=e.globals.comboBarCount),e.globals.collapsedSeries.forEach((function(t){i(t.type)&&(r-=1)})),e.config.chart.stacked&&(r=1),(i(a)||e.globals.comboBarCount>0)&&e.globals.isXNumeric&&!e.globals.isBarHorizontal&&r>0){var o,n,l=Math.abs(e.globals.initialMaxX-e.globals.initialMinX);l<=3&&(l=e.globals.dataPoints),o=l/t,e.globals.minXDiff&&e.globals.minXDiff/o>0&&(n=e.globals.minXDiff/o),n>t/2&&(n/=2),(s=n/r*parseInt(e.config.plotOptions.bar.columnWidth,10)/100)<1&&(s=1),s=s/(r>1?1:1.5)+5,e.globals.barPadForNumericAxis=s}return s}},{key:\"gridPadFortitleSubtitle\",value:function(){var t=this,e=this.w,i=e.globals,a=this.dCtx.isSparkline||!e.globals.axisCharts?0:10;[\"title\",\"subtitle\"].forEach((function(i){void 0!==e.config[i].text?a+=e.config[i].margin:a+=t.dCtx.isSparkline||!e.globals.axisCharts?0:5})),!e.config.legend.show||\"bottom\"!==e.config.legend.position||e.config.legend.floating||e.globals.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords(\"title\"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords(\"subtitle\");i.gridHeight=i.gridHeight-s.height-r.height-a,i.translateY=i.translateY+s.height+r.height+a}},{key:\"setGridXPosForDualYAxis\",value:function(t,e){var i=this.w,a=new B(this.dCtx.ctx);i.config.yaxis.map((function(s,r){-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX=i.globals.translateX-(e[r].width+t[r].width)-parseInt(i.config.yaxis[r].labels.style.fontSize,10)/1.2-12),i.globals.translateX<2&&(i.globals.translateX=2))}))}}]),t}(),ot=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new it(this),this.dimYAxis=new st(this),this.dimXAxis=new at(this),this.dimGrid=new rt(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return r(t,[{key:\"plotCoords\",value:function(){var t=this,e=this.w,i=e.globals;this.lgRect=this.dimHelpers.getLegendsRect(),this.isSparkline&&(e.config.markers.discrete.length>0||e.config.markers.size>0)&&Object.entries(this.gridPad).forEach((function(e){var i=g(e,2),a=i[0],s=i[1];t.gridPad[a]=Math.max(s,t.w.globals.markers.largestSize/1.5)})),i.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),i.gridHeight=i.gridHeight-this.gridPad.top-this.gridPad.bottom,i.gridWidth=i.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var a=this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth);i.gridWidth=i.gridWidth-2*a,i.translateX=i.translateX+this.gridPad.left+this.xPadLeft+(a>0?a+4:0),i.translateY=i.translateY+this.gridPad.top}},{key:\"setDimensionsForAxisCharts\",value:function(){var t=this,e=this.w,i=e.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map((function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:s[i].width,index:i})})),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),o=this.dimXAxis.getxAxisGroupLabelsCoords(),n=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,n,o),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var l=this.yAxisWidth,h=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-n.height,i.xAxisGroupLabelsHeight=i.xAxisLabelsHeight-r.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var c=10;(\"radar\"===e.config.chart.type||this.isSparkline)&&(l=0,h=i.goldenPadding),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||\"treemap\"===e.config.chart.type)&&(l=0,h=0,c=0),this.isSparkline||this.dimXAxis.additionalPaddingXLabels(r);var d=function(){i.translateX=l,i.gridHeight=i.svgHeight-t.lgRect.height-h-(t.isSparkline||\"treemap\"===e.config.chart.type?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-l};switch(\"top\"===e.config.xaxis.position&&(c=i.xAxisHeight-e.config.xaxis.axisTicks.height-5),e.config.legend.position){case\"bottom\":i.translateY=c,d();break;case\"top\":i.translateY=this.lgRect.height+c,d();break;case\"left\":i.translateY=c,i.translateX=this.lgRect.width+l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l;break;case\"right\":i.translateY=c,i.translateX=l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l-5;break;default:throw new Error(\"Legend position not supported\")}this.dimGrid.setGridXPosForDualYAxis(s,a),new q(this.ctx).setYAxisXPosition(a,s)}},{key:\"setDimensionsForNonAxisCharts\",value:function(){var t=this.w,e=t.globals,i=t.config,a=0;t.config.legend.show&&!t.config.legend.floating&&(a=20);var s=\"pie\"===i.chart.type||\"polarArea\"===i.chart.type||\"donut\"===i.chart.type?\"pie\":\"radialBar\",r=i.plotOptions[s].offsetY,o=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating)return e.gridHeight=e.svgHeight-i.grid.padding.left+i.grid.padding.right,e.gridWidth=e.gridHeight,e.translateY=r,void(e.translateX=o+(e.svgWidth-e.gridWidth)/2);switch(i.legend.position){case\"bottom\":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=r-10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case\"top\":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=this.lgRect.height+r+10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case\"left\":e.gridWidth=e.svgWidth-this.lgRect.width-a,e.gridHeight=\"auto\"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+this.lgRect.width+a;break;case\"right\":e.gridWidth=e.svgWidth-this.lgRect.width-a-5,e.gridHeight=\"auto\"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+10;break;default:throw new Error(\"Legend position not supported\")}}},{key:\"conditionalChecksForAxisCoords\",value:function(t,e,i){var a=this.w,s=a.globals.hasXaxisGroups?2:1,r=i.height+t.height+e.height,o=a.globals.isMultiLineX?1.2:a.globals.LINE_HEIGHT_RATIO,n=a.globals.rotateXLabels?22:10,l=a.globals.rotateXLabels&&\"bottom\"===a.config.legend.position?10:0;this.xAxisHeight=r*o+s*n+l,this.xAxisWidth=t.width,this.xAxisHeight-e.height>a.config.xaxis.labels.maxHeight&&(this.xAxisHeight=a.config.xaxis.labels.maxHeight),a.config.xaxis.labels.minHeight&&this.xAxisHeight<a.config.xaxis.labels.minHeight&&(this.xAxisHeight=a.config.xaxis.labels.minHeight),a.config.xaxis.floating&&(this.xAxisHeight=0);var h=0,c=0;a.config.yaxis.forEach((function(t){h+=t.labels.minWidth,c+=t.labels.maxWidth})),this.yAxisWidth<h&&(this.yAxisWidth=h),this.yAxisWidth>c&&(this.yAxisWidth=c)}}]),t}(),nt=function(){function t(e){a(this,t),this.w=e.w,this.lgCtx=e}return r(t,[{key:\"getLegendStyles\",value:function(){var t=document.createElement(\"style\");t.setAttribute(\"type\",\"text/css\");var e=document.createTextNode(\"\\t\\n \\t\\n .apexcharts-legend {\\t\\n display: flex;\\t\\n overflow: auto;\\t\\n padding: 0 10px;\\t\\n }\\t\\n .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\\t\\n flex-wrap: wrap\\t\\n }\\t\\n .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\\t\\n flex-direction: column;\\t\\n bottom: 0;\\t\\n }\\t\\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\\t\\n justify-content: flex-start;\\t\\n }\\t\\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\\t\\n justify-content: center; \\t\\n }\\t\\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\\t\\n justify-content: flex-end;\\t\\n }\\t\\n .apexcharts-legend-series {\\t\\n cursor: pointer;\\t\\n line-height: normal;\\t\\n }\\t\\n .apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, .apexcharts-legend.apx-legend-position-top .apexcharts-legend-series{\\t\\n display: flex;\\t\\n align-items: center;\\t\\n }\\t\\n .apexcharts-legend-text {\\t\\n position: relative;\\t\\n font-size: 14px;\\t\\n }\\t\\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\\t\\n pointer-events: none;\\t\\n }\\t\\n .apexcharts-legend-marker {\\t\\n position: relative;\\t\\n display: inline-block;\\t\\n cursor: pointer;\\t\\n margin-right: 3px;\\t\\n border-style: solid;\\n }\\t\\n \\t\\n .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\\t\\n display: inline-block;\\t\\n }\\t\\n .apexcharts-legend-series.apexcharts-no-click {\\t\\n cursor: auto;\\t\\n }\\t\\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\\t\\n display: none !important;\\t\\n }\\t\\n .apexcharts-inactive-legend {\\t\\n opacity: 0.45;\\t\\n }\");return t.appendChild(e),t}},{key:\"getLegendBBox\",value:function(){var t=this.w.globals.dom.baseEl.querySelector(\".apexcharts-legend\").getBoundingClientRect(),e=t.width;return{clwh:t.height,clww:e}}},{key:\"appendToForeignObject\",value:function(){this.w.globals.dom.elLegendForeign.appendChild(this.getLegendStyles())}},{key:\"toggleDataSeries\",value:function(t,e){var i=this,a=this.w;if(a.globals.axisCharts||\"radialBar\"===a.config.chart.type){a.globals.resized=!0;var s=null,r=null;if(a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(t,\"']\")),r=parseInt(s.getAttribute(\"data:realIndex\"),10)):(s=a.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(t+1,\"']\")),r=parseInt(s.getAttribute(\"rel\"),10)-1),e)[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach((function(t){i.riseCollapsedSeries(t.cs,t.csi,r)}));else this.hideSeries({seriesEl:s,realIndex:r})}else{var o=a.globals.dom.Paper.select(\" .apexcharts-series[rel='\".concat(t+1,\"'] path\")),n=a.config.chart.type;if(\"pie\"===n||\"polarArea\"===n||\"donut\"===n){var l=a.config.plotOptions.pie.donut.labels;new m(this.lgCtx.ctx).pathMouseDown(o.members[0],null),this.lgCtx.ctx.pie.printDataLabelsInner(o.members[0].node,l)}o.fire(\"click\")}}},{key:\"hideSeries\",value:function(t){var e=t.seriesEl,i=t.realIndex,a=this.w,s=x.clone(a.config.series);if(a.globals.axisCharts){var r=!1;if(a.config.yaxis[i]&&a.config.yaxis[i].show&&a.config.yaxis[i].showAlways&&(r=!0,a.globals.ancillaryCollapsedSeriesIndices.indexOf(i)<0&&(a.globals.ancillaryCollapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split(\"-\")[1]}),a.globals.ancillaryCollapsedSeriesIndices.push(i))),!r){a.globals.collapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split(\"-\")[1]}),a.globals.collapsedSeriesIndices.push(i);var o=a.globals.risingSeries.indexOf(i);a.globals.risingSeries.splice(o,1)}}else a.globals.collapsedSeries.push({index:i,data:s[i]}),a.globals.collapsedSeriesIndices.push(i);for(var n=e.childNodes,l=0;l<n.length;l++)n[l].classList.contains(\"apexcharts-series-markers-wrap\")&&(n[l].classList.contains(\"apexcharts-hide\")?n[l].classList.remove(\"apexcharts-hide\"):n[l].classList.add(\"apexcharts-hide\"));a.globals.allSeriesCollapsed=a.globals.collapsedSeries.length===a.config.series.length,s=this._getSeriesBasedOnCollapsedState(s),this.lgCtx.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled)}},{key:\"riseCollapsedSeries\",value:function(t,e,i){var a=this.w,s=x.clone(a.config.series);if(t.length>0){for(var r=0;r<t.length;r++)t[r].index===i&&(a.globals.axisCharts?(s[i].data=t[r].data.slice(),t.splice(r,1),e.splice(r,1),a.globals.risingSeries.push(i)):(s[i]=t[r].data,t.splice(r,1),e.splice(r,1),a.globals.risingSeries.push(i)));s=this._getSeriesBasedOnCollapsedState(s),this.lgCtx.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled)}}},{key:\"_getSeriesBasedOnCollapsedState\",value:function(t){var e=this.w;return e.globals.axisCharts?t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a].data=[])})):t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a]=0)})),t}}]),t}(),lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.onLegendClick=this.onLegendClick.bind(this),this.onLegendHovered=this.onLegendHovered.bind(this),this.isBarsDistributed=\"bar\"===this.w.config.chart.type&&this.w.config.plotOptions.bar.distributed&&1===this.w.config.series.length,this.legendHelpers=new nt(this)}return r(t,[{key:\"init\",value:function(){var t=this.w,e=t.globals,i=t.config;if((i.legend.showForSingleSeries&&1===e.series.length||this.isBarsDistributed||e.series.length>1||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),x.isIE11()?document.getElementsByTagName(\"head\")[0].appendChild(this.legendHelpers.getLegendStyles()):this.legendHelpers.appendToForeignObject(),\"bottom\"===i.legend.position||\"top\"===i.legend.position?this.legendAlignHorizontal():\"right\"!==i.legend.position&&\"left\"!==i.legend.position||this.legendAlignVertical()}}},{key:\"drawLegends\",value:function(){var t=this,e=this.w,i=e.config.legend.fontFamily,a=e.globals.seriesNames,s=e.globals.colors.slice();if(\"heatmap\"===e.config.chart.type){var r=e.config.plotOptions.heatmap.colorScale.ranges;a=r.map((function(t){return t.name?t.name:t.from+\" - \"+t.to})),s=r.map((function(t){return t.color}))}else this.isBarsDistributed&&(a=e.globals.labels.slice());e.config.legend.customLegendItems.length&&(a=e.config.legend.customLegendItems);for(var o=e.globals.legendFormatter,n=e.config.legend.inverseOrder,l=n?a.length-1:0;n?l>=0:l<=a.length-1;n?l--:l++){var h=o(a[l],{seriesIndex:l,w:e}),c=!1,d=!1;if(e.globals.collapsedSeries.length>0)for(var g=0;g<e.globals.collapsedSeries.length;g++)e.globals.collapsedSeries[g].index===l&&(c=!0);if(e.globals.ancillaryCollapsedSeriesIndices.length>0)for(var u=0;u<e.globals.ancillaryCollapsedSeriesIndices.length;u++)e.globals.ancillaryCollapsedSeriesIndices[u]===l&&(d=!0);var p=document.createElement(\"span\");p.classList.add(\"apexcharts-legend-marker\");var f=e.config.legend.markers.offsetX,b=e.config.legend.markers.offsetY,v=e.config.legend.markers.height,w=e.config.legend.markers.width,k=e.config.legend.markers.strokeWidth,A=e.config.legend.markers.strokeColor,S=e.config.legend.markers.radius,C=p.style;C.background=s[l],C.color=s[l],C.setProperty(\"background\",s[l],\"important\"),e.config.legend.markers.fillColors&&e.config.legend.markers.fillColors[l]&&(C.background=e.config.legend.markers.fillColors[l]),void 0!==e.globals.seriesColors[l]&&(C.background=e.globals.seriesColors[l],C.color=e.globals.seriesColors[l]),C.height=Array.isArray(v)?parseFloat(v[l])+\"px\":parseFloat(v)+\"px\",C.width=Array.isArray(w)?parseFloat(w[l])+\"px\":parseFloat(w)+\"px\",C.left=(Array.isArray(f)?parseFloat(f[l]):parseFloat(f))+\"px\",C.top=(Array.isArray(b)?parseFloat(b[l]):parseFloat(b))+\"px\",C.borderWidth=Array.isArray(k)?k[l]:k,C.borderColor=Array.isArray(A)?A[l]:A,C.borderRadius=Array.isArray(S)?parseFloat(S[l])+\"px\":parseFloat(S)+\"px\",e.config.legend.markers.customHTML&&(Array.isArray(e.config.legend.markers.customHTML)?e.config.legend.markers.customHTML[l]&&(p.innerHTML=e.config.legend.markers.customHTML[l]()):p.innerHTML=e.config.legend.markers.customHTML()),m.setAttrs(p,{rel:l+1,\"data:collapsed\":c||d}),(c||d)&&p.classList.add(\"apexcharts-inactive-legend\");var L=document.createElement(\"div\"),P=document.createElement(\"span\");P.classList.add(\"apexcharts-legend-text\"),P.innerHTML=Array.isArray(h)?h.join(\" \"):h;var I=e.config.legend.labels.useSeriesColors?e.globals.colors[l]:e.config.legend.labels.colors;I||(I=e.config.chart.foreColor),P.style.color=I,P.style.fontSize=parseFloat(e.config.legend.fontSize)+\"px\",P.style.fontWeight=e.config.legend.fontWeight,P.style.fontFamily=i||e.config.chart.fontFamily,m.setAttrs(P,{rel:l+1,i:l,\"data:default-text\":encodeURIComponent(h),\"data:collapsed\":c||d}),L.appendChild(p),L.appendChild(P);var T=new y(this.ctx);if(!e.config.legend.showForZeroSeries)0===T.getSeriesTotalByIndex(l)&&T.seriesHaveSameValues(l)&&!T.isSeriesNull(l)&&-1===e.globals.collapsedSeriesIndices.indexOf(l)&&-1===e.globals.ancillaryCollapsedSeriesIndices.indexOf(l)&&L.classList.add(\"apexcharts-hidden-zero-series\");e.config.legend.showForNullSeries||T.isSeriesNull(l)&&-1===e.globals.collapsedSeriesIndices.indexOf(l)&&-1===e.globals.ancillaryCollapsedSeriesIndices.indexOf(l)&&L.classList.add(\"apexcharts-hidden-null-series\"),e.globals.dom.elLegendWrap.appendChild(L),e.globals.dom.elLegendWrap.classList.add(\"apexcharts-align-\".concat(e.config.legend.horizontalAlign)),e.globals.dom.elLegendWrap.classList.add(\"apx-legend-position-\"+e.config.legend.position),L.classList.add(\"apexcharts-legend-series\"),L.style.margin=\"\".concat(e.config.legend.itemMargin.vertical,\"px \").concat(e.config.legend.itemMargin.horizontal,\"px\"),e.globals.dom.elLegendWrap.style.width=e.config.legend.width?e.config.legend.width+\"px\":\"\",e.globals.dom.elLegendWrap.style.height=e.config.legend.height?e.config.legend.height+\"px\":\"\",m.setAttrs(L,{rel:l+1,seriesName:x.escapeString(a[l]),\"data:collapsed\":c||d}),(c||d)&&L.classList.add(\"apexcharts-inactive-legend\"),e.config.legend.onItemClick.toggleDataSeries||L.classList.add(\"apexcharts-no-click\")}e.globals.dom.elWrap.addEventListener(\"click\",t.onLegendClick,!0),e.config.legend.onItemHover.highlightDataSeries&&0===e.config.legend.customLegendItems.length&&(e.globals.dom.elWrap.addEventListener(\"mousemove\",t.onLegendHovered,!0),e.globals.dom.elWrap.addEventListener(\"mouseout\",t.onLegendHovered,!0))}},{key:\"setLegendWrapXY\",value:function(t,e){var i=this.w,a=i.globals.dom.elLegendWrap,s=a.getBoundingClientRect(),r=0,o=0;if(\"bottom\"===i.config.legend.position)o+=i.globals.svgHeight-s.height/2;else if(\"top\"===i.config.legend.position){var n=new ot(this.ctx),l=n.dimHelpers.getTitleSubtitleCoords(\"title\").height,h=n.dimHelpers.getTitleSubtitleCoords(\"subtitle\").height;o=o+(l>0?l-10:0)+(h>0?h-10:0)}a.style.position=\"absolute\",r=r+t+i.config.legend.offsetX,o=o+e+i.config.legend.offsetY,a.style.left=r+\"px\",a.style.top=o+\"px\",\"bottom\"===i.config.legend.position?(a.style.top=\"auto\",a.style.bottom=5-i.config.legend.offsetY+\"px\"):\"right\"===i.config.legend.position&&(a.style.left=\"auto\",a.style.right=25+i.config.legend.offsetX+\"px\");[\"width\",\"height\"].forEach((function(t){a.style[t]&&(a.style[t]=parseInt(i.config.legend[t],10)+\"px\")}))}},{key:\"legendAlignHorizontal\",value:function(){var t=this.w;t.globals.dom.elLegendWrap.style.right=0;var e=this.legendHelpers.getLegendBBox(),i=new ot(this.ctx),a=i.dimHelpers.getTitleSubtitleCoords(\"title\"),s=i.dimHelpers.getTitleSubtitleCoords(\"subtitle\"),r=0;\"bottom\"===t.config.legend.position?r=-e.clwh/1.8:\"top\"===t.config.legend.position&&(r=a.height+s.height+t.config.title.margin+t.config.subtitle.margin-10),this.setLegendWrapXY(20,r)}},{key:\"legendAlignVertical\",value:function(){var t=this.w,e=this.legendHelpers.getLegendBBox(),i=0;\"left\"===t.config.legend.position&&(i=20),\"right\"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:\"onLegendHovered\",value:function(t){var e=this.w,i=t.target.classList.contains(\"apexcharts-legend-text\")||t.target.classList.contains(\"apexcharts-legend-marker\");if(\"heatmap\"===e.config.chart.type||this.isBarsDistributed){if(i){var a=parseInt(t.target.getAttribute(\"rel\"),10)-1;this.ctx.events.fireEvent(\"legendHover\",[this.ctx,a,this.w]),new N(this.ctx).highlightRangeInSeries(t,t.target)}}else!t.target.classList.contains(\"apexcharts-inactive-legend\")&&i&&new N(this.ctx).toggleSeriesOnHover(t,t.target)}},{key:\"onLegendClick\",value:function(t){var e=this.w;if(!e.config.legend.customLegendItems.length&&(t.target.classList.contains(\"apexcharts-legend-text\")||t.target.classList.contains(\"apexcharts-legend-marker\"))){var i=parseInt(t.target.getAttribute(\"rel\"),10)-1,a=\"true\"===t.target.getAttribute(\"data:collapsed\"),s=this.w.config.chart.events.legendClick;\"function\"==typeof s&&s(this.ctx,i,this.w),this.ctx.events.fireEvent(\"legendClick\",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;\"function\"==typeof r&&t.target.classList.contains(\"apexcharts-legend-marker\")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent(\"legendMarkerClick\",[this.ctx,i,this.w])),\"treemap\"!==e.config.chart.type&&\"heatmap\"!==e.config.chart.type&&!this.isBarsDistributed&&e.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),t}(),ht=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.ev=this.w.config.chart.events,this.selectedClass=\"apexcharts-selected\",this.localeValues=this.w.globals.locale.toolbar,this.minX=i.globals.minX,this.maxX=i.globals.maxX}return r(t,[{key:\"createToolbar\",value:function(){var t=this,e=this.w,i=function(){return document.createElement(\"div\")},a=i();if(a.setAttribute(\"class\",\"apexcharts-toolbar\"),a.style.top=e.config.chart.toolbar.offsetY+\"px\",a.style.right=3-e.config.chart.toolbar.offsetX+\"px\",e.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s<this.t.customIcons.length;s++)this.elCustomIcons.push(i());var r=[],o=function(i,a,s){var o=i.toLowerCase();t.t[o]&&e.config.chart.zoom.enabled&&r.push({el:a,icon:\"string\"==typeof t.t[o]?t.t[o]:s,title:t.localeValues[i],class:\"apexcharts-\".concat(o,\"-icon\")})};o(\"zoomIn\",this.elZoomIn,'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\\n <path d=\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"/>\\n</svg>\\n'),o(\"zoomOut\",this.elZoomOut,'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\\n <path d=\"M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"/>\\n</svg>\\n');var n=function(i){t.t[i]&&e.config.chart[i].enabled&&r.push({el:\"zoom\"===i?t.elZoom:t.elSelection,icon:\"string\"==typeof t.t[i]?t.t[i]:\"zoom\"===i?'<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"#000000\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\">\\n <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"/>\\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\\n <path d=\"M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z\"/>\\n</svg>':'<svg fill=\"#6E8192\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\\n <path d=\"M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2z\"/>\\n</svg>',title:t.localeValues[\"zoom\"===i?\"selectionZoom\":\"selection\"],class:e.globals.isTouchDevice?\"apexcharts-element-hidden\":\"apexcharts-\".concat(i,\"-icon\")})};n(\"zoom\"),n(\"selection\"),this.t.pan&&e.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:\"string\"==typeof this.t.pan?this.t.pan:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" fill=\"#000000\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\">\\n <defs>\\n <path d=\"M0 0h24v24H0z\" id=\"a\"/>\\n </defs>\\n <clipPath id=\"b\">\\n <use overflow=\"visible\" xlink:href=\"#a\"/>\\n </clipPath>\\n <path clip-path=\"url(#b)\" d=\"M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z\"/>\\n</svg>',title:this.localeValues.pan,class:e.globals.isTouchDevice?\"apexcharts-element-hidden\":\"apexcharts-pan-icon\"}),o(\"reset\",this.elZoomReset,'<svg fill=\"#000000\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\\n <path d=\"M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z\"/>\\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\\n</svg>'),this.t.download&&r.push({el:this.elMenuIcon,icon:\"string\"==typeof this.t.download?this.t.download:'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/><path d=\"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\"/></svg>',title:this.localeValues.menu,class:\"apexcharts-menu-icon\"});for(var l=0;l<this.elCustomIcons.length;l++)r.push({el:this.elCustomIcons[l],icon:this.t.customIcons[l].icon,title:this.t.customIcons[l].title,index:this.t.customIcons[l].index,class:\"apexcharts-toolbar-custom-icon \"+this.t.customIcons[l].class});r.forEach((function(t,e){t.index&&x.moveIndexInArray(r,e,t.index)}));for(var h=0;h<r.length;h++)m.setAttrs(r[h].el,{class:r[h].class,title:r[h].title}),r[h].el.innerHTML=r[h].icon,a.appendChild(r[h].el);this._createHamburgerMenu(a),e.globals.zoomEnabled?this.elZoom.classList.add(this.selectedClass):e.globals.panEnabled?this.elPan.classList.add(this.selectedClass):e.globals.selectionEnabled&&this.elSelection.classList.add(this.selectedClass),this.addToolbarEventListeners()}},{key:\"_createHamburgerMenu\",value:function(t){this.elMenuItems=[],t.appendChild(this.elMenu),m.setAttrs(this.elMenu,{class:\"apexcharts-menu\"});var e=[{name:\"exportSVG\",title:this.localeValues.exportToSVG},{name:\"exportPNG\",title:this.localeValues.exportToPNG},{name:\"exportCSV\",title:this.localeValues.exportToCSV}];this.w.globals.allSeriesHasEqualX||e.splice(2,1);for(var i=0;i<e.length;i++)this.elMenuItems.push(document.createElement(\"div\")),this.elMenuItems[i].innerHTML=e[i].title,m.setAttrs(this.elMenuItems[i],{class:\"apexcharts-menu-item \".concat(e[i].name),title:e[i].title}),this.elMenu.appendChild(this.elMenuItems[i])}},{key:\"addToolbarEventListeners\",value:function(){var t=this;this.elZoomReset.addEventListener(\"click\",this.handleZoomReset.bind(this)),this.elSelection.addEventListener(\"click\",this.toggleZoomSelection.bind(this,\"selection\")),this.elZoom.addEventListener(\"click\",this.toggleZoomSelection.bind(this,\"zoom\")),this.elZoomIn.addEventListener(\"click\",this.handleZoomIn.bind(this)),this.elZoomOut.addEventListener(\"click\",this.handleZoomOut.bind(this)),this.elPan.addEventListener(\"click\",this.togglePanning.bind(this)),this.elMenuIcon.addEventListener(\"click\",this.toggleMenu.bind(this)),this.elMenuItems.forEach((function(e){e.classList.contains(\"exportSVG\")?e.addEventListener(\"click\",t.handleDownload.bind(t,\"svg\")):e.classList.contains(\"exportPNG\")?e.addEventListener(\"click\",t.handleDownload.bind(t,\"png\")):e.classList.contains(\"exportCSV\")&&e.addEventListener(\"click\",t.handleDownload.bind(t,\"csv\"))}));for(var e=0;e<this.t.customIcons.length;e++)this.elCustomIcons[e].addEventListener(\"click\",this.t.customIcons[e].click.bind(this,this.ctx,this.ctx.w))}},{key:\"toggleZoomSelection\",value:function(t){this.ctx.getSyncedCharts().forEach((function(e){e.ctx.toolbar.toggleOtherControls();var i=\"selection\"===t?e.ctx.toolbar.elSelection:e.ctx.toolbar.elZoom,a=\"selection\"===t?\"selectionEnabled\":\"zoomEnabled\";e.w.globals[a]=!e.w.globals[a],i.classList.contains(e.ctx.toolbar.selectedClass)?i.classList.remove(e.ctx.toolbar.selectedClass):i.classList.add(e.ctx.toolbar.selectedClass)}))}},{key:\"getToolbarIconsReference\",value:function(){var t=this.w;this.elZoom||(this.elZoom=t.globals.dom.baseEl.querySelector(\".apexcharts-zoom-icon\")),this.elPan||(this.elPan=t.globals.dom.baseEl.querySelector(\".apexcharts-pan-icon\")),this.elSelection||(this.elSelection=t.globals.dom.baseEl.querySelector(\".apexcharts-selection-icon\"))}},{key:\"enableZoomPanFromToolbar\",value:function(t){this.toggleOtherControls(),\"pan\"===t?this.w.globals.panEnabled=!0:this.w.globals.zoomEnabled=!0;var e=\"pan\"===t?this.elPan:this.elZoom,i=\"pan\"===t?this.elZoom:this.elPan;e&&e.classList.add(this.selectedClass),i&&i.classList.remove(this.selectedClass)}},{key:\"togglePanning\",value:function(){this.ctx.getSyncedCharts().forEach((function(t){t.ctx.toolbar.toggleOtherControls(),t.w.globals.panEnabled=!t.w.globals.panEnabled,t.ctx.toolbar.elPan.classList.contains(t.ctx.toolbar.selectedClass)?t.ctx.toolbar.elPan.classList.remove(t.ctx.toolbar.selectedClass):t.ctx.toolbar.elPan.classList.add(t.ctx.toolbar.selectedClass)}))}},{key:\"toggleOtherControls\",value:function(){var t=this,e=this.w;e.globals.panEnabled=!1,e.globals.zoomEnabled=!1,e.globals.selectionEnabled=!1,this.getToolbarIconsReference(),[this.elPan,this.elSelection,this.elZoom].forEach((function(e){e&&e.classList.remove(t.selectedClass)}))}},{key:\"handleZoomIn\",value:function(){var t=this.w;t.globals.isRangeBar&&(this.minX=t.globals.minY,this.maxX=t.globals.maxY);var e=(this.minX+this.maxX)/2,i=(this.minX+e)/2,a=(this.maxX+e)/2,s=this._getNewMinXMaxX(i,a);t.globals.disableZoomIn||this.zoomUpdateOptions(s.minX,s.maxX)}},{key:\"handleZoomOut\",value:function(){var t=this.w;if(t.globals.isRangeBar&&(this.minX=t.globals.minY,this.maxX=t.globals.maxY),!(\"datetime\"===t.config.xaxis.type&&new Date(this.minX).getUTCFullYear()<1e3)){var e=(this.minX+this.maxX)/2,i=this.minX-(e-this.minX),a=this.maxX-(e-this.maxX),s=this._getNewMinXMaxX(i,a);t.globals.disableZoomOut||this.zoomUpdateOptions(s.minX,s.maxX)}}},{key:\"_getNewMinXMaxX\",value:function(t,e){var i=this.w.config.xaxis.convertedCatToNumeric;return{minX:i?Math.floor(t):t,maxX:i?Math.floor(e):e}}},{key:\"zoomUpdateOptions\",value:function(t,e){var i=this.w;if(void 0!==t||void 0!==e){if(!(i.config.xaxis.convertedCatToNumeric&&(t<1&&(t=1,e=i.globals.dataPoints),e-t<2))){var a={min:t,max:e},s=this.getBeforeZoomRange(a);s&&(a=s.xaxis);var r={xaxis:a},o=x.clone(i.globals.initialConfig.yaxis);if(i.config.chart.zoom.autoScaleYaxis)o=new _(this.ctx).autoScaleY(this.ctx,o,{xaxis:a});i.config.chart.group||(r.yaxis=o),this.w.globals.zoomed=!0,this.ctx.updateHelpers._updateOptions(r,!1,this.w.config.chart.animations.dynamicAnimation.enabled),this.zoomCallback(a,o)}}else this.handleZoomReset()}},{key:\"zoomCallback\",value:function(t,e){\"function\"==typeof this.ev.zoomed&&this.ev.zoomed(this.ctx,{xaxis:t,yaxis:e})}},{key:\"getBeforeZoomRange\",value:function(t,e){var i=null;return\"function\"==typeof this.ev.beforeZoom&&(i=this.ev.beforeZoom(this,{xaxis:t,yaxis:e})),i}},{key:\"toggleMenu\",value:function(){var t=this;window.setTimeout((function(){t.elMenu.classList.contains(\"apexcharts-menu-open\")?t.elMenu.classList.remove(\"apexcharts-menu-open\"):t.elMenu.classList.add(\"apexcharts-menu-open\")}),0)}},{key:\"handleDownload\",value:function(t){var e=this.w,i=new G(this.ctx);switch(t){case\"svg\":i.exportToSVG(this.ctx);break;case\"png\":i.exportToPng(this.ctx);break;case\"csv\":i.exportToCSV({series:e.config.series,columnDelimiter:e.config.chart.toolbar.export.csv.columnDelimiter})}}},{key:\"handleZoomReset\",value:function(t){this.ctx.getSyncedCharts().forEach((function(t){var e=t.w;if(e.globals.lastXAxis.min=void 0,e.globals.lastXAxis.max=void 0,t.updateHelpers.revertDefaultAxisMinMax(),\"function\"==typeof e.config.chart.events.beforeResetZoom){var i=e.config.chart.events.beforeResetZoom(t,e);i&&t.updateHelpers.revertDefaultAxisMinMax(i)}\"function\"==typeof e.config.chart.events.zoomed&&t.ctx.toolbar.zoomCallback({min:e.config.xaxis.min,max:e.config.xaxis.max}),e.globals.zoomed=!1;var a=t.ctx.series.emptyCollapsedSeries(x.clone(e.globals.initialSeries));t.updateHelpers._updateSeries(a,e.config.chart.animations.dynamicAnimation.enabled)}))}},{key:\"destroy\",value:function(){this.elZoom=null,this.elZoomIn=null,this.elZoomOut=null,this.elPan=null,this.elSelection=null,this.elZoomReset=null,this.elMenuIcon=null}}]),t}(),ct=function(t){n(i,ht);var e=d(i);function i(t){var s;return a(this,i),(s=e.call(this,t)).ctx=t,s.w=t.w,s.dragged=!1,s.graphics=new m(s.ctx),s.eventList=[\"mousedown\",\"mouseleave\",\"mousemove\",\"touchstart\",\"touchmove\",\"mouseup\",\"touchend\"],s.clientX=0,s.clientY=0,s.startX=0,s.endX=0,s.dragX=0,s.startY=0,s.endY=0,s.dragY=0,s.moveDirection=\"none\",s}return r(i,[{key:\"init\",value:function(t){var e=this,i=t.xyRatios,a=this.w,s=this;this.xyRatios=i,this.zoomRect=this.graphics.drawRect(0,0,0,0),this.selectionRect=this.graphics.drawRect(0,0,0,0),this.gridRect=a.globals.dom.baseEl.querySelector(\".apexcharts-grid\"),this.zoomRect.node.classList.add(\"apexcharts-zoom-rect\"),this.selectionRect.node.classList.add(\"apexcharts-selection-rect\"),a.globals.dom.elGraphical.add(this.zoomRect),a.globals.dom.elGraphical.add(this.selectionRect),\"x\"===a.config.chart.selection.type?this.slDraggableRect=this.selectionRect.draggable({minX:0,minY:0,maxX:a.globals.gridWidth,maxY:a.globals.gridHeight}).on(\"dragmove\",this.selectionDragging.bind(this,\"dragging\")):\"y\"===a.config.chart.selection.type?this.slDraggableRect=this.selectionRect.draggable({minX:0,maxX:a.globals.gridWidth}).on(\"dragmove\",this.selectionDragging.bind(this,\"dragging\")):this.slDraggableRect=this.selectionRect.draggable().on(\"dragmove\",this.selectionDragging.bind(this,\"dragging\")),this.preselectedSelection(),this.hoverArea=a.globals.dom.baseEl.querySelector(\"\".concat(a.globals.chartClass,\" .apexcharts-svg\")),this.hoverArea.classList.add(\"apexcharts-zoomable\"),this.eventList.forEach((function(t){e.hoverArea.addEventListener(t,s.svgMouseEvents.bind(s,i),{capture:!1,passive:!0})}))}},{key:\"destroy\",value:function(){this.slDraggableRect&&(this.slDraggableRect.draggable(!1),this.slDraggableRect.off(),this.selectionRect.off()),this.selectionRect=null,this.zoomRect=null,this.gridRect=null}},{key:\"svgMouseEvents\",value:function(t,e){var i=this.w,a=this,s=this.ctx.toolbar,r=i.globals.zoomEnabled?i.config.chart.zoom.type:i.config.chart.selection.type,o=i.config.chart.toolbar.autoSelected;if(e.shiftKey?(this.shiftWasPressed=!0,s.enableZoomPanFromToolbar(\"pan\"===o?\"zoom\":\"pan\")):this.shiftWasPressed&&(s.enableZoomPanFromToolbar(o),this.shiftWasPressed=!1),e.target){var n,l=e.target.classList;if(e.target.parentNode&&null!==e.target.parentNode&&(n=e.target.parentNode.classList),!(l.contains(\"apexcharts-selection-rect\")||l.contains(\"apexcharts-legend-marker\")||l.contains(\"apexcharts-legend-text\")||n&&n.contains(\"apexcharts-toolbar\"))){if(a.clientX=\"touchmove\"===e.type||\"touchstart\"===e.type?e.touches[0].clientX:\"touchend\"===e.type?e.changedTouches[0].clientX:e.clientX,a.clientY=\"touchmove\"===e.type||\"touchstart\"===e.type?e.touches[0].clientY:\"touchend\"===e.type?e.changedTouches[0].clientY:e.clientY,\"mousedown\"===e.type&&1===e.which){var h=a.gridRect.getBoundingClientRect();a.startX=a.clientX-h.left,a.startY=a.clientY-h.top,a.dragged=!1,a.w.globals.mousedown=!0}if((\"mousemove\"===e.type&&1===e.which||\"touchmove\"===e.type)&&(a.dragged=!0,i.globals.panEnabled?(i.globals.selection=null,a.w.globals.mousedown&&a.panDragging({context:a,zoomtype:r,xyRatios:t})):(a.w.globals.mousedown&&i.globals.zoomEnabled||a.w.globals.mousedown&&i.globals.selectionEnabled)&&(a.selection=a.selectionDrawing({context:a,zoomtype:r}))),\"mouseup\"===e.type||\"touchend\"===e.type||\"mouseleave\"===e.type){var c=a.gridRect.getBoundingClientRect();a.w.globals.mousedown&&(a.endX=a.clientX-c.left,a.endY=a.clientY-c.top,a.dragX=Math.abs(a.endX-a.startX),a.dragY=Math.abs(a.endY-a.startY),(i.globals.zoomEnabled||i.globals.selectionEnabled)&&a.selectionDrawn({context:a,zoomtype:r}),i.globals.panEnabled&&i.config.xaxis.convertedCatToNumeric&&a.delayedPanScrolled()),i.globals.zoomEnabled&&a.hideSelectionRect(this.selectionRect),a.dragged=!1,a.w.globals.mousedown=!1}this.makeSelectionRectDraggable()}}}},{key:\"makeSelectionRectDraggable\",value:function(){var t=this.w;if(this.selectionRect){var e=this.selectionRect.node.getBoundingClientRect();e.width>0&&e.height>0&&this.slDraggableRect.selectize({points:\"l, r\",pointSize:8,pointType:\"rect\"}).resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on(\"resizing\",this.selectionDragging.bind(this,\"resizing\"))}}},{key:\"preselectedSelection\",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a={x:i,y:0,width:t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(a),this.makeSelectionRectDraggable(),\"function\"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:\"drawSelectionRect\",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,r=t.translateX,o=void 0===r?0:r,n=t.translateY,l=void 0===n?0:n,h=this.w,c=this.zoomRect,d=this.selectionRect;if(this.dragged||null!==h.globals.selection){var g={transform:\"translate(\"+o+\", \"+l+\")\"};h.globals.zoomEnabled&&this.dragged&&(a<0&&(a=1),c.attr({x:e,y:i,width:a,height:s,fill:h.config.chart.zoom.zoomedArea.fill.color,\"fill-opacity\":h.config.chart.zoom.zoomedArea.fill.opacity,stroke:h.config.chart.zoom.zoomedArea.stroke.color,\"stroke-width\":h.config.chart.zoom.zoomedArea.stroke.width,\"stroke-opacity\":h.config.chart.zoom.zoomedArea.stroke.opacity}),m.setAttrs(c.node,g)),h.globals.selectionEnabled&&(d.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:h.config.chart.selection.fill.color,\"fill-opacity\":h.config.chart.selection.fill.opacity,stroke:h.config.chart.selection.stroke.color,\"stroke-width\":h.config.chart.selection.stroke.width,\"stroke-dasharray\":h.config.chart.selection.stroke.dashArray,\"stroke-opacity\":h.config.chart.selection.stroke.opacity}),m.setAttrs(d.node,g))}}},{key:\"hideSelectionRect\",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:\"selectionDrawing\",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.gridRect.getBoundingClientRect(),o=s.startX-1,n=s.startY,l=!1,h=!1,c=s.clientX-r.left-o,d=s.clientY-r.top-n,g={};return Math.abs(c+o)>a.globals.gridWidth?c=a.globals.gridWidth-o:s.clientX-r.left<0&&(c=o),o>s.clientX-r.left&&(l=!0,c=Math.abs(c)),n>s.clientY-r.top&&(h=!0,d=Math.abs(d)),g=\"x\"===i?{x:l?o-c:o,y:0,width:c,height:a.globals.gridHeight}:\"y\"===i?{x:0,y:h?n-d:n,width:a.globals.gridWidth,height:d}:{x:l?o-c:o,y:h?n-d:n,width:c,height:d},s.drawSelectionRect(g),s.selectionDragging(\"resizing\"),g}},{key:\"selectionDragging\",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,r=this.selectionRect,o=0;\"resizing\"===t&&(o=30);var n=function(t){return parseFloat(r.node.getAttribute(t))},l={x:n(\"x\"),y:n(\"y\"),width:n(\"width\"),height:n(\"height\")};a.globals.selection=l,\"function\"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout((function(){var t=i.gridRect.getBoundingClientRect(),e=r.node.getBoundingClientRect(),o={xaxis:{min:a.globals.xAxisScale.niceMin+(e.left-t.left)*s.xRatio,max:a.globals.xAxisScale.niceMin+(e.right-t.left)*s.xRatio},yaxis:{min:a.globals.yAxisScale[0].niceMin+(t.bottom-e.bottom)*s.yRatio[0],max:a.globals.yAxisScale[0].niceMax-(e.top-t.top)*s.yRatio[0]}};a.config.chart.events.selection(i.ctx,o),a.config.chart.brush.enabled&&void 0!==a.config.chart.events.brushScrolled&&a.config.chart.events.brushScrolled(i.ctx,o)}),o))}},{key:\"selectionDrawn\",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.xyRatios,o=this.ctx.toolbar;if(s.startX>s.endX){var n=s.startX;s.startX=s.endX,s.endX=n}if(s.startY>s.endY){var l=s.startY;s.startY=s.endY,s.endY=l}var h=void 0,c=void 0;a.globals.isRangeBar?(h=a.globals.yAxisScale[0].niceMin+s.startX*r.invertedYRatio,c=a.globals.yAxisScale[0].niceMin+s.endX*r.invertedYRatio):(h=a.globals.xAxisScale.niceMin+s.startX*r.xRatio,c=a.globals.xAxisScale.niceMin+s.endX*r.xRatio);var d=[],g=[];if(a.config.yaxis.forEach((function(t,e){d.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.startY),g.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.endY)})),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==c)if(a.globals.zoomEnabled){var u=x.clone(a.globals.initialConfig.yaxis),p=x.clone(a.globals.initialConfig.xaxis);if(a.globals.zoomed=!0,a.config.xaxis.convertedCatToNumeric&&(h=Math.floor(h),c=Math.floor(c),h<1&&(h=1,c=a.globals.dataPoints),c-h<2&&(c=h+1)),\"xy\"!==i&&\"x\"!==i||(p={min:h,max:c}),\"xy\"!==i&&\"y\"!==i||u.forEach((function(t,e){u[e].min=g[e],u[e].max=d[e]})),a.config.chart.zoom.autoScaleYaxis){var f=new _(s.ctx);u=f.autoScaleY(s.ctx,u,{xaxis:p})}if(o){var b=o.getBeforeZoomRange(p,u);b&&(p=b.xaxis?b.xaxis:p,u=b.yaxis?b.yaxis:u)}var v={xaxis:p};a.config.chart.group||(v.yaxis=u),s.ctx.updateHelpers._updateOptions(v,!1,s.w.config.chart.animations.dynamicAnimation.enabled),\"function\"==typeof a.config.chart.events.zoomed&&o.zoomCallback(p,u)}else if(a.globals.selectionEnabled){var m,y=null;m={min:h,max:c},\"xy\"!==i&&\"y\"!==i||(y=x.clone(a.config.yaxis)).forEach((function(t,e){y[e].min=g[e],y[e].max=d[e]})),a.globals.selection=s.selection,\"function\"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:m,yaxis:y})}}},{key:\"panDragging\",value:function(t){var e=t.context,i=this.w,a=e;if(void 0!==i.globals.lastClientPosition.x){var s=i.globals.lastClientPosition.x-a.clientX,r=i.globals.lastClientPosition.y-a.clientY;Math.abs(s)>Math.abs(r)&&s>0?this.moveDirection=\"left\":Math.abs(s)>Math.abs(r)&&s<0?this.moveDirection=\"right\":Math.abs(r)>Math.abs(s)&&r>0?this.moveDirection=\"up\":Math.abs(r)>Math.abs(s)&&r<0&&(this.moveDirection=\"down\")}i.globals.lastClientPosition={x:a.clientX,y:a.clientY};var o=i.globals.isRangeBar?i.globals.minY:i.globals.minX,n=i.globals.isRangeBar?i.globals.maxY:i.globals.maxX;i.config.xaxis.convertedCatToNumeric||a.panScrolled(o,n)}},{key:\"delayedPanScrolled\",value:function(){var t=this.w,e=t.globals.minX,i=t.globals.maxX,a=(t.globals.maxX-t.globals.minX)/2;\"left\"===this.moveDirection?(e=t.globals.minX+a,i=t.globals.maxX+a):\"right\"===this.moveDirection&&(e=t.globals.minX-a,i=t.globals.maxX-a),e=Math.floor(e),i=Math.floor(i),this.updateScrolledChart({xaxis:{min:e,max:i}},e,i)}},{key:\"panScrolled\",value:function(t,e){var i=this.w,a=this.xyRatios,s=x.clone(i.globals.initialConfig.yaxis),r=a.xRatio,o=i.globals.minX,n=i.globals.maxX;i.globals.isRangeBar&&(r=a.invertedYRatio,o=i.globals.minY,n=i.globals.maxY),\"left\"===this.moveDirection?(t=o+i.globals.gridWidth/15*r,e=n+i.globals.gridWidth/15*r):\"right\"===this.moveDirection&&(t=o-i.globals.gridWidth/15*r,e=n-i.globals.gridWidth/15*r),i.globals.isRangeBar||(t<i.globals.initialMinX||e>i.globals.initialMaxX)&&(t=o,e=n);var l={min:t,max:e};i.config.chart.zoom.autoScaleYaxis&&(s=new _(this.ctx).autoScaleY(this.ctx,s,{xaxis:l}));var h={xaxis:{min:t,max:e}};i.config.chart.group||(h.yaxis=s),this.updateScrolledChart(h,t,e)}},{key:\"updateScrolledChart\",value:function(t,e,i){var a=this.w;this.ctx.updateHelpers._updateOptions(t,!1,!1),\"function\"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}]),i}(),dt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx}return r(t,[{key:\"getNearestValues\",value:function(t){var e=t.hoverArea,i=t.elGrid,a=t.clientX,s=t.clientY,r=this.w,o=i.getBoundingClientRect(),n=o.width,l=o.height,h=n/(r.globals.dataPoints-1),c=l/r.globals.dataPoints,d=this.hasBars();!r.globals.comboCharts&&!d||r.config.xaxis.convertedCatToNumeric||(h=n/r.globals.dataPoints);var g=a-o.left-r.globals.barPadForNumericAxis,u=s-o.top;g<0||u<0||g>n||u>l?(e.classList.remove(\"hovering-zoom\"),e.classList.remove(\"hovering-pan\")):r.globals.zoomEnabled?(e.classList.remove(\"hovering-pan\"),e.classList.add(\"hovering-zoom\")):r.globals.panEnabled&&(e.classList.remove(\"hovering-zoom\"),e.classList.add(\"hovering-pan\"));var p=Math.round(g/h),f=Math.floor(u/c);d&&!r.config.xaxis.convertedCatToNumeric&&(p=Math.ceil(g/h),p-=1);var b=null,v=null,m=[],y=[];if(r.globals.seriesXvalues.forEach((function(t){m.push([t[0]+1e-6].concat(t))})),r.globals.seriesYvalues.forEach((function(t){y.push([t[0]+1e-6].concat(t))})),m=m.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),y=y.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),r.globals.isXNumeric){var w=this.ttCtx.getElGrid().getBoundingClientRect(),k=g*(w.width/n),A=u*(w.height/l);b=(v=this.closestInMultiArray(k,A,m,y)).index,p=v.j,null!==b&&(m=r.globals.seriesXvalues[b],p=(v=this.closestInArray(k,m)).index)}return r.globals.capturedSeriesIndex=null===b?-1:b,(!p||p<1)&&(p=0),r.globals.isBarHorizontal?r.globals.capturedDataPointIndex=f:r.globals.capturedDataPointIndex=p,{capturedSeries:b,j:r.globals.isBarHorizontal?f:p,hoverX:g,hoverY:u}}},{key:\"closestInMultiArray\",value:function(t,e,i,a){var s=this.w,r=0,o=null,n=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):o=0;var l=i[r][0],h=Math.abs(t-l);if(i.forEach((function(e){e.forEach((function(e,i){var a=Math.abs(t-e);a<h&&(h=a,n=i)}))})),-1!==n){var c=a[r][n],d=Math.abs(e-c);o=r,a.forEach((function(t,i){var a=Math.abs(e-t[n]);a<d&&(d=a,o=i)}))}return{index:o,j:n}}},{key:\"getFirstActiveXArray\",value:function(t){for(var e=this.w,i=0,a=t.map((function(t,e){return t.length>0?e:-1})),s=0;s<a.length;s++)if(-1!==a[s]&&-1===e.globals.collapsedSeriesIndices.indexOf(s)&&-1===e.globals.ancillaryCollapsedSeriesIndices.indexOf(s)){i=a[s];break}return i}},{key:\"closestInArray\",value:function(t,e){for(var i=e[0],a=null,s=Math.abs(t-i),r=0;r<e.length;r++){var o=Math.abs(t-e[r]);o<s&&(s=o,a=r)}return{index:a}}},{key:\"isXoverlap\",value:function(t){var e=[],i=this.w.globals.seriesX.filter((function(t){return void 0!==t[0]}));if(i.length>0)for(var a=0;a<i.length-1;a++)void 0!==i[a][t]&&void 0!==i[a+1][t]&&i[a][t]!==i[a+1][t]&&e.push(\"unEqual\");return 0===e.length}},{key:\"isInitialSeriesSameLen\",value:function(){for(var t=!0,e=this.w.globals.initialSeries,i=0;i<e.length-1;i++)if(e[i].data.length!==e[i+1].data.length){t=!1;break}return t}},{key:\"getBarsHeight\",value:function(t){return u(t).reduce((function(t,e){return t+e.getBBox().height}),0)}},{key:\"getElMarkers\",value:function(t){return\"number\"==typeof t?this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series[data\\\\:realIndex='\".concat(t,\"'] .apexcharts-series-markers-wrap > *\")):this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers-wrap > *\")}},{key:\"getAllMarkers\",value:function(){var t=this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers-wrap\");(t=u(t)).sort((function(t,e){var i=Number(t.getAttribute(\"data:realIndex\")),a=Number(e.getAttribute(\"data:realIndex\"));return a<i?1:a>i?-1:0}));var e=[];return t.forEach((function(t){e.push(t.querySelector(\".apexcharts-marker\"))})),e}},{key:\"hasMarkers\",value:function(t){return this.getElMarkers(t).length>0}},{key:\"getElBars\",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series\")}},{key:\"hasBars\",value:function(){return this.getElBars().length>0}},{key:\"getHoverMarkerSize\",value:function(t){var e=this.w,i=e.config.markers.hover.size;return void 0===i&&(i=e.globals.markers.size[t]+e.config.markers.hover.sizeOffset),i}},{key:\"toggleAllTooltipSeriesGroups\",value:function(t){var e=this.w,i=this.ttCtx;0===i.allTooltipSeriesGroups.length&&(i.allTooltipSeriesGroups=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-tooltip-series-group\"));for(var a=i.allTooltipSeriesGroups,s=0;s<a.length;s++)\"enable\"===t?(a[s].classList.add(\"apexcharts-active\"),a[s].style.display=e.config.tooltip.items.display):(a[s].classList.remove(\"apexcharts-active\"),a[s].style.display=\"none\")}}]),t}(),gt=function(){function t(e){a(this,t),this.w=e.w,this.ctx=e.ctx,this.ttCtx=e,this.tooltipUtil=new dt(e)}return r(t,[{key:\"drawSeriesTexts\",value:function(t){var e=t.shared,i=void 0===e||e,a=t.ttItems,s=t.i,r=void 0===s?0:s,o=t.j,n=void 0===o?null:o,l=t.y1,h=t.y2,c=t.e,d=this.w;void 0!==d.config.tooltip.custom?this.handleCustomTooltip({i:r,j:n,y1:l,y2:h,w:d}):this.toggleActiveInactiveSeries(i);var g=this.getValuesToPrint({i:r,j:n});this.printLabels({i:r,j:n,values:g,ttItems:a,shared:i,e:c});var u=this.ttCtx.getElTooltip();this.ttCtx.tooltipRect.ttWidth=u.getBoundingClientRect().width,this.ttCtx.tooltipRect.ttHeight=u.getBoundingClientRect().height}},{key:\"printLabels\",value:function(t){var i,a=this,s=t.i,r=t.j,o=t.values,n=t.ttItems,l=t.shared,h=t.e,c=this.w,d=[],g=function(t){return c.globals.seriesGoals[t]&&c.globals.seriesGoals[t][r]&&Array.isArray(c.globals.seriesGoals[t][r])},u=o.xVal,p=o.zVal,f=o.xAxisTTVal,x=\"\",b=c.globals.colors[s];null!==r&&c.config.plotOptions.bar.distributed&&(b=c.globals.colors[r]);for(var v=function(t,o){var v=a.getFormatters(s);x=a.getSeriesName({fn:v.yLbTitleFormatter,index:s,seriesIndex:s,j:r}),\"treemap\"===c.config.chart.type&&(x=v.yLbTitleFormatter(String(c.config.series[s].data[r].x),{series:c.globals.series,seriesIndex:s,dataPointIndex:r,w:c}));var m=c.config.tooltip.inverseOrder?o:t;if(c.globals.axisCharts){var y=function(t){var e,i,a,s;return c.globals.isRangeData?v.yLbFormatter(null===(e=c.globals.seriesRangeStart)||void 0===e||null===(i=e[t])||void 0===i?void 0:i[r],{series:c.globals.seriesRangeStart,seriesIndex:t,dataPointIndex:r,w:c})+\" - \"+v.yLbFormatter(null===(a=c.globals.seriesRangeEnd)||void 0===a||null===(s=a[t])||void 0===s?void 0:s[r],{series:c.globals.seriesRangeEnd,seriesIndex:t,dataPointIndex:r,w:c}):v.yLbFormatter(c.globals.series[t][r],{series:c.globals.series,seriesIndex:t,dataPointIndex:r,w:c})};if(l)v=a.getFormatters(m),x=a.getSeriesName({fn:v.yLbTitleFormatter,index:m,seriesIndex:s,j:r}),b=c.globals.colors[m],i=y(m),g(m)&&(d=c.globals.seriesGoals[m][r].map((function(t){return{attrs:t,val:v.yLbFormatter(t.value,{seriesIndex:m,dataPointIndex:r,w:c})}})));else{var w,k=null==h||null===(w=h.target)||void 0===w?void 0:w.getAttribute(\"fill\");k&&(b=-1!==k.indexOf(\"url\")?document.querySelector(k.substr(4).slice(0,-1)).childNodes[0].getAttribute(\"stroke\"):k),i=y(s),g(s)&&Array.isArray(c.globals.seriesGoals[s][r])&&(d=c.globals.seriesGoals[s][r].map((function(t){return{attrs:t,val:v.yLbFormatter(t.value,{seriesIndex:s,dataPointIndex:r,w:c})}})))}}null===r&&(i=v.yLbFormatter(c.globals.series[s],e(e({},c),{},{seriesIndex:s,dataPointIndex:s}))),a.DOMHandling({i:s,t:m,j:r,ttItems:n,values:{val:i,goalVals:d,xVal:u,xAxisTTVal:f,zVal:p},seriesName:x,shared:l,pColor:b})},m=0,y=c.globals.series.length-1;m<c.globals.series.length;m++,y--)v(m,y)}},{key:\"getFormatters\",value:function(t){var e,i=this.w,a=i.globals.yLabelFormatters[t];return void 0!==i.globals.ttVal?Array.isArray(i.globals.ttVal)?(a=i.globals.ttVal[t]&&i.globals.ttVal[t].formatter,e=i.globals.ttVal[t]&&i.globals.ttVal[t].title&&i.globals.ttVal[t].title.formatter):(a=i.globals.ttVal.formatter,\"function\"==typeof i.globals.ttVal.title.formatter&&(e=i.globals.ttVal.title.formatter)):e=i.config.tooltip.y.title.formatter,\"function\"!=typeof a&&(a=i.globals.yLabelFormatters[0]?i.globals.yLabelFormatters[0]:function(t){return t}),\"function\"!=typeof e&&(e=function(t){return t}),{yLbFormatter:a,yLbTitleFormatter:e}}},{key:\"getSeriesName\",value:function(t){var e=t.fn,i=t.index,a=t.seriesIndex,s=t.j,r=this.w;return e(String(r.globals.seriesNames[i]),{series:r.globals.series,seriesIndex:a,dataPointIndex:s,w:r})}},{key:\"DOMHandling\",value:function(t){t.i;var e=t.t,i=t.j,a=t.ttItems,s=t.values,r=t.seriesName,o=t.shared,n=t.pColor,l=this.w,h=this.ttCtx,c=s.val,d=s.goalVals,g=s.xVal,u=s.xAxisTTVal,p=s.zVal,f=null;f=a[e].children,l.config.tooltip.fillSeriesColor&&(a[e].style.backgroundColor=n,f[0].style.display=\"none\"),h.showTooltipTitle&&(null===h.tooltipTitle&&(h.tooltipTitle=l.globals.dom.baseEl.querySelector(\".apexcharts-tooltip-title\")),h.tooltipTitle.innerHTML=g),h.isXAxisTooltipEnabled&&(h.xaxisTooltipText.innerHTML=\"\"!==u?u:g);var x=a[e].querySelector(\".apexcharts-tooltip-text-y-label\");x&&(x.innerHTML=r||\"\");var b=a[e].querySelector(\".apexcharts-tooltip-text-y-value\");b&&(b.innerHTML=void 0!==c?c:\"\"),f[0]&&f[0].classList.contains(\"apexcharts-tooltip-marker\")&&(l.config.tooltip.marker.fillColors&&Array.isArray(l.config.tooltip.marker.fillColors)&&(n=l.config.tooltip.marker.fillColors[e]),f[0].style.backgroundColor=n),l.config.tooltip.marker.show||(f[0].style.display=\"none\");var v=a[e].querySelector(\".apexcharts-tooltip-text-goals-label\"),m=a[e].querySelector(\".apexcharts-tooltip-text-goals-value\");if(d.length&&l.globals.seriesGoals[e]){var y=function(){var t=\"<div >\",e=\"<div>\";d.forEach((function(i,a){t+=' <div style=\"display: flex\"><span class=\"apexcharts-tooltip-marker\" style=\"background-color: '.concat(i.attrs.strokeColor,'; height: 3px; border-radius: 0; top: 5px;\"></span> ').concat(i.attrs.name,\"</div>\"),e+=\"<div>\".concat(i.val,\"</div>\")})),v.innerHTML=t+\"</div>\",m.innerHTML=e+\"</div>\"};o?l.globals.seriesGoals[e][i]&&Array.isArray(l.globals.seriesGoals[e][i])?y():(v.innerHTML=\"\",m.innerHTML=\"\"):y()}else v.innerHTML=\"\",m.innerHTML=\"\";null!==p&&(a[e].querySelector(\".apexcharts-tooltip-text-z-label\").innerHTML=l.config.tooltip.z.title,a[e].querySelector(\".apexcharts-tooltip-text-z-value\").innerHTML=void 0!==p?p:\"\");o&&f[0]&&(null==c||l.globals.ancillaryCollapsedSeriesIndices.indexOf(e)>-1||l.globals.collapsedSeriesIndices.indexOf(e)>-1?f[0].parentNode.style.display=\"none\":f[0].parentNode.style.display=l.config.tooltip.items.display)}},{key:\"toggleActiveInactiveSeries\",value:function(t){var e=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups(\"enable\");else{this.tooltipUtil.toggleAllTooltipSeriesGroups(\"disable\");var i=e.globals.dom.baseEl.querySelector(\".apexcharts-tooltip-series-group\");i&&(i.classList.add(\"apexcharts-active\"),i.style.display=e.config.tooltip.items.display)}}},{key:\"getValuesToPrint\",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r=\"\",o=\"\",n=null,l=null,h={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},c=a.globals.ttZFormatter;null===i?l=a.globals.series[e]:a.globals.isXNumeric&&\"treemap\"!==a.config.chart.type?(r=s[e][i],0===s[e].length&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=void 0!==a.globals.labels[i]?a.globals.labels[i]:\"\";var d=r;a.globals.isXNumeric&&\"datetime\"===a.config.xaxis.type?r=new T(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new I(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](d,h):a.globals.xLabelFormatter(d,h);return void 0!==a.config.tooltip.x.formatter&&(r=a.globals.ttKeyFormatter(d,h)),a.globals.seriesZ.length>0&&a.globals.seriesZ[e].length>0&&(n=c(a.globals.seriesZ[e][i],a)),o=\"function\"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(d,h):r,{val:Array.isArray(l)?l.join(\" \"):l,xVal:Array.isArray(r)?r.join(\" \"):r,xAxisTTVal:Array.isArray(o)?o.join(\" \"):o,zVal:n}}},{key:\"handleCustomTooltip\",value:function(t){var e=t.i,i=t.j,a=t.y1,s=t.y2,r=t.w,o=this.ttCtx.getElTooltip(),n=r.config.tooltip.custom;Array.isArray(n)&&n[e]&&(n=n[e]),o.innerHTML=n({ctx:this.ctx,series:r.globals.series,seriesIndex:e,dataPointIndex:i,y1:a,y2:s,w:r})}}]),t}(),ut=function(){function t(e){a(this,t),this.ttCtx=e,this.ctx=e.ctx,this.w=e.w}return r(t,[{key:\"moveXCrosshairs\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=t-i.xcrosshairsWidth/2,o=a.globals.labels.slice().length;if(null!==e&&(r=a.globals.gridWidth/o*e),null===s||a.globals.isBarHorizontal||(s.setAttribute(\"x\",r),s.setAttribute(\"x1\",r),s.setAttribute(\"x2\",r),s.setAttribute(\"y2\",a.globals.gridHeight),s.classList.add(\"apexcharts-active\")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.isXAxisTooltipEnabled){var n=r;\"tickWidth\"!==a.config.xaxis.crosshairs.width&&\"barWidth\"!==a.config.xaxis.crosshairs.width||(n=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(n)}}},{key:\"moveYCrosshairs\",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&m.setAttrs(e.ycrosshairs,{y1:t,y2:t}),null!==e.ycrosshairsHidden&&m.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t})}},{key:\"moveXAxisTooltip\",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip&&0!==i.xcrosshairsWidth){i.xaxisTooltip.classList.add(\"apexcharts-active\");var a=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;if(t-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(t)){t+=e.globals.translateX;var s;s=new m(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+\"px\",i.xaxisTooltip.style.left=t+\"px\",i.xaxisTooltip.style.top=a+\"px\"}}}},{key:\"moveYAxisTooltip\",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxistooltip\"));var a=parseInt(i.ycrosshairsHidden.getAttribute(\"y1\"),10),s=e.globals.translateY+a,r=i.yaxisTTEls[t].getBoundingClientRect().height,o=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(o-=26),s-=r/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add(\"apexcharts-active\"),i.yaxisTTEls[t].style.top=s+\"px\",i.yaxisTTEls[t].style.left=o+e.config.yaxis[t].tooltip.offsetX+\"px\"):i.yaxisTTEls[t].classList.remove(\"apexcharts-active\")}},{key:\"moveTooltip\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),o=s.tooltipRect,n=null!==i?parseFloat(i):1,l=parseFloat(t)+n+5,h=parseFloat(e)+n/2;if(l>a.globals.gridWidth/2&&(l=l-o.ttWidth-n-10),l>a.globals.gridWidth-o.ttWidth-10&&(l=a.globals.gridWidth-o.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var c=s.getElGrid().getBoundingClientRect();(l=s.e.clientX-c.left)>a.globals.gridWidth/2&&(l-=s.tooltipRect.ttWidth),(h=s.e.clientY+a.globals.translateY-c.top)>a.globals.gridHeight/2&&(h-=s.tooltipRect.ttHeight)}else a.globals.isBarHorizontal||o.ttHeight/2+h>a.globals.gridHeight&&(h=a.globals.gridHeight-o.ttHeight+a.globals.translateY);isNaN(l)||(l+=a.globals.translateX,r.style.left=l+\"px\",r.style.top=h+\"px\")}},{key:\"moveMarkers\",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(\" .apexcharts-series[data\\\\:realIndex='\".concat(t,\"'] .apexcharts-marker\")),r=0;r<s.length;r++)parseInt(s[r].getAttribute(\"rel\"),10)===e&&(a.marker.resetPointsSize(),a.marker.enlargeCurrentPoint(e,s[r]));else a.marker.resetPointsSize(),this.moveDynamicPointOnHover(e,t)}},{key:\"moveDynamicPointOnHover\",value:function(t,e){var i,a,s=this.w,r=this.ttCtx,o=s.globals.pointsArray,n=r.tooltipUtil.getHoverMarkerSize(e),l=s.config.series[e].type;if(!l||\"column\"!==l&&\"candlestick\"!==l&&\"boxPlot\"!==l){i=o[e][t][0],a=o[e][t][1]?o[e][t][1]:0;var h=s.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(e,\"'] .apexcharts-series-markers circle\"));h&&a<s.globals.gridHeight&&a>0&&(h.setAttribute(\"r\",n),h.setAttribute(\"cx\",i),h.setAttribute(\"cy\",a)),this.moveXCrosshairs(i),r.fixedTooltip||this.moveTooltip(i,a,n)}}},{key:\"moveDynamicPointsOnHover\",value:function(t){var e,i=this.ttCtx,a=i.w,s=0,r=0,o=a.globals.pointsArray;e=new N(this.ctx).getActiveConfigSeriesIndex(\"asc\",[\"line\",\"area\",\"scatter\",\"bubble\"]);var n=i.tooltipUtil.getHoverMarkerSize(e);o[e]&&(s=o[e][t][0],r=o[e][t][1]);var l=i.tooltipUtil.getAllMarkers();if(null!==l)for(var h=0;h<a.globals.series.length;h++){var c=o[h];if(a.globals.comboCharts&&void 0===c&&l.splice(h,0,null),c&&c.length){var d=o[h][t][1],g=void 0;if(l[h].setAttribute(\"cx\",s),\"rangeArea\"===a.config.chart.type&&!a.globals.comboCharts){var u=t+a.globals.series[h].length;g=o[h][u][1],d-=Math.abs(d-g)/2}null!==d&&!isNaN(d)&&d<a.globals.gridHeight+n&&d+n>0?(l[h]&&l[h].setAttribute(\"r\",n),l[h]&&l[h].setAttribute(\"cy\",d)):l[h]&&l[h].setAttribute(\"r\",0)}}this.moveXCrosshairs(s),i.fixedTooltip||this.moveTooltip(s,r||a.globals.gridHeight,n)}},{key:\"moveStickyTooltipOverBars\",value:function(t,e){var i=this.w,a=this.ttCtx,s=i.globals.columnSeries?i.globals.columnSeries.length:i.globals.series.length,r=s>=2&&s%2==0?Math.floor(s/2):Math.floor(s/2)+1;i.globals.isBarHorizontal&&(r=new N(this.ctx).getActiveConfigSeriesIndex(\"desc\")+1);var o=i.globals.dom.baseEl.querySelector(\".apexcharts-bar-series .apexcharts-series[rel='\".concat(r,\"'] path[j='\").concat(t,\"'], .apexcharts-candlestick-series .apexcharts-series[rel='\").concat(r,\"'] path[j='\").concat(t,\"'], .apexcharts-boxPlot-series .apexcharts-series[rel='\").concat(r,\"'] path[j='\").concat(t,\"'], .apexcharts-rangebar-series .apexcharts-series[rel='\").concat(r,\"'] path[j='\").concat(t,\"']\"));o||\"number\"!=typeof e||(o=i.globals.dom.baseEl.querySelector(\".apexcharts-bar-series .apexcharts-series[data\\\\:realIndex='\".concat(e,\"'] path[j='\").concat(t,\"'],\\n .apexcharts-candlestick-series .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] path[j='\").concat(t,\"'],\\n .apexcharts-boxPlot-series .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] path[j='\").concat(t,\"'],\\n .apexcharts-rangebar-series .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] path[j='\").concat(t,\"']\")));var n=o?parseFloat(o.getAttribute(\"cx\")):0,l=o?parseFloat(o.getAttribute(\"cy\")):0,h=o?parseFloat(o.getAttribute(\"barWidth\")):0,c=a.getElGrid().getBoundingClientRect(),d=o&&(o.classList.contains(\"apexcharts-candlestick-area\")||o.classList.contains(\"apexcharts-boxPlot-area\"));i.globals.isXNumeric?(o&&!d&&(n-=s%2!=0?h/2:0),o&&d&&i.globals.comboCharts&&(n-=h/2)):i.globals.isBarHorizontal||(n=a.xAxisTicksPositions[t-1]+a.dataPointsDividedWidth/2,isNaN(n)&&(n=a.xAxisTicksPositions[t]-a.dataPointsDividedWidth/2)),i.globals.isBarHorizontal?l-=a.tooltipRect.ttHeight:i.config.tooltip.followCursor?l=a.e.clientY-c.top-a.tooltipRect.ttHeight/2:l+a.tooltipRect.ttHeight+15>i.globals.gridHeight&&(l=i.globals.gridHeight),i.globals.isBarHorizontal||this.moveXCrosshairs(n),a.fixedTooltip||this.moveTooltip(n,l||i.globals.gridHeight)}}]),t}(),pt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx,this.tooltipPosition=new ut(e)}return r(t,[{key:\"drawDynamicPoints\",value:function(){var t=this.w,e=new m(this.ctx),i=new H(this.ctx),a=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series\");a=u(a),t.config.chart.stacked&&a.sort((function(t,e){return parseFloat(t.getAttribute(\"data:realIndex\"))-parseFloat(e.getAttribute(\"data:realIndex\"))}));for(var s=0;s<a.length;s++){var r=a[s].querySelector(\".apexcharts-series-markers-wrap\");if(null!==r){var o=void 0,n=\"apexcharts-marker w\".concat((Math.random()+1).toString(36).substring(4));\"line\"!==t.config.chart.type&&\"area\"!==t.config.chart.type||t.globals.comboCharts||t.config.tooltip.intersect||(n+=\" no-pointer-events\");var l=i.getMarkerConfig({cssClass:n,seriesIndex:Number(r.getAttribute(\"data:realIndex\"))});(o=e.drawMarker(0,0,l)).node.setAttribute(\"default-marker-size\",0);var h=document.createElementNS(t.globals.SVGNS,\"g\");h.classList.add(\"apexcharts-series-markers\"),h.appendChild(o.node),r.appendChild(h)}}}},{key:\"enlargeCurrentPoint\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;\"bubble\"!==s.config.chart.type&&this.newPointSize(t,e);var r=e.getAttribute(\"cx\"),o=e.getAttribute(\"cy\");if(null!==i&&null!==a&&(r=i,o=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if(\"radar\"===s.config.chart.type){var n=this.ttCtx.getElGrid().getBoundingClientRect();r=this.ttCtx.e.clientX-n.left}this.tooltipPosition.moveTooltip(r,o,s.config.markers.hover.size)}}},{key:\"enlargePoints\",value:function(t){for(var e=this.w,i=this,a=this.ttCtx,s=t,r=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker\"),o=e.config.markers.hover.size,n=0;n<r.length;n++){var l=r[n].getAttribute(\"rel\"),h=r[n].getAttribute(\"index\");if(void 0===o&&(o=e.globals.markers.size[h]+e.config.markers.hover.sizeOffset),s===parseInt(l,10)){i.newPointSize(s,r[n]);var c=r[n].getAttribute(\"cx\"),d=r[n].getAttribute(\"cy\");i.tooltipPosition.moveXCrosshairs(c),a.fixedTooltip||i.tooltipPosition.moveTooltip(c,d,o)}else i.oldPointSize(r[n])}}},{key:\"newPointSize\",value:function(t,e){var i=this.w,a=i.config.markers.hover.size,s=0===t?e.parentNode.firstChild:e.parentNode.lastChild;if(\"0\"!==s.getAttribute(\"default-marker-size\")){var r=parseInt(s.getAttribute(\"index\"),10);void 0===a&&(a=i.globals.markers.size[r]+i.config.markers.hover.sizeOffset),a<0&&(a=0),s.setAttribute(\"r\",a)}}},{key:\"oldPointSize\",value:function(t){var e=parseFloat(t.getAttribute(\"default-marker-size\"));t.setAttribute(\"r\",e)}},{key:\"resetPointsSize\",value:function(){for(var t=this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker\"),e=0;e<t.length;e++){var i=parseFloat(t[e].getAttribute(\"default-marker-size\"));x.isNumber(i)&&i>=0?t[e].setAttribute(\"r\",i):t[e].setAttribute(\"r\",0)}}}]),t}(),ft=function(){function t(e){a(this,t),this.w=e.w;var i=this.w;this.ttCtx=e,this.isVerticalGroupedRangeBar=!i.globals.isBarHorizontal&&\"rangeBar\"===i.config.chart.type&&i.config.plotOptions.bar.rangeBarGroupRows}return r(t,[{key:\"getAttr\",value:function(t,e){return parseFloat(t.target.getAttribute(e))}},{key:\"handleHeatTreeTooltip\",value:function(t){var e=t.e,i=t.opt,a=t.x,s=t.y,r=t.type,o=this.ttCtx,n=this.w;if(e.target.classList.contains(\"apexcharts-\".concat(r,\"-rect\"))){var l=this.getAttr(e,\"i\"),h=this.getAttr(e,\"j\"),c=this.getAttr(e,\"cx\"),d=this.getAttr(e,\"cy\"),g=this.getAttr(e,\"width\"),u=this.getAttr(e,\"height\");if(o.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:l,j:h,shared:!1,e:e}),n.globals.capturedSeriesIndex=l,n.globals.capturedDataPointIndex=h,a=c+o.tooltipRect.ttWidth/2+g,s=d+o.tooltipRect.ttHeight/2-u/2,o.tooltipPosition.moveXCrosshairs(c+g/2),a>n.globals.gridWidth/2&&(a=c-o.tooltipRect.ttWidth/2+g),o.w.config.tooltip.followCursor){var p=n.globals.dom.elWrap.getBoundingClientRect();a=n.globals.clientX-p.left-(a>n.globals.gridWidth/2?o.tooltipRect.ttWidth:0),s=n.globals.clientY-p.top-(s>n.globals.gridHeight/2?o.tooltipRect.ttHeight:0)}}return{x:a,y:s}}},{key:\"handleMarkerTooltip\",value:function(t){var e,i,a=t.e,s=t.opt,r=t.x,o=t.y,n=this.w,l=this.ttCtx;if(a.target.classList.contains(\"apexcharts-marker\")){var h=parseInt(s.paths.getAttribute(\"cx\"),10),c=parseInt(s.paths.getAttribute(\"cy\"),10),d=parseFloat(s.paths.getAttribute(\"val\"));if(i=parseInt(s.paths.getAttribute(\"rel\"),10),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute(\"rel\"),10)-1,l.intersect){var g=x.findAncestor(s.paths,\"apexcharts-series\");g&&(e=parseInt(g.getAttribute(\"data:realIndex\"),10))}if(l.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!l.showOnIntersect&&n.config.tooltip.shared,e:a}),\"mouseup\"===a.type&&l.markerClick(a,e,i),n.globals.capturedSeriesIndex=e,n.globals.capturedDataPointIndex=i,r=h,o=c+n.globals.translateY-1.4*l.tooltipRect.ttHeight,l.w.config.tooltip.followCursor){var u=l.getElGrid().getBoundingClientRect();o=l.e.clientY+n.globals.translateY-u.top}d<0&&(o=c),l.marker.enlargeCurrentPoint(i,s.paths,r,o)}return{x:r,y:o}}},{key:\"handleBarTooltip\",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=this.ttCtx,n=o.getElTooltip(),l=0,h=0,c=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var g=d.barHeight,u=d.j;r.globals.capturedSeriesIndex=e,r.globals.capturedDataPointIndex=u,r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||!r.config.tooltip.shared?(h=d.x,c=d.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[e]:r.config.stroke.width,l=h):r.globals.comboCharts||r.config.tooltip.shared||(l/=2),isNaN(c)&&(c=r.globals.svgHeight-o.tooltipRect.ttHeight);var p=parseInt(s.paths.parentNode.getAttribute(\"data:realIndex\"),10),f=r.globals.isMultipleYAxis?r.config.yaxis[p]&&r.config.yaxis[p].reversed:r.config.yaxis[0].reversed;if(h+o.tooltipRect.ttWidth>r.globals.gridWidth&&!f?h-=o.tooltipRect.ttWidth:h<0&&(h=0),o.w.config.tooltip.followCursor){var x=o.getElGrid().getBoundingClientRect();c=o.e.clientY-x.top}null===o.tooltip&&(o.tooltip=r.globals.dom.baseEl.querySelector(\".apexcharts-tooltip\")),r.config.tooltip.shared||(r.globals.comboBarCount>0?o.tooltipPosition.moveXCrosshairs(l+i/2):o.tooltipPosition.moveXCrosshairs(l)),!o.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars())&&(f&&(h-=o.tooltipRect.ttWidth)<0&&(h=0),!f||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||(c=c+g-2*(r.globals.series[e][u]<0?g:0)),c=c+r.globals.translateY-o.tooltipRect.ttHeight/2,n.style.left=h+r.globals.translateX+\"px\",n.style.top=c+\"px\")}},{key:\"getBarTooltipXY\",value:function(t){var e=this,i=t.e,a=t.opt,s=this.w,r=null,o=this.ttCtx,n=0,l=0,h=0,c=0,d=0,g=i.target.classList;if(g.contains(\"apexcharts-bar-area\")||g.contains(\"apexcharts-candlestick-area\")||g.contains(\"apexcharts-boxPlot-area\")||g.contains(\"apexcharts-rangebar-area\")){var u=i.target,p=u.getBoundingClientRect(),f=a.elGrid.getBoundingClientRect(),x=p.height;d=p.height;var b=p.width,v=parseInt(u.getAttribute(\"cx\"),10),m=parseInt(u.getAttribute(\"cy\"),10);c=parseFloat(u.getAttribute(\"barWidth\"));var y=\"touchmove\"===i.type?i.touches[0].clientX:i.clientX;r=parseInt(u.getAttribute(\"j\"),10),n=parseInt(u.parentNode.getAttribute(\"rel\"),10)-1;var w=u.getAttribute(\"data-range-y1\"),k=u.getAttribute(\"data-range-y2\");s.globals.comboCharts&&(n=parseInt(u.parentNode.getAttribute(\"data:realIndex\"),10));var A=function(t){return s.globals.isXNumeric?v-b/2:e.isVerticalGroupedRangeBar?v+b/2:v-o.dataPointsDividedWidth+b/2},S=function(){return m-o.dataPointsDividedHeight+x/2-o.tooltipRect.ttHeight/2};o.tooltipLabels.drawSeriesTexts({ttItems:a.ttItems,i:n,j:r,y1:w?parseInt(w,10):null,y2:k?parseInt(k,10):null,shared:!o.showOnIntersect&&s.config.tooltip.shared,e:i}),s.config.tooltip.followCursor?s.globals.isBarHorizontal?(l=y-f.left+15,h=S()):(l=A(),h=i.clientY-f.top-o.tooltipRect.ttHeight/2-15):s.globals.isBarHorizontal?((l=v)<o.xyRatios.baseLineInvertedY&&(l=v-o.tooltipRect.ttWidth),h=S()):(l=A(),h=m)}return{x:l,y:h,barHeight:d,barWidth:c,i:n,j:r}}}]),t}(),xt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e}return r(t,[{key:\"drawXaxisTooltip\",value:function(){var t=this.w,e=this.ttCtx,i=\"bottom\"===t.config.xaxis.position;e.xaxisOffY=i?t.globals.gridHeight+1:-t.globals.xAxisHeight-t.config.xaxis.axisTicks.height+3;var a=i?\"apexcharts-xaxistooltip apexcharts-xaxistooltip-bottom\":\"apexcharts-xaxistooltip apexcharts-xaxistooltip-top\",s=t.globals.dom.elWrap;e.isXAxisTooltipEnabled&&(null===t.globals.dom.baseEl.querySelector(\".apexcharts-xaxistooltip\")&&(e.xaxisTooltip=document.createElement(\"div\"),e.xaxisTooltip.setAttribute(\"class\",a+\" apexcharts-theme-\"+t.config.tooltip.theme),s.appendChild(e.xaxisTooltip),e.xaxisTooltipText=document.createElement(\"div\"),e.xaxisTooltipText.classList.add(\"apexcharts-xaxistooltip-text\"),e.xaxisTooltipText.style.fontFamily=t.config.xaxis.tooltip.style.fontFamily||t.config.chart.fontFamily,e.xaxisTooltipText.style.fontSize=t.config.xaxis.tooltip.style.fontSize,e.xaxisTooltip.appendChild(e.xaxisTooltipText)))}},{key:\"drawYaxisTooltip\",value:function(){for(var t=this.w,e=this.ttCtx,i=function(i){var a=t.config.yaxis[i].opposite||t.config.yaxis[i].crosshairs.opposite;e.yaxisOffX=a?t.globals.gridWidth+1:1;var s=\"apexcharts-yaxistooltip apexcharts-yaxistooltip-\".concat(i,a?\" apexcharts-yaxistooltip-right\":\" apexcharts-yaxistooltip-left\");t.globals.yAxisSameScaleIndices.map((function(e,a){e.map((function(e,a){a===i&&(s+=t.config.yaxis[a].show?\" \":\" apexcharts-yaxistooltip-hidden\")}))}));var r=t.globals.dom.elWrap;null===t.globals.dom.baseEl.querySelector(\".apexcharts-yaxistooltip apexcharts-yaxistooltip-\".concat(i))&&(e.yaxisTooltip=document.createElement(\"div\"),e.yaxisTooltip.setAttribute(\"class\",s+\" apexcharts-theme-\"+t.config.tooltip.theme),r.appendChild(e.yaxisTooltip),0===i&&(e.yaxisTooltipText=[]),e.yaxisTooltipText[i]=document.createElement(\"div\"),e.yaxisTooltipText[i].classList.add(\"apexcharts-yaxistooltip-text\"),e.yaxisTooltip.appendChild(e.yaxisTooltipText[i]))},a=0;a<t.config.yaxis.length;a++)i(a)}},{key:\"setXCrosshairWidth\",value:function(){var t=this.w,e=this.ttCtx,i=e.getElXCrosshairs();if(e.xcrosshairsWidth=parseInt(t.config.xaxis.crosshairs.width,10),t.globals.comboCharts){var a=t.globals.dom.baseEl.querySelector(\".apexcharts-bar-area\");if(null!==a&&\"barWidth\"===t.config.xaxis.crosshairs.width){var s=parseFloat(a.getAttribute(\"barWidth\"));e.xcrosshairsWidth=s}else if(\"tickWidth\"===t.config.xaxis.crosshairs.width){var r=t.globals.labels.length;e.xcrosshairsWidth=t.globals.gridWidth/r}}else if(\"tickWidth\"===t.config.xaxis.crosshairs.width){var o=t.globals.labels.length;e.xcrosshairsWidth=t.globals.gridWidth/o}else if(\"barWidth\"===t.config.xaxis.crosshairs.width){var n=t.globals.dom.baseEl.querySelector(\".apexcharts-bar-area\");if(null!==n){var l=parseFloat(n.getAttribute(\"barWidth\"));e.xcrosshairsWidth=l}else e.xcrosshairsWidth=1}t.globals.isBarHorizontal&&(e.xcrosshairsWidth=0),null!==i&&e.xcrosshairsWidth>0&&i.setAttribute(\"width\",e.xcrosshairsWidth)}},{key:\"handleYCrosshair\",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(\".apexcharts-ycrosshairs\"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(\".apexcharts-ycrosshairs-hidden\")}},{key:\"drawYaxisTooltipText\",value:function(t,e,i){var a=this.ttCtx,s=this.w,r=s.globals.yLabelFormatters[t];if(a.yaxisTooltips[t]){var o=a.getElGrid().getBoundingClientRect(),n=(e-o.top)*i.yRatio[t],l=s.globals.maxYArr[t]-s.globals.minYArr[t],h=s.globals.minYArr[t]+(l-n);a.tooltipPosition.moveYCrosshairs(e-o.top),a.yaxisTooltipText[t].innerHTML=r(h),a.tooltipPosition.moveYAxisTooltip(t)}}}]),t}(),bt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.tConfig=i.config.tooltip,this.tooltipUtil=new dt(this),this.tooltipLabels=new gt(this),this.tooltipPosition=new ut(this),this.marker=new pt(this),this.intersect=new ft(this),this.axesTooltip=new xt(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!i.globals.isBarHorizontal&&this.tConfig.shared,this.lastHoverTime=Date.now()}return r(t,[{key:\"getElTooltip\",value:function(t){return t||(t=this),t.w.globals.dom.baseEl?t.w.globals.dom.baseEl.querySelector(\".apexcharts-tooltip\"):null}},{key:\"getElXCrosshairs\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-xcrosshairs\")}},{key:\"getElGrid\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-grid\")}},{key:\"drawTooltip\",value:function(t){var e=this.w;this.xyRatios=t,this.isXAxisTooltipEnabled=e.config.xaxis.tooltip.enabled&&e.globals.axisCharts,this.yaxisTooltips=e.config.yaxis.map((function(t,i){return!!(t.show&&t.tooltip.enabled&&e.globals.axisCharts)})),this.allTooltipSeriesGroups=[],e.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement(\"div\");if(i.classList.add(\"apexcharts-tooltip\"),e.config.tooltip.cssClass&&i.classList.add(e.config.tooltip.cssClass),i.classList.add(\"apexcharts-theme-\".concat(this.tConfig.theme)),e.globals.dom.elWrap.appendChild(i),e.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new V(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!e.globals.comboCharts&&!this.tConfig.intersect&&\"rangeBar\"!==e.config.chart.type||this.tConfig.shared||(this.showOnIntersect=!0),0!==e.config.markers.size&&0!==e.globals.markers.largestSize||this.marker.drawDynamicPoints(this),e.globals.collapsedSeries.length!==e.globals.series.length){this.dataPointsDividedHeight=e.globals.gridHeight/e.globals.dataPoints,this.dataPointsDividedWidth=e.globals.gridWidth/e.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement(\"div\"),this.tooltipTitle.classList.add(\"apexcharts-tooltip-title\"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=e.globals.series.length;(e.globals.xyCharts||e.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:e.globals.series.length),this.legendLabels=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-legend-text\"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:\"createTTElements\",value:function(t){for(var e=this,i=this.w,a=[],s=this.getElTooltip(),r=function(r){var o=document.createElement(\"div\");o.classList.add(\"apexcharts-tooltip-series-group\"),o.style.order=i.config.tooltip.inverseOrder?t-r:r+1,e.tConfig.shared&&e.tConfig.enabledOnSeries&&Array.isArray(e.tConfig.enabledOnSeries)&&e.tConfig.enabledOnSeries.indexOf(r)<0&&o.classList.add(\"apexcharts-tooltip-series-group-hidden\");var n=document.createElement(\"span\");n.classList.add(\"apexcharts-tooltip-marker\"),n.style.backgroundColor=i.globals.colors[r],o.appendChild(n);var l=document.createElement(\"div\");l.classList.add(\"apexcharts-tooltip-text\"),l.style.fontFamily=e.tConfig.style.fontFamily||i.config.chart.fontFamily,l.style.fontSize=e.tConfig.style.fontSize,[\"y\",\"goals\",\"z\"].forEach((function(t){var e=document.createElement(\"div\");e.classList.add(\"apexcharts-tooltip-\".concat(t,\"-group\"));var i=document.createElement(\"span\");i.classList.add(\"apexcharts-tooltip-text-\".concat(t,\"-label\")),e.appendChild(i);var a=document.createElement(\"span\");a.classList.add(\"apexcharts-tooltip-text-\".concat(t,\"-value\")),e.appendChild(a),l.appendChild(e)})),o.appendChild(l),s.appendChild(o),a.push(o)},o=0;o<t;o++)r(o);return a}},{key:\"addSVGEvents\",value:function(){var t=this.w,e=t.config.chart.type,i=this.getElTooltip(),a=!(\"bar\"!==e&&\"candlestick\"!==e&&\"boxPlot\"!==e&&\"rangeBar\"!==e),s=\"area\"===e||\"line\"===e||\"scatter\"===e||\"bubble\"===e||\"radar\"===e,r=t.globals.dom.Paper.node,o=this.getElGrid();o&&(this.seriesBound=o.getBoundingClientRect());var n,l=[],h=[],c={hoverArea:r,elGrid:o,tooltipEl:i,tooltipY:l,tooltipX:h,ttItems:this.ttItems};if(t.globals.axisCharts&&(s?n=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series[data\\\\:longestSeries='true'] .apexcharts-marker\"):a?n=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series .apexcharts-bar-area, .apexcharts-series .apexcharts-candlestick-area, .apexcharts-series .apexcharts-boxPlot-area, .apexcharts-series .apexcharts-rangebar-area\"):\"heatmap\"!==e&&\"treemap\"!==e||(n=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series .apexcharts-heatmap, .apexcharts-series .apexcharts-treemap\")),n&&n.length))for(var d=0;d<n.length;d++)l.push(n[d].getAttribute(\"cy\")),h.push(n[d].getAttribute(\"cx\"));if(t.globals.xyCharts&&!this.showOnIntersect||t.globals.comboCharts&&!this.showOnIntersect||a&&this.tooltipUtil.hasBars()&&this.tConfig.shared)this.addPathsEventListeners([r],c);else if(a&&!t.globals.comboCharts||s&&this.showOnIntersect)this.addDatapointEventsListeners(c);else if(!t.globals.axisCharts||\"heatmap\"===e||\"treemap\"===e){var g=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series\");this.addPathsEventListeners(g,c)}if(this.showOnIntersect){var u=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-line-series .apexcharts-marker, .apexcharts-area-series .apexcharts-marker\");u.length>0&&this.addPathsEventListeners(u,c),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(c)}}},{key:\"drawFixedTooltipRect\",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,o=this.tConfig.fixed.offsetY,n=this.tConfig.fixed.position.toLowerCase();return n.indexOf(\"right\")>-1&&(r=r+t.globals.svgWidth-a+10),n.indexOf(\"bottom\")>-1&&(o=o+t.globals.svgHeight-s-10),e.style.left=r+\"px\",e.style.top=o+\"px\",{x:r,y:o,ttWidth:a,ttHeight:s}}},{key:\"addDatapointEventsListeners\",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area\");this.addPathsEventListeners(e,t)}},{key:\"addPathsEventListeners\",value:function(t,e){for(var i=this,a=function(a){var s={paths:t[a],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};[\"mousemove\",\"mouseup\",\"touchmove\",\"mouseout\",\"touchend\"].map((function(e){return t[a].addEventListener(e,i.onSeriesHover.bind(i,s),{capture:!1,passive:!0})}))},s=0;s<t.length;s++)a(s)}},{key:\"onSeriesHover\",value:function(t,e){var i=this,a=Date.now()-this.lastHoverTime;a>=100?this.seriesHover(t,e):(clearTimeout(this.seriesHoverTimeout),this.seriesHoverTimeout=setTimeout((function(){i.seriesHover(t,e)}),100-a))}},{key:\"seriesHover\",value:function(t,e){var i=this;this.lastHoverTime=Date.now();var a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||0===s.globals.dataPoints)||(a.length?a.forEach((function(a){var s=i.getElTooltip(a),r={paths:t.paths,tooltipEl:s,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:a.w.globals.tooltip.ttItems};a.w.globals.minX===i.w.globals.minX&&a.w.globals.maxX===i.w.globals.maxX&&a.w.globals.tooltip.seriesHoverByContext({chartCtx:a,ttCtx:a.w.globals.tooltip,opt:r,e:e})})):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:t,e:e}))}},{key:\"seriesHoverByContext\",value:function(t){var e=t.chartCtx,i=t.ttCtx,a=t.opt,s=t.e,r=e.w,o=this.getElTooltip();if(o){if(i.tooltipRect={x:0,y:0,ttWidth:o.getBoundingClientRect().width,ttHeight:o.getBoundingClientRect().height},i.e=s,i.tooltipUtil.hasBars()&&!r.globals.comboCharts&&!i.isBarShared)if(this.tConfig.onDatasetHover.highlightDataSeries)new N(e).toggleSeriesOnHover(s,s.target.parentNode);i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect})}}},{key:\"axisChartsTooltips\",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=s.elGrid.getBoundingClientRect(),n=\"touchmove\"===a.type?a.touches[0].clientX:a.clientX,l=\"touchmove\"===a.type?a.touches[0].clientY:a.clientY;if(this.clientY=l,this.clientX=n,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,l<o.top||l>o.top+o.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var h=parseInt(s.paths.getAttribute(\"index\"),10);if(this.tConfig.enabledOnSeries.indexOf(h)<0)return void this.handleMouseOut(s)}var c=this.getElTooltip(),d=this.getElXCrosshairs(),g=r.globals.xyCharts||\"bar\"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if(\"mousemove\"===a.type||\"touchmove\"===a.type||\"mouseup\"===a.type){if(r.globals.collapsedSeries.length+r.globals.ancillaryCollapsedSeries.length===r.globals.series.length)return;null!==d&&d.classList.add(\"apexcharts-active\");var u=this.yaxisTooltips.filter((function(t){return!0===t}));if(null!==this.ycrosshairs&&u.length&&this.ycrosshairs.classList.add(\"apexcharts-active\"),g&&!this.showOnIntersect)this.handleStickyTooltip(a,n,l,s);else if(\"heatmap\"===r.config.chart.type||\"treemap\"===r.config.chart.type){var p=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:e,y:i,type:r.config.chart.type});e=p.x,i=p.y,c.style.left=e+\"px\",c.style.top=i+\"px\"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:e,y:i});if(this.yaxisTooltips.length)for(var f=0;f<r.config.yaxis.length;f++)this.axesTooltip.drawYaxisTooltipText(f,l,this.xyRatios);s.tooltipEl.classList.add(\"apexcharts-active\")}else\"mouseout\"!==a.type&&\"touchend\"!==a.type||this.handleMouseOut(s)}}},{key:\"nonAxisChartsTooltips\",value:function(t){var e=t.e,i=t.opt,a=t.tooltipRect,s=this.w,r=i.paths.getAttribute(\"rel\"),o=this.getElTooltip(),n=s.globals.dom.elWrap.getBoundingClientRect();if(\"mousemove\"===e.type||\"touchmove\"===e.type){o.classList.add(\"apexcharts-active\"),this.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:parseInt(r,10)-1,shared:!1});var l=s.globals.clientX-n.left-a.ttWidth/2,h=s.globals.clientY-n.top-a.ttHeight-10;if(o.style.left=l+\"px\",o.style.top=h+\"px\",s.config.legend.tooltipHoverFormatter){var c=r-1,d=(0,s.config.legend.tooltipHoverFormatter)(this.legendLabels[c].getAttribute(\"data:default-text\"),{seriesIndex:c,dataPointIndex:c,w:s});this.legendLabels[c].innerHTML=d}}else\"mouseout\"!==e.type&&\"touchend\"!==e.type||(o.classList.remove(\"apexcharts-active\"),s.config.legend.tooltipHoverFormatter&&this.legendLabels.forEach((function(t){var e=t.getAttribute(\"data:default-text\");t.innerHTML=decodeURIComponent(e)})))}},{key:\"handleStickyTooltip\",value:function(t,e,i,a){var s=this.w,r=this.tooltipUtil.getNearestValues({context:this,hoverArea:a.hoverArea,elGrid:a.elGrid,clientX:e,clientY:i}),o=r.j,n=r.capturedSeries;s.globals.collapsedSeriesIndices.includes(n)&&(n=null);var l=a.elGrid.getBoundingClientRect();if(r.hoverX<0||r.hoverX>l.width)this.handleMouseOut(a);else if(null!==n)this.handleStickyCapturedSeries(t,n,a,o);else if(this.tooltipUtil.isXoverlap(o)||s.globals.isBarHorizontal){var h=s.globals.series.findIndex((function(t,e){return!s.globals.collapsedSeriesIndices.includes(e)}));this.create(t,this,h,o,a.ttItems)}}},{key:\"handleStickyCapturedSeries\",value:function(t,e,i,a){var s=this.w;if(!this.tConfig.shared&&null===s.globals.series[e][a])return void this.handleMouseOut(i);if(void 0!==s.globals.series[e][a])this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(t,this,e,a,i.ttItems):this.create(t,this,e,a,i.ttItems,!1);else if(this.tooltipUtil.isXoverlap(a)){var r=s.globals.series.findIndex((function(t,e){return!s.globals.collapsedSeriesIndices.includes(e)}));this.create(t,this,r,a,i.ttItems)}}},{key:\"deactivateHoverFilter\",value:function(){for(var t=this.w,e=new m(this.ctx),i=t.globals.dom.Paper.select(\".apexcharts-bar-area\"),a=0;a<i.length;a++)e.pathMouseLeave(i[a])}},{key:\"handleMouseOut\",value:function(t){var e=this.w,i=this.getElXCrosshairs();if(t.tooltipEl.classList.remove(\"apexcharts-active\"),this.deactivateHoverFilter(),\"bubble\"!==e.config.chart.type&&this.marker.resetPointsSize(),null!==i&&i.classList.remove(\"apexcharts-active\"),null!==this.ycrosshairs&&this.ycrosshairs.classList.remove(\"apexcharts-active\"),this.isXAxisTooltipEnabled&&this.xaxisTooltip.classList.remove(\"apexcharts-active\"),this.yaxisTooltips.length){null===this.yaxisTTEls&&(this.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxistooltip\"));for(var a=0;a<this.yaxisTTEls.length;a++)this.yaxisTTEls[a].classList.remove(\"apexcharts-active\")}e.config.legend.tooltipHoverFormatter&&this.legendLabels.forEach((function(t){var e=t.getAttribute(\"data:default-text\");t.innerHTML=decodeURIComponent(e)}))}},{key:\"markerClick\",value:function(t,e,i){var a=this.w;\"function\"==typeof a.config.chart.events.markerClick&&a.config.chart.events.markerClick(t,this.ctx,{seriesIndex:e,dataPointIndex:i,w:a}),this.ctx.events.fireEvent(\"markerClick\",[t,this.ctx,{seriesIndex:e,dataPointIndex:i,w:a}])}},{key:\"create\",value:function(t,i,a,s,r){var o,n,l,h,c,d,g,u,p,f,x,b,v,y,w,k,A=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,S=this.w,C=i;\"mouseup\"===t.type&&this.markerClick(t,a,s),null===A&&(A=this.tConfig.shared);var L=this.tooltipUtil.hasMarkers(a),P=this.tooltipUtil.getElBars();if(S.config.legend.tooltipHoverFormatter){var I=S.config.legend.tooltipHoverFormatter,T=Array.from(this.legendLabels);T.forEach((function(t){var e=t.getAttribute(\"data:default-text\");t.innerHTML=decodeURIComponent(e)}));for(var M=0;M<T.length;M++){var X=T[M],z=parseInt(X.getAttribute(\"i\"),10),E=decodeURIComponent(X.getAttribute(\"data:default-text\")),Y=I(E,{seriesIndex:A?z:a,dataPointIndex:s,w:S});if(A)X.innerHTML=S.globals.collapsedSeriesIndices.indexOf(z)<0?Y:E;else if(X.innerHTML=z===a?Y:E,a===z)break}}var F=e(e({ttItems:r,i:a,j:s},void 0!==(null===(o=S.globals.seriesRange)||void 0===o||null===(n=o[a])||void 0===n||null===(l=n[s])||void 0===l||null===(h=l.y[0])||void 0===h?void 0:h.y1)&&{y1:null===(c=S.globals.seriesRange)||void 0===c||null===(d=c[a])||void 0===d||null===(g=d[s])||void 0===g||null===(u=g.y[0])||void 0===u?void 0:u.y1}),void 0!==(null===(p=S.globals.seriesRange)||void 0===p||null===(f=p[a])||void 0===f||null===(x=f[s])||void 0===x||null===(b=x.y[0])||void 0===b?void 0:b.y2)&&{y2:null===(v=S.globals.seriesRange)||void 0===v||null===(y=v[a])||void 0===y||null===(w=y[s])||void 0===w||null===(k=w.y[0])||void 0===k?void 0:k.y2});if(A){if(C.tooltipLabels.drawSeriesTexts(e(e({},F),{},{shared:!this.showOnIntersect&&this.tConfig.shared})),L)S.globals.markers.largestSize>0?C.marker.enlargePoints(s):C.tooltipPosition.moveDynamicPointsOnHover(s);else if(this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(P),this.barSeriesHeight>0)){var R=new m(this.ctx),H=S.globals.dom.Paper.select(\".apexcharts-bar-area[j='\".concat(s,\"']\"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(s,a);for(var D=0;D<H.length;D++)R.pathMouseEnter(H[D])}}else C.tooltipLabels.drawSeriesTexts(e({shared:!1},F)),this.tooltipUtil.hasBars()&&C.tooltipPosition.moveStickyTooltipOverBars(s,a),L&&C.tooltipPosition.moveMarkers(a,s)}}]),t}(),vt=function(){function t(e){a(this,t),this.w=e.w,this.barCtx=e,this.totalFormatter=this.w.config.plotOptions.bar.dataLabels.total.formatter,this.totalFormatter||(this.totalFormatter=this.w.config.dataLabels.formatter)}return r(t,[{key:\"handleBarDataLabels\",value:function(t){var e=t.x,i=t.y,a=t.y1,s=t.y2,r=t.i,o=t.j,n=t.realIndex,l=t.groupIndex,h=t.series,c=t.barHeight,d=t.barWidth,g=t.barXPosition,u=t.barYPosition,p=t.visibleSeries,f=t.renderedPath,x=this.w,b=new m(this.barCtx.ctx),v=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[n]:this.barCtx.strokeWidth,y=e+parseFloat(d*p),w=i+parseFloat(c*p);x.globals.isXNumeric&&!x.globals.isBarHorizontal&&(y=e+parseFloat(d*(p+1)),w=i+parseFloat(c*(p+1))-v);var k,A=null,S=e,C=i,L={},P=x.config.dataLabels,I=this.barCtx.barOptions.dataLabels,T=this.barCtx.barOptions.dataLabels.total;void 0!==u&&this.barCtx.isRangeBar&&(w=u,C=u),void 0!==g&&this.barCtx.isVerticalGroupedRangeBar&&(y=g,S=g);var M=P.offsetX,X=P.offsetY,z={width:0,height:0};if(x.config.dataLabels.enabled){var E=this.barCtx.series[r][o];z=b.getTextRects(x.globals.yLabelFormatters[0](E),parseFloat(P.style.fontSize))}var Y={x:e,y:i,i:r,j:o,realIndex:n,groupIndex:l||-1,renderedPath:f,bcx:y,bcy:w,barHeight:c,barWidth:d,textRects:z,strokeWidth:v,dataLabelsX:S,dataLabelsY:C,dataLabelsConfig:P,barDataLabelsConfig:I,barTotalDataLabelsConfig:T,offX:M,offY:X};return L=this.barCtx.isHorizontal?this.calculateBarsDataLabelsPosition(Y):this.calculateColumnsDataLabelsPosition(Y),f.attr({cy:L.bcy,cx:L.bcx,j:o,val:h[r][o],barHeight:c,barWidth:d}),k=this.drawCalculatedDataLabels({x:L.dataLabelsX,y:L.dataLabelsY,val:this.barCtx.isRangeBar?[a,s]:h[r][o],i:n,j:o,barWidth:d,barHeight:c,textRects:z,dataLabelsConfig:P}),x.config.chart.stacked&&T.enabled&&(A=this.drawTotalDataLabels({x:L.totalDataLabelsX,y:L.totalDataLabelsY,realIndex:n,textAnchor:L.totalDataLabelsAnchor,val:this.getStackedTotalDataLabel({realIndex:n,j:o}),dataLabelsConfig:P,barTotalDataLabelsConfig:T})),{dataLabels:k,totalDataLabels:A}}},{key:\"getStackedTotalDataLabel\",value:function(t){var i=t.realIndex,a=t.j,s=this.w,r=this.barCtx.stackedSeriesTotals[a];return this.totalFormatter&&(r=this.totalFormatter(r,e(e({},s),{},{seriesIndex:i,dataPointIndex:a,w:s}))),r}},{key:\"calculateColumnsDataLabelsPosition\",value:function(t){var e,i,a=this.w,s=t.i,r=t.j,o=t.realIndex,n=t.groupIndex,l=t.y,h=t.bcx,c=t.barWidth,d=t.barHeight,g=t.textRects,u=t.dataLabelsX,p=t.dataLabelsY,f=t.dataLabelsConfig,x=t.barDataLabelsConfig,b=t.barTotalDataLabelsConfig,v=t.strokeWidth,y=t.offX,w=t.offY;d=Math.abs(d);var k=\"vertical\"===a.config.plotOptions.bar.dataLabels.orientation;h=h-v/2+(-1!==n?n*c:0);var A=a.globals.gridWidth/a.globals.dataPoints;if(this.barCtx.isVerticalGroupedRangeBar?u+=c/2:u=a.globals.isXNumeric?h-c/2+y:h-A+c/2+y,k){u=u+g.height/2-v/2-2}var S=this.barCtx.series[s][r]<0,C=l;switch(this.barCtx.isReversed&&(C=l-d+(S?2*d:0),l-=d),x.position){case\"center\":p=k?S?C+d/2+w:C+d/2-w:S?C-d/2+g.height/2+w:C+d/2+g.height/2-w;break;case\"bottom\":p=k?S?C+d+w:C+d-w:S?C-d+g.height+v+w:C+d-g.height/2+v-w;break;case\"top\":p=k?S?C+w:C-w:S?C-g.height/2-w:C+g.height+w}if(this.barCtx.lastActiveBarSerieIndex===o&&b.enabled){var L=new m(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:o,j:r}),f.fontSize);e=S?C-L.height/2-w-b.offsetY+18:C+L.height+w+b.offsetY-18,i=u+b.offsetX}return a.config.chart.stacked||(p<0?p=0+v:p+g.height/3>a.globals.gridHeight&&(p=a.globals.gridHeight-v)),{bcx:h,bcy:l,dataLabelsX:u,dataLabelsY:p,totalDataLabelsX:i,totalDataLabelsY:e,totalDataLabelsAnchor:\"middle\"}}},{key:\"calculateBarsDataLabelsPosition\",value:function(t){var e=this.w,i=t.x,a=t.i,s=t.j,r=t.realIndex,o=t.groupIndex,n=t.bcy,l=t.barHeight,h=t.barWidth,c=t.textRects,d=t.dataLabelsX,g=t.strokeWidth,u=t.dataLabelsConfig,p=t.barDataLabelsConfig,f=t.barTotalDataLabelsConfig,x=t.offX,b=t.offY,v=e.globals.gridHeight/e.globals.dataPoints;h=Math.abs(h);var y,w,k=(n+=-1!==o?o*l:0)-(this.barCtx.isRangeBar?0:v)+l/2+c.height/2+b-3,A=\"start\",S=this.barCtx.series[a][s]<0,C=i;switch(this.barCtx.isReversed&&(C=i+h-(S?2*h:0),i=e.globals.gridWidth-h),p.position){case\"center\":d=S?C+h/2-x:Math.max(c.width/2,C-h/2)+x;break;case\"bottom\":d=S?C+h-g-Math.round(c.width/2)-x:C-h+g+Math.round(c.width/2)+x;break;case\"top\":d=S?C-g+Math.round(c.width/2)-x:C-g-Math.round(c.width/2)+x}if(this.barCtx.lastActiveBarSerieIndex===r&&f.enabled){var L=new m(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:r,j:s}),u.fontSize);S?(y=C-g+Math.round(L.width/2)-x-f.offsetX-15,A=\"end\"):y=C-g-Math.round(L.width/2)+x+f.offsetX+15,w=k+f.offsetY}return e.config.chart.stacked||(d<0?d=d+c.width+g:d+c.width/2>e.globals.gridWidth&&(d=e.globals.gridWidth-c.width-g)),{bcx:i,bcy:n,dataLabelsX:d,dataLabelsY:k,totalDataLabelsX:y,totalDataLabelsY:w,totalDataLabelsAnchor:A}}},{key:\"drawCalculatedDataLabels\",value:function(t){var i=t.x,a=t.y,s=t.val,r=t.i,o=t.j,n=t.textRects,l=t.barHeight,h=t.barWidth,c=t.dataLabelsConfig,d=this.w,g=\"rotate(0)\";\"vertical\"===d.config.plotOptions.bar.dataLabels.orientation&&(g=\"rotate(-90, \".concat(i,\", \").concat(a,\")\"));var u=new O(this.barCtx.ctx),p=new m(this.barCtx.ctx),f=c.formatter,x=null,b=d.globals.collapsedSeriesIndices.indexOf(r)>-1;if(c.enabled&&!b){x=p.group({class:\"apexcharts-data-labels\",transform:g});var v=\"\";void 0!==s&&(v=f(s,e(e({},d),{},{seriesIndex:r,dataPointIndex:o,w:d}))),!s&&d.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(v=\"\");var y=d.globals.series[r][o]<0,w=d.config.plotOptions.bar.dataLabels.position;if(\"vertical\"===d.config.plotOptions.bar.dataLabels.orientation&&(\"top\"===w&&(c.textAnchor=y?\"end\":\"start\"),\"center\"===w&&(c.textAnchor=\"middle\"),\"bottom\"===w&&(c.textAnchor=y?\"end\":\"start\")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels)h<p.getTextRects(v,parseFloat(c.style.fontSize)).width&&(v=\"\");d.config.chart.stacked&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels&&(this.barCtx.isHorizontal?n.width/1.6>Math.abs(h)&&(v=\"\"):n.height/1.6>Math.abs(l)&&(v=\"\"));var k=e({},c);this.barCtx.isHorizontal&&s<0&&(\"start\"===c.textAnchor?k.textAnchor=\"end\":\"end\"===c.textAnchor&&(k.textAnchor=\"start\")),u.plotDataLabelsText({x:i,y:a,text:v,i:r,j:o,parent:x,dataLabelsConfig:k,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return x}},{key:\"drawTotalDataLabels\",value:function(t){var e,i=t.x,a=t.y,s=t.val,r=t.realIndex,o=t.textAnchor,n=t.barTotalDataLabelsConfig,l=new m(this.barCtx.ctx);return n.enabled&&void 0!==i&&void 0!==a&&this.barCtx.lastActiveBarSerieIndex===r&&(e=l.drawText({x:i,y:a,foreColor:n.style.color,text:s,textAnchor:o,fontFamily:n.style.fontFamily,fontSize:n.style.fontSize,fontWeight:n.style.fontWeight})),e}}]),t}(),mt=function(){function t(e){a(this,t),this.w=e.w,this.barCtx=e}return r(t,[{key:\"initVariables\",value:function(t){var e=this.w;this.barCtx.series=t,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(var i=0;i<t.length;i++)if(t[i].length>0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=t[i].length),e.globals.isXNumeric)for(var a=0;a<t[i].length;a++)e.globals.seriesX[i][a]>e.globals.minX&&e.globals.seriesX[i][a]<e.globals.maxX&&this.barCtx.visibleItems++;else this.barCtx.visibleItems=e.globals.dataPoints;0===this.barCtx.seriesLen&&(this.barCtx.seriesLen=1),this.barCtx.zeroSerieses=[],e.globals.comboCharts||this.checkZeroSeries({series:t})}},{key:\"initialPositions\",value:function(){var t,e,i,a,s,r,o,n,l=this.w,h=l.globals.dataPoints;this.barCtx.isRangeBar&&(h=l.globals.labels.length);var c=this.barCtx.seriesLen;if(l.config.plotOptions.bar.rangeBarGroupRows&&(c=1),this.barCtx.isHorizontal)s=(i=l.globals.gridHeight/h)/c,l.globals.isXNumeric&&(s=(i=l.globals.gridHeight/this.barCtx.totalItems)/this.barCtx.seriesLen),s=s*parseInt(this.barCtx.barOptions.barHeight,10)/100,-1===String(this.barCtx.barOptions.barHeight).indexOf(\"%\")&&(s=parseInt(this.barCtx.barOptions.barHeight,10)),n=this.barCtx.baseLineInvertedY+l.globals.padHorizontal+(this.barCtx.isReversed?l.globals.gridWidth:0)-(this.barCtx.isReversed?2*this.barCtx.baseLineInvertedY:0),this.barCtx.isFunnel&&(n=l.globals.gridWidth/2),e=(i-s*this.barCtx.seriesLen)/2;else{if(a=l.globals.gridWidth/this.barCtx.visibleItems,l.config.xaxis.convertedCatToNumeric&&(a=l.globals.gridWidth/l.globals.dataPoints),r=a/c*parseInt(this.barCtx.barOptions.columnWidth,10)/100,l.globals.isXNumeric){var d=this.barCtx.xRatio;l.config.xaxis.convertedCatToNumeric&&(d=this.barCtx.initialXRatio),l.globals.minXDiff&&.5!==l.globals.minXDiff&&l.globals.minXDiff/d>0&&(a=l.globals.minXDiff/d),(r=a/c*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}-1===String(this.barCtx.barOptions.columnWidth).indexOf(\"%\")&&(r=parseInt(this.barCtx.barOptions.columnWidth,10)),o=l.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.yaxisIndex]-(this.barCtx.isReversed?l.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.yaxisIndex]:0),t=l.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return{x:t,y:e,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:o,zeroW:n}}},{key:\"initializeStackedPrevVars\",value:function(t){var e=t.w;e.globals.hasSeriesGroups?e.globals.seriesGroups.forEach((function(e){t[e]||(t[e]={}),t[e].prevY=[],t[e].prevX=[],t[e].prevYF=[],t[e].prevXF=[],t[e].prevYVal=[],t[e].prevXVal=[]})):(t.prevY=[],t.prevX=[],t.prevYF=[],t.prevXF=[],t.prevYVal=[],t.prevXVal=[])}},{key:\"initializeStackedXYVars\",value:function(t){var e=t.w;e.globals.hasSeriesGroups?e.globals.seriesGroups.forEach((function(e){t[e]||(t[e]={}),t[e].xArrj=[],t[e].xArrjF=[],t[e].xArrjVal=[],t[e].yArrj=[],t[e].yArrjF=[],t[e].yArrjVal=[]})):(t.xArrj=[],t.xArrjF=[],t.xArrjVal=[],t.yArrj=[],t.yArrjF=[],t.yArrjVal=[])}},{key:\"getPathFillColor\",value:function(t,e,i,a){var s,r,o,n,l=this.w,h=new R(this.barCtx.ctx),c=null,d=this.barCtx.barOptions.distributed?i:e;this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map((function(a){t[e][i]>=a.from&&t[e][i]<=a.to&&(c=a.color)}));return l.config.series[e].data[i]&&l.config.series[e].data[i].fillColor&&(c=l.config.series[e].data[i].fillColor),h.fillPath({seriesNumber:this.barCtx.barOptions.distributed?d:a,dataPointIndex:i,color:c,value:t[e][i],fillConfig:null===(s=l.config.series[e].data[i])||void 0===s?void 0:s.fill,fillType:null!==(r=l.config.series[e].data[i])&&void 0!==r&&null!==(o=r.fill)&&void 0!==o&&o.type?null===(n=l.config.series[e].data[i])||void 0===n?void 0:n.fill.type:l.config.fill.type})}},{key:\"getStrokeWidth\",value:function(t,e,i){var a=0,s=this.w;return this.barCtx.series[t][e]?this.barCtx.isNullValue=!1:this.barCtx.isNullValue=!0,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:\"shouldApplyRadius\",value:function(t){var e=this.w,i=!1;return e.config.plotOptions.bar.borderRadius>0&&(e.config.chart.stacked&&\"last\"===e.config.plotOptions.bar.borderRadiusWhenStacked?this.barCtx.lastActiveBarSerieIndex===t&&(i=!0):i=!0),i}},{key:\"barBackground\",value:function(t){var e=t.j,i=t.i,a=t.x1,s=t.x2,r=t.y1,o=t.y2,n=t.elSeries,l=this.w,h=new m(this.barCtx.ctx),c=new N(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&c===i){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e%=this.barCtx.barOptions.colors.backgroundBarColors.length);var d=this.barCtx.barOptions.colors.backgroundBarColors[e],g=h.drawRect(void 0!==a?a:0,void 0!==r?r:0,void 0!==s?s:l.globals.gridWidth,void 0!==o?o:l.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,d,this.barCtx.barOptions.colors.backgroundBarOpacity);n.add(g),g.node.classList.add(\"apexcharts-backgroundBar\")}}},{key:\"getColumnPaths\",value:function(t){var e,i=t.barWidth,a=t.barXPosition,s=t.y1,r=t.y2,o=t.strokeWidth,n=t.seriesGroup,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new m(this.barCtx.ctx);(o=Array.isArray(o)?o[l]:o)||(o=0);var u=i,p=a;null!==(e=d.config.series[l].data[c])&&void 0!==e&&e.columnWidthOffset&&(p=a-d.config.series[l].data[c].columnWidthOffset/2,u=i+d.config.series[l].data[c].columnWidthOffset);var f=p,x=p+u;s+=.001,r+=.001;var b=g.move(f,s),v=g.move(f,s),y=g.line(x-o,s);if(d.globals.previousPaths.length>0&&(v=this.barCtx.getPreviousPath(l,c,!1)),b=b+g.line(f,r)+g.line(x-o,r)+g.line(x-o,s)+(\"around\"===d.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\"),v=v+g.line(f,s)+y+y+y+y+y+g.line(f,s)+(\"around\"===d.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\"),this.shouldApplyRadius(l)&&(b=g.roundPathCorners(b,d.config.plotOptions.bar.borderRadius)),d.config.chart.stacked){var w=this.barCtx;d.globals.hasSeriesGroups&&n&&(w=this.barCtx[n]),w.yArrj.push(r),w.yArrjF.push(Math.abs(s-r)),w.yArrjVal.push(this.barCtx.series[h][c])}return{pathTo:b,pathFrom:v}}},{key:\"getBarpaths\",value:function(t){var e,i=t.barYPosition,a=t.barHeight,s=t.x1,r=t.x2,o=t.strokeWidth,n=t.seriesGroup,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new m(this.barCtx.ctx);(o=Array.isArray(o)?o[l]:o)||(o=0);var u=i,p=a;null!==(e=d.config.series[l].data[c])&&void 0!==e&&e.barHeightOffset&&(u=i-d.config.series[l].data[c].barHeightOffset/2,p=a+d.config.series[l].data[c].barHeightOffset);var f=u,x=u+p;s+=.001,r+=.001;var b=g.move(s,f),v=g.move(s,f);d.globals.previousPaths.length>0&&(v=this.barCtx.getPreviousPath(l,c,!1));var y=g.line(s,x-o);if(b=b+g.line(r,f)+g.line(r,x-o)+y+(\"around\"===d.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\"),v=v+g.line(s,f)+y+y+y+y+y+g.line(s,f)+(\"around\"===d.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\"),this.shouldApplyRadius(l)&&(b=g.roundPathCorners(b,d.config.plotOptions.bar.borderRadius)),d.config.chart.stacked){var w=this.barCtx;d.globals.hasSeriesGroups&&n&&(w=this.barCtx[n]),w.xArrj.push(r),w.xArrjF.push(Math.abs(s-r)),w.xArrjVal.push(this.barCtx.series[h][c])}return{pathTo:b,pathFrom:v}}},{key:\"checkZeroSeries\",value:function(t){for(var e=t.series,i=this.w,a=0;a<e.length;a++){for(var s=0,r=0;r<e[i.globals.maxValsInArrayIndex].length;r++)s+=e[a][r];0===s&&this.barCtx.zeroSerieses.push(a)}}},{key:\"getXForValue\",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?e:null;return null!=t&&(i=e+t/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?t/this.barCtx.invertedYRatio:0)),i}},{key:\"getYForValue\",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?e:null;return null!=t&&(i=e-t/this.barCtx.yRatio[this.barCtx.yaxisIndex]+2*(this.barCtx.isReversed?t/this.barCtx.yRatio[this.barCtx.yaxisIndex]:0)),i}},{key:\"getGoalValues\",value:function(t,i,a,s,r){var n=this,l=this.w,h=[],c=function(e,s){var r;h.push((o(r={},t,\"x\"===t?n.getXForValue(e,i,!1):n.getYForValue(e,a,!1)),o(r,\"attrs\",s),r))};if(l.globals.seriesGoals[s]&&l.globals.seriesGoals[s][r]&&Array.isArray(l.globals.seriesGoals[s][r])&&l.globals.seriesGoals[s][r].forEach((function(t){c(t.value,t)})),this.barCtx.barOptions.isDumbbell&&l.globals.seriesRange.length){var d=this.barCtx.barOptions.dumbbellColors?this.barCtx.barOptions.dumbbellColors:l.globals.colors,g={strokeHeight:\"x\"===t?0:l.globals.markers.size[s],strokeWidth:\"x\"===t?l.globals.markers.size[s]:0,strokeDashArray:0,strokeLineCap:\"round\",strokeColor:Array.isArray(d[s])?d[s][0]:d[s]};c(l.globals.seriesRangeStart[s][r],g),c(l.globals.seriesRangeEnd[s][r],e(e({},g),{},{strokeColor:Array.isArray(d[s])?d[s][1]:d[s]}))}return h}},{key:\"drawGoalLine\",value:function(t){var e=t.barXPosition,i=t.barYPosition,a=t.goalX,s=t.goalY,r=t.barWidth,o=t.barHeight,n=new m(this.barCtx.ctx),l=n.group({className:\"apexcharts-bar-goals-groups\"});l.node.classList.add(\"apexcharts-element-hidden\"),this.barCtx.w.globals.delayedElements.push({el:l.node}),l.attr(\"clip-path\",\"url(#gridRectMarkerMask\".concat(this.barCtx.w.globals.cuid,\")\"));var h=null;return this.barCtx.isHorizontal?Array.isArray(a)&&a.forEach((function(t){var e=void 0!==t.attrs.strokeHeight?t.attrs.strokeHeight:o/2,a=i+e+o/2;h=n.drawLine(t.x,a-2*e,t.x,a,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeWidth?t.attrs.strokeWidth:2,t.attrs.strokeLineCap),l.add(h)})):Array.isArray(s)&&s.forEach((function(t){var i=void 0!==t.attrs.strokeWidth?t.attrs.strokeWidth:r/2,a=e+i+r/2;h=n.drawLine(a-2*i,t.y,a,t.y,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeHeight?t.attrs.strokeHeight:2,t.attrs.strokeLineCap),l.add(h)})),l}},{key:\"drawBarShadow\",value:function(t){var e=t.prevPaths,i=t.currPaths,a=t.color,s=this.w,r=e.x,o=e.x1,n=e.barYPosition,l=i.x,h=i.x1,c=i.barYPosition,d=n+i.barHeight,g=new m(this.barCtx.ctx),u=new x,p=g.move(o,d)+g.line(r,d)+g.line(l,c)+g.line(h,c)+g.line(o,d)+(\"around\"===s.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\");return g.drawPath({d:p,fill:u.shadeColor(.5,x.rgb2hex(a)),stroke:\"none\",strokeWidth:0,fillOpacity:1,classes:\"apexcharts-bar-shadows\"})}}]),t}(),yt=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w;var s=this.w;this.barOptions=s.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=s.config.stroke.width,this.isNullValue=!1,this.isRangeBar=s.globals.seriesRange.length&&this.isHorizontal,this.isVerticalGroupedRangeBar=!s.globals.isBarHorizontal&&s.globals.seriesRange.length&&s.config.plotOptions.bar.rangeBarGroupRows,this.isFunnel=this.barOptions.isFunnel,this.xyRatios=i,null!==this.xyRatios&&(this.xRatio=i.xRatio,this.initialXRatio=i.initialXRatio,this.yRatio=i.yRatio,this.invertedXRatio=i.invertedXRatio,this.invertedYRatio=i.invertedYRatio,this.baseLineY=i.baseLineY,this.baseLineInvertedY=i.baseLineInvertedY),this.yaxisIndex=0,this.seriesLen=0,this.pathArr=[];var r=new N(this.ctx);this.lastActiveBarSerieIndex=r.getActiveConfigSeriesIndex(\"desc\",[\"bar\",\"column\"]);var o=r.getBarSeriesIndices(),n=new y(this.ctx);this.stackedSeriesTotals=n.getStackedSeriesTotals(this.w.config.series.map((function(t,e){return-1===o.indexOf(e)?e:-1})).filter((function(t){return-1!==t}))),this.barHelpers=new mt(this)}return r(t,[{key:\"draw\",value:function(t,i){var a=this.w,s=new m(this.ctx),r=new y(this.ctx,a);t=r.getLogSeries(t),this.series=t,this.yRatio=r.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);var o=s.group({class:\"apexcharts-bar-series apexcharts-plot-series\"});a.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn(\"WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.\");for(var n=0,l=0;n<t.length;n++,l++){var h,c,d,g,u=void 0,p=void 0,f=[],b=[],v=a.globals.comboCharts?i[n]:n,w=s.group({class:\"apexcharts-series\",rel:n+1,seriesName:x.escapeString(a.globals.seriesNames[v]),\"data:realIndex\":v});this.ctx.series.addCollapsedClassToSeries(w,v),t[n].length>0&&(this.visibleI=this.visibleI+1);var k=0,A=0;this.yRatio.length>1&&(this.yaxisIndex=v),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed;var S=this.barHelpers.initialPositions();p=S.y,k=S.barHeight,c=S.yDivision,g=S.zeroW,u=S.x,A=S.barWidth,h=S.xDivision,d=S.zeroH,this.horizontal||b.push(u+A/2);var C=s.group({class:\"apexcharts-datalabels\",\"data:realIndex\":v});a.globals.delayedElements.push({el:C.node}),C.node.classList.add(\"apexcharts-element-hidden\");var L=s.group({class:\"apexcharts-bar-goals-markers\",style:\"pointer-events: none\"}),P=s.group({class:\"apexcharts-bar-shadows\",style:\"pointer-events: none\"});a.globals.delayedElements.push({el:P.node}),P.node.classList.add(\"apexcharts-element-hidden\");for(var I=0;I<a.globals.dataPoints;I++){var T=this.barHelpers.getStrokeWidth(n,I,v),M=null,X={indexes:{i:n,j:I,realIndex:v,bc:l},x:u,y:p,strokeWidth:T,elSeries:w};this.isHorizontal?(M=this.drawBarPaths(e(e({},X),{},{barHeight:k,zeroW:g,yDivision:c})),A=this.series[n][I]/this.invertedYRatio):(M=this.drawColumnPaths(e(e({},X),{},{xDivision:h,barWidth:A,zeroH:d})),k=this.series[n][I]/this.yRatio[this.yaxisIndex]);var z=this.barHelpers.getPathFillColor(t,n,I,v);if(this.isFunnel&&this.barOptions.isFunnel3d&&this.pathArr.length&&I>0){var E=this.barHelpers.drawBarShadow({color:\"string\"==typeof z&&-1===(null==z?void 0:z.indexOf(\"url\"))?z:x.hexToRgba(a.globals.colors[n]),prevPaths:this.pathArr[this.pathArr.length-1],currPaths:M});E&&P.add(E)}this.pathArr.push(M);var Y=this.barHelpers.drawGoalLine({barXPosition:M.barXPosition,barYPosition:M.barYPosition,goalX:M.goalX,goalY:M.goalY,barHeight:k,barWidth:A});Y&&L.add(Y),p=M.y,u=M.x,I>0&&b.push(u+A/2),f.push(p),this.renderSeries({realIndex:v,pathFill:z,j:I,i:n,pathFrom:M.pathFrom,pathTo:M.pathTo,strokeWidth:T,elSeries:w,x:u,y:p,series:t,barHeight:M.barHeight?M.barHeight:k,barWidth:M.barWidth?M.barWidth:A,elDataLabelsWrap:C,elGoalsMarkers:L,elBarShadows:P,visibleSeries:this.visibleI,type:\"bar\"})}a.globals.seriesXvalues[v]=b,a.globals.seriesYvalues[v]=f,o.add(w)}return o}},{key:\"renderSeries\",value:function(t){var e=t.realIndex,i=t.pathFill,a=t.lineFill,s=t.j,r=t.i,o=t.groupIndex,n=t.pathFrom,l=t.pathTo,h=t.strokeWidth,c=t.elSeries,d=t.x,g=t.y,u=t.y1,p=t.y2,f=t.series,x=t.barHeight,b=t.barWidth,y=t.barXPosition,w=t.barYPosition,k=t.elDataLabelsWrap,A=t.elGoalsMarkers,S=t.elBarShadows,C=t.visibleSeries,L=t.type,P=this.w,I=new m(this.ctx);a||(a=this.barOptions.distributed?P.globals.stroke.colors[s]:P.globals.stroke.colors[e]),P.config.series[r].data[s]&&P.config.series[r].data[s].strokeColor&&(a=P.config.series[r].data[s].strokeColor),this.isNullValue&&(i=\"none\");var T=s/P.config.chart.animations.animateGradually.delay*(P.config.chart.animations.speed/P.globals.dataPoints)/2.4,M=I.renderPaths({i:r,j:s,realIndex:e,pathFrom:n,pathTo:l,stroke:a,strokeWidth:h,strokeLineCap:P.config.stroke.lineCap,fill:i,animationDelay:T,initialSpeed:P.config.chart.animations.speed,dataChangeSpeed:P.config.chart.animations.dynamicAnimation.speed,className:\"apexcharts-\".concat(L,\"-area\")});M.attr(\"clip-path\",\"url(#gridRectMask\".concat(P.globals.cuid,\")\"));var X=P.config.forecastDataPoints;X.count>0&&s>=P.globals.dataPoints-X.count&&(M.node.setAttribute(\"stroke-dasharray\",X.dashArray),M.node.setAttribute(\"stroke-width\",X.strokeWidth),M.node.setAttribute(\"fill-opacity\",X.fillOpacity)),void 0!==u&&void 0!==p&&(M.attr(\"data-range-y1\",u),M.attr(\"data-range-y2\",p)),new v(this.ctx).setSelectionFilter(M,e,s),c.add(M);var z=new vt(this).handleBarDataLabels({x:d,y:g,y1:u,y2:p,i:r,j:s,series:f,realIndex:e,groupIndex:o,barHeight:x,barWidth:b,barXPosition:y,barYPosition:w,renderedPath:M,visibleSeries:C});return null!==z.dataLabels&&k.add(z.dataLabels),z.totalDataLabels&&k.add(z.totalDataLabels),c.add(k),A&&c.add(A),S&&c.add(S),c}},{key:\"drawBarPaths\",value:function(t){var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.yDivision,h=t.elSeries,c=this.w,d=i.i,g=i.j;if(c.globals.isXNumeric)e=(n=(c.globals.seriesX[d][g]-c.globals.minX)/this.invertedXRatio-a)+a*this.visibleI;else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var u=0,p=0;c.globals.seriesPercent.forEach((function(t,e){t[g]&&u++,e<d&&0===t[g]&&p++})),u>0&&(a=this.seriesLen*a/u),e=n+a*this.visibleI,e-=a*p}else e=n+a*this.visibleI;this.isFunnel&&(r-=(this.barHelpers.getXForValue(this.series[d][g],r)-r)/2),o=this.barHelpers.getXForValue(this.series[d][g],r);var f=this.barHelpers.getBarpaths({barYPosition:e,barHeight:a,x1:r,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,i:d,j:g,w:c});return c.globals.isXNumeric||(n+=l),this.barHelpers.barBackground({j:g,i:d,y1:e-a*this.visibleI,y2:a*this.seriesLen,elSeries:h}),{pathTo:f.pathTo,pathFrom:f.pathFrom,x1:r,x:o,y:n,goalX:this.barHelpers.getGoalValues(\"x\",r,null,d,g),barYPosition:e,barHeight:a}}},{key:\"drawColumnPaths\",value:function(t){var e,i=t.indexes,a=t.x,s=t.y,r=t.xDivision,o=t.barWidth,n=t.zeroH,l=t.strokeWidth,h=t.elSeries,c=this.w,d=i.realIndex,g=i.i,u=i.j,p=i.bc;if(c.globals.isXNumeric){var f=d;c.globals.seriesX[d].length||(f=c.globals.maxValsInArrayIndex),c.globals.seriesX[f][u]&&(a=(c.globals.seriesX[f][u]-c.globals.minX)/this.xRatio-o*this.seriesLen/2),e=a+o*this.visibleI}else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var x=0,b=0;c.globals.seriesPercent.forEach((function(t,e){t[u]&&x++,e<g&&0===t[u]&&b++})),x>0&&(o=this.seriesLen*o/x),e=a+o*this.visibleI,e-=o*b}else e=a+o*this.visibleI;s=this.barHelpers.getYForValue(this.series[g][u],n);var v=this.barHelpers.getColumnPaths({barXPosition:e,barWidth:o,y1:n,y2:s,strokeWidth:l,series:this.series,realIndex:i.realIndex,i:g,j:u,w:c});return c.globals.isXNumeric||(a+=r),this.barHelpers.barBackground({bc:p,j:u,i:g,x1:e-l/2-o*this.visibleI,x2:o*this.seriesLen+l/2,elSeries:h}),{pathTo:v.pathTo,pathFrom:v.pathFrom,x:a,y:s,goalY:this.barHelpers.getGoalValues(\"y\",null,n,g,u),barXPosition:e,barWidth:o}}},{key:\"getPreviousPath\",value:function(t,e){for(var i,a=this.w,s=0;s<a.globals.previousPaths.length;s++){var r=a.globals.previousPaths[s];r.paths&&r.paths.length>0&&parseInt(r.realIndex,10)===parseInt(t,10)&&void 0!==a.globals.previousPaths[s].paths[e]&&(i=a.globals.previousPaths[s].paths[e].d)}return i}}]),t}(),wt=function(t){n(s,yt);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:\"draw\",value:function(t,i){var a=this,s=this.w;this.graphics=new m(this.ctx),this.bar=new yt(this.ctx,this.xyRatios);var r=new y(this.ctx,s);t=r.getLogSeries(t),this.yRatio=r.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t),\"100%\"===s.config.chart.stackType&&(t=s.globals.seriesPercent.slice()),this.series=t,this.barHelpers.initializeStackedPrevVars(this);for(var o=this.graphics.group({class:\"apexcharts-bar-series apexcharts-plot-series\"}),n=0,l=0,h=function(r,h){var c=void 0,d=void 0,g=void 0,u=void 0,p=-1;a.groupCtx=a,s.globals.seriesGroups.forEach((function(t,e){t.indexOf(s.config.series[r].name)>-1&&(p=e)})),-1!==p&&(a.groupCtx=a[s.globals.seriesGroups[p]]);var f=[],b=[],v=s.globals.comboCharts?i[r]:r;a.yRatio.length>1&&(a.yaxisIndex=v),a.isReversed=s.config.yaxis[a.yaxisIndex]&&s.config.yaxis[a.yaxisIndex].reversed;var m=a.graphics.group({class:\"apexcharts-series\",seriesName:x.escapeString(s.globals.seriesNames[v]),rel:r+1,\"data:realIndex\":v});a.ctx.series.addCollapsedClassToSeries(m,v);var y=a.graphics.group({class:\"apexcharts-datalabels\",\"data:realIndex\":v}),w=a.graphics.group({class:\"apexcharts-bar-goals-markers\",style:\"pointer-events: none\"}),k=0,A=0,S=a.initialPositions(n,l,c,d,g,u);l=S.y,k=S.barHeight,d=S.yDivision,u=S.zeroW,n=S.x,A=S.barWidth,c=S.xDivision,g=S.zeroH,a.barHelpers.initializeStackedXYVars(a),1===a.groupCtx.prevY.length&&a.groupCtx.prevY[0].every((function(t){return isNaN(t)}))&&(a.groupCtx.prevY[0]=a.groupCtx.prevY[0].map((function(t){return g})),a.groupCtx.prevYF[0]=a.groupCtx.prevYF[0].map((function(t){return 0})));for(var C=0;C<s.globals.dataPoints;C++){var L=a.barHelpers.getStrokeWidth(r,C,v),P={indexes:{i:r,j:C,realIndex:v,bc:h},strokeWidth:L,x:n,y:l,elSeries:m,groupIndex:p,seriesGroup:s.globals.seriesGroups[p]},I=null;a.isHorizontal?(I=a.drawStackedBarPaths(e(e({},P),{},{zeroW:u,barHeight:k,yDivision:d})),A=a.series[r][C]/a.invertedYRatio):(I=a.drawStackedColumnPaths(e(e({},P),{},{xDivision:c,barWidth:A,zeroH:g})),k=a.series[r][C]/a.yRatio[a.yaxisIndex]);var T=a.barHelpers.drawGoalLine({barXPosition:I.barXPosition,barYPosition:I.barYPosition,goalX:I.goalX,goalY:I.goalY,barHeight:k,barWidth:A});T&&w.add(T),l=I.y,n=I.x,f.push(n),b.push(l);var M=a.barHelpers.getPathFillColor(t,r,C,v);m=a.renderSeries({realIndex:v,pathFill:M,j:C,i:r,groupIndex:p,pathFrom:I.pathFrom,pathTo:I.pathTo,strokeWidth:L,elSeries:m,x:n,y:l,series:t,barHeight:k,barWidth:A,elDataLabelsWrap:y,elGoalsMarkers:w,type:\"bar\",visibleSeries:0})}s.globals.seriesXvalues[v]=f,s.globals.seriesYvalues[v]=b,a.groupCtx.prevY.push(a.groupCtx.yArrj),a.groupCtx.prevYF.push(a.groupCtx.yArrjF),a.groupCtx.prevYVal.push(a.groupCtx.yArrjVal),a.groupCtx.prevX.push(a.groupCtx.xArrj),a.groupCtx.prevXF.push(a.groupCtx.xArrjF),a.groupCtx.prevXVal.push(a.groupCtx.xArrjVal),o.add(m)},c=0,d=0;c<t.length;c++,d++)h(c,d);return o}},{key:\"initialPositions\",value:function(t,e,i,a,s,r){var o,n,l,h,c=this.w;return this.isHorizontal?(l=(l=a=c.globals.gridHeight/c.globals.dataPoints)*parseInt(c.config.plotOptions.bar.barHeight,10)/100,-1===String(c.config.plotOptions.bar.barHeight).indexOf(\"%\")&&(l=parseInt(c.config.plotOptions.bar.barHeight,10)),r=this.baseLineInvertedY+c.globals.padHorizontal+(this.isReversed?c.globals.gridWidth:0)-(this.isReversed?2*this.baseLineInvertedY:0),e=(a-l)/2):(h=i=c.globals.gridWidth/c.globals.dataPoints,h=c.globals.isXNumeric&&c.globals.dataPoints>1?(i=c.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:h*parseInt(c.config.plotOptions.bar.columnWidth,10)/100,-1===String(c.config.plotOptions.bar.columnWidth).indexOf(\"%\")&&(h=parseInt(c.config.plotOptions.bar.columnWidth,10)),s=c.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?c.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),t=c.globals.padHorizontal+(i-h)/2),{x:t,y:e,yDivision:a,xDivision:i,barHeight:null!==(o=c.globals.seriesGroups)&&void 0!==o&&o.length?l/c.globals.seriesGroups.length:l,barWidth:null!==(n=c.globals.seriesGroups)&&void 0!==n&&n.length?h/c.globals.seriesGroups.length:h,zeroH:s,zeroW:r}}},{key:\"drawStackedBarPaths\",value:function(t){for(var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.groupIndex,h=t.seriesGroup,c=t.yDivision,d=t.elSeries,g=this.w,u=n+(-1!==l?l*a:0),p=i.i,f=i.j,x=0,b=0;b<this.groupCtx.prevXF.length;b++)x+=this.groupCtx.prevXF[b][f];var v=p;if(h&&(v=h.indexOf(g.config.series[p].name)),v>0){var m=r;this.groupCtx.prevXVal[v-1][f]<0?m=this.series[p][f]>=0?this.groupCtx.prevX[v-1][f]+x-2*(this.isReversed?x:0):this.groupCtx.prevX[v-1][f]:this.groupCtx.prevXVal[v-1][f]>=0&&(m=this.series[p][f]>=0?this.groupCtx.prevX[v-1][f]:this.groupCtx.prevX[v-1][f]-x+2*(this.isReversed?x:0)),e=m}else e=r;o=null===this.series[p][f]?e:e+this.series[p][f]/this.invertedYRatio-2*(this.isReversed?this.series[p][f]/this.invertedYRatio:0);var y=this.barHelpers.getBarpaths({barYPosition:u,barHeight:a,x1:e,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,seriesGroup:h,i:p,j:f,w:g});return this.barHelpers.barBackground({j:f,i:p,y1:u,y2:a,elSeries:d}),n+=c,{pathTo:y.pathTo,pathFrom:y.pathFrom,goalX:this.barHelpers.getGoalValues(\"x\",r,null,p,f),barYPosition:u,x:o,y:n}}},{key:\"drawStackedColumnPaths\",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH,n=t.groupIndex,l=t.seriesGroup,h=t.elSeries,c=this.w,d=e.i,g=e.j,u=e.bc;if(c.globals.isXNumeric){var p=c.globals.seriesX[d][g];p||(p=0),i=(p-c.globals.minX)/this.xRatio-r/2,c.globals.seriesGroups.length&&(i=(p-c.globals.minX)/this.xRatio-r/2*c.globals.seriesGroups.length)}for(var f,x=i+(-1!==n?n*r:0),b=0,v=0;v<this.groupCtx.prevYF.length;v++)b+=isNaN(this.groupCtx.prevYF[v][g])?0:this.groupCtx.prevYF[v][g];var m=d;if(l&&(m=l.indexOf(c.config.series[d].name)),m>0&&!c.globals.isXNumeric||m>0&&c.globals.isXNumeric&&c.globals.seriesX[d-1][g]===c.globals.seriesX[d][g]){var y,w,k,A=Math.min(this.yRatio.length+1,d+1);if(void 0!==this.groupCtx.prevY[m-1]&&this.groupCtx.prevY[m-1].length)for(var S=1;S<A;S++){var C;if(!isNaN(null===(C=this.groupCtx.prevY[m-S])||void 0===C?void 0:C[g])){k=this.groupCtx.prevY[m-S][g];break}}for(var L=1;L<A;L++){var P,I;if((null===(P=this.groupCtx.prevYVal[m-L])||void 0===P?void 0:P[g])<0){w=this.series[d][g]>=0?k-b+2*(this.isReversed?b:0):k;break}if((null===(I=this.groupCtx.prevYVal[m-L])||void 0===I?void 0:I[g])>=0){w=this.series[d][g]>=0?k:k+b-2*(this.isReversed?b:0);break}}void 0===w&&(w=c.globals.gridHeight),f=null!==(y=this.groupCtx.prevYF[0])&&void 0!==y&&y.every((function(t){return 0===t}))&&this.groupCtx.prevYF.slice(1,m).every((function(t){return t.every((function(t){return isNaN(t)}))}))?o:w}else f=o;a=this.series[d][g]?f-this.series[d][g]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[d][g]/this.yRatio[this.yaxisIndex]:0):f;var T=this.barHelpers.getColumnPaths({barXPosition:x,barWidth:r,y1:f,y2:a,yRatio:this.yRatio[this.yaxisIndex],strokeWidth:this.strokeWidth,series:this.series,seriesGroup:l,realIndex:e.realIndex,i:d,j:g,w:c});return this.barHelpers.barBackground({bc:u,j:g,i:d,x1:x,x2:r,elSeries:h}),i+=s,{pathTo:T.pathTo,pathFrom:T.pathFrom,goalY:this.barHelpers.getGoalValues(\"y\",null,o,d,g),barXPosition:x,x:c.globals.isXNumeric?i-s:i,y:a}}}]),s}(),kt=function(t){n(s,yt);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:\"draw\",value:function(t,i,a){var s=this,r=this.w,o=new m(this.ctx),n=r.globals.comboCharts?i:r.config.chart.type,l=new R(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=r.config.plotOptions.bar.horizontal;var h=new y(this.ctx,r);t=h.getLogSeries(t),this.series=t,this.yRatio=h.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);for(var c=o.group({class:\"apexcharts-\".concat(n,\"-series apexcharts-plot-series\")}),d=function(i){s.isBoxPlot=\"boxPlot\"===r.config.chart.type||\"boxPlot\"===r.config.series[i].type;var n,h,d,g,u=void 0,p=void 0,f=[],b=[],v=r.globals.comboCharts?a[i]:i,m=o.group({class:\"apexcharts-series\",seriesName:x.escapeString(r.globals.seriesNames[v]),rel:i+1,\"data:realIndex\":v});s.ctx.series.addCollapsedClassToSeries(m,v),t[i].length>0&&(s.visibleI=s.visibleI+1);var y,w;s.yRatio.length>1&&(s.yaxisIndex=v);var k=s.barHelpers.initialPositions();p=k.y,y=k.barHeight,h=k.yDivision,g=k.zeroW,u=k.x,w=k.barWidth,n=k.xDivision,d=k.zeroH,b.push(u+w/2);for(var A=o.group({class:\"apexcharts-datalabels\",\"data:realIndex\":v}),S=function(a){var o=s.barHelpers.getStrokeWidth(i,a,v),c=null,x={indexes:{i:i,j:a,realIndex:v},x:u,y:p,strokeWidth:o,elSeries:m};c=s.isHorizontal?s.drawHorizontalBoxPaths(e(e({},x),{},{yDivision:h,barHeight:y,zeroW:g})):s.drawVerticalBoxPaths(e(e({},x),{},{xDivision:n,barWidth:w,zeroH:d})),p=c.y,u=c.x,a>0&&b.push(u+w/2),f.push(p),c.pathTo.forEach((function(e,n){var h=!s.isBoxPlot&&s.candlestickOptions.wick.useFillColor?c.color[n]:r.globals.stroke.colors[i],d=l.fillPath({seriesNumber:v,dataPointIndex:a,color:c.color[n],value:t[i][a]});s.renderSeries({realIndex:v,pathFill:d,lineFill:h,j:a,i:i,pathFrom:c.pathFrom,pathTo:e,strokeWidth:o,elSeries:m,x:u,y:p,series:t,barHeight:y,barWidth:w,elDataLabelsWrap:A,visibleSeries:s.visibleI,type:r.config.chart.type})}))},C=0;C<r.globals.dataPoints;C++)S(C);r.globals.seriesXvalues[v]=b,r.globals.seriesYvalues[v]=f,c.add(m)},g=0;g<t.length;g++)d(g);return c}},{key:\"drawVerticalBoxPaths\",value:function(t){var e=t.indexes,i=t.x;t.y;var a=t.xDivision,s=t.barWidth,r=t.zeroH,o=t.strokeWidth,n=this.w,l=new m(this.ctx),h=e.i,c=e.j,d=!0,g=n.config.plotOptions.candlestick.colors.upward,u=n.config.plotOptions.candlestick.colors.downward,p=\"\";this.isBoxPlot&&(p=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var f=this.yRatio[this.yaxisIndex],x=e.realIndex,b=this.getOHLCValue(x,c),v=r,y=r;b.o>b.c&&(d=!1);var w=Math.min(b.o,b.c),k=Math.max(b.o,b.c),A=b.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[x][c]-n.globals.minX)/this.xRatio-s/2);var S=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(w=r,k=r):(w=r-w/f,k=r-k/f,v=r-b.h/f,y=r-b.l/f,A=r-b.m/f);var C=l.move(S,r),L=l.move(S+s/2,w);return n.globals.previousPaths.length>0&&(L=this.getPreviousPath(x,c,!0)),C=this.isBoxPlot?[l.move(S,w)+l.line(S+s/2,w)+l.line(S+s/2,v)+l.line(S+s/4,v)+l.line(S+s-s/4,v)+l.line(S+s/2,v)+l.line(S+s/2,w)+l.line(S+s,w)+l.line(S+s,A)+l.line(S,A)+l.line(S,w+o/2),l.move(S,A)+l.line(S+s,A)+l.line(S+s,k)+l.line(S+s/2,k)+l.line(S+s/2,y)+l.line(S+s-s/4,y)+l.line(S+s/4,y)+l.line(S+s/2,y)+l.line(S+s/2,k)+l.line(S,k)+l.line(S,A)+\"z\"]:[l.move(S,k)+l.line(S+s/2,k)+l.line(S+s/2,v)+l.line(S+s/2,k)+l.line(S+s,k)+l.line(S+s,w)+l.line(S+s/2,w)+l.line(S+s/2,y)+l.line(S+s/2,w)+l.line(S,w)+l.line(S,k-o/2)],L+=l.move(S,w),n.globals.isXNumeric||(i+=a),{pathTo:C,pathFrom:L,x:i,y:k,barXPosition:S,color:this.isBoxPlot?p:d?[g]:[u]}}},{key:\"drawHorizontalBoxPaths\",value:function(t){var e=t.indexes;t.x;var i=t.y,a=t.yDivision,s=t.barHeight,r=t.zeroW,o=t.strokeWidth,n=this.w,l=new m(this.ctx),h=e.i,c=e.j,d=this.boxOptions.colors.lower;this.isBoxPlot&&(d=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var g=this.invertedYRatio,u=e.realIndex,p=this.getOHLCValue(u,c),f=r,x=r,b=Math.min(p.o,p.c),v=Math.max(p.o,p.c),y=p.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[u][c]-n.globals.minX)/this.invertedXRatio-s/2);var w=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(b=r,v=r):(b=r+b/g,v=r+v/g,f=r+p.h/g,x=r+p.l/g,y=r+p.m/g);var k=l.move(r,w),A=l.move(b,w+s/2);return n.globals.previousPaths.length>0&&(A=this.getPreviousPath(u,c,!0)),k=[l.move(b,w)+l.line(b,w+s/2)+l.line(f,w+s/2)+l.line(f,w+s/2-s/4)+l.line(f,w+s/2+s/4)+l.line(f,w+s/2)+l.line(b,w+s/2)+l.line(b,w+s)+l.line(y,w+s)+l.line(y,w)+l.line(b+o/2,w),l.move(y,w)+l.line(y,w+s)+l.line(v,w+s)+l.line(v,w+s/2)+l.line(x,w+s/2)+l.line(x,w+s-s/4)+l.line(x,w+s/4)+l.line(x,w+s/2)+l.line(v,w+s/2)+l.line(v,w)+l.line(y,w)+\"z\"],A+=l.move(b,w),n.globals.isXNumeric||(i+=a),{pathTo:k,pathFrom:A,x:v,y:i,barYPosition:w,color:d}}},{key:\"getOHLCValue\",value:function(t,e){var i=this.w;return{o:this.isBoxPlot?i.globals.seriesCandleH[t][e]:i.globals.seriesCandleO[t][e],h:this.isBoxPlot?i.globals.seriesCandleO[t][e]:i.globals.seriesCandleH[t][e],m:i.globals.seriesCandleM[t][e],l:this.isBoxPlot?i.globals.seriesCandleC[t][e]:i.globals.seriesCandleL[t][e],c:this.isBoxPlot?i.globals.seriesCandleL[t][e]:i.globals.seriesCandleC[t][e]}}}]),s}(),At=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"checkColorRange\",value:function(){var t=this.w,e=!1,i=t.config.plotOptions[t.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map((function(t,i){t.from<=0&&(e=!0)})),e}},{key:\"getShadeColor\",value:function(t,e,i,a){var s=this.w,r=1,o=s.config.plotOptions[t].shadeIntensity,n=this.determineColor(t,e,i);s.globals.hasNegs||a?r=s.config.plotOptions[t].reverseNegativeShade?n.percent<0?n.percent/100*(1.25*o):(1-n.percent/100)*(1.25*o):n.percent<=0?1-(1+n.percent/100)*o:(1-n.percent/100)*o:(r=1-n.percent/100,\"treemap\"===t&&(r=(1-n.percent/100)*(1.25*o)));var l=n.color,h=new x;return s.config.plotOptions[t].enableShades&&(l=\"dark\"===this.w.config.theme.mode?x.hexToRgba(h.shadeColor(-1*r,n.color),s.config.fill.opacity):x.hexToRgba(h.shadeColor(r,n.color),s.config.fill.opacity)),{color:l,colorProps:n}}},{key:\"determineColor\",value:function(t,e,i){var a=this.w,s=a.globals.series[e][i],r=a.config.plotOptions[t],o=r.colorScale.inverse?i:e;r.distributed&&\"treemap\"===a.config.chart.type&&(o=i);var n=a.globals.colors[o],l=null,h=Math.min.apply(Math,u(a.globals.series[e])),c=Math.max.apply(Math,u(a.globals.series[e]));r.distributed||\"heatmap\"!==t||(h=a.globals.minY,c=a.globals.maxY),void 0!==r.colorScale.min&&(h=r.colorScale.min<a.globals.minY?r.colorScale.min:a.globals.minY,c=r.colorScale.max>a.globals.maxY?r.colorScale.max:a.globals.maxY);var d=Math.abs(c)+Math.abs(h),g=100*s/(0===d?d-1e-6:d);r.colorScale.ranges.length>0&&r.colorScale.ranges.map((function(t,e){if(s>=t.from&&s<=t.to){n=t.color,l=t.foreColor?t.foreColor:null,h=t.from,c=t.to;var i=Math.abs(c)+Math.abs(h);g=100*s/(0===i?i-1e-6:i)}}));return{color:n,foreColor:l,percent:g}}},{key:\"calculateDataLabels\",value:function(t){var e=t.text,i=t.x,a=t.y,s=t.i,r=t.j,o=t.colorProps,n=t.fontSize,l=this.w.config.dataLabels,h=new m(this.ctx),c=new O(this.ctx),d=null;if(l.enabled){d=h.group({class:\"apexcharts-data-labels\"});var g=l.offsetX,u=l.offsetY,p=i+g,f=a+parseFloat(l.style.fontSize)/3+u;c.plotDataLabelsText({x:p,y:f,text:e,i:s,j:r,color:o.foreColor,parent:d,fontSize:n,dataLabelsConfig:l})}return d}},{key:\"addListeners\",value:function(t){var e=new m(this.ctx);t.node.addEventListener(\"mouseenter\",e.pathMouseEnter.bind(this,t)),t.node.addEventListener(\"mouseleave\",e.pathMouseLeave.bind(this,t)),t.node.addEventListener(\"mousedown\",e.pathMouseDown.bind(this,t))}}]),t}(),St=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.xRatio=i.xRatio,this.yRatio=i.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new At(e),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return r(t,[{key:\"draw\",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:\"apexcharts-heatmap\"});a.attr(\"clip-path\",\"url(#gridRectMask\".concat(e.globals.cuid,\")\"));var s=e.globals.gridWidth/e.globals.dataPoints,r=e.globals.gridHeight/e.globals.series.length,o=0,n=!1;this.negRange=this.helpers.checkColorRange();var l=t.slice();e.config.yaxis[0].reversed&&(n=!0,l.reverse());for(var h=n?0:l.length-1;n?h<l.length:h>=0;n?h++:h--){var c=i.group({class:\"apexcharts-series apexcharts-heatmap-series\",seriesName:x.escapeString(e.globals.seriesNames[h]),rel:h+1,\"data:realIndex\":h});if(this.ctx.series.addCollapsedClassToSeries(c,h),e.config.chart.dropShadow.enabled){var d=e.config.chart.dropShadow;new v(this.ctx).dropShadow(c,d,h)}for(var g=0,u=e.config.plotOptions.heatmap.shadeIntensity,p=0;p<l[h].length;p++){var f=this.helpers.getShadeColor(e.config.chart.type,h,p,this.negRange),b=f.color,y=f.colorProps;if(\"image\"===e.config.fill.type)b=new R(this.ctx).fillPath({seriesNumber:h,dataPointIndex:p,opacity:e.globals.hasNegs?y.percent<0?1-(1+y.percent/100):u+y.percent/100:y.percent/100,patternID:x.randomId(),width:e.config.fill.image.width?e.config.fill.image.width:s,height:e.config.fill.image.height?e.config.fill.image.height:r});var w=this.rectRadius,k=i.drawRect(g,o,s,r,w);if(k.attr({cx:g,cy:o}),k.node.classList.add(\"apexcharts-heatmap-rect\"),c.add(k),k.attr({fill:b,i:h,index:h,j:p,val:l[h][p],\"stroke-width\":this.strokeWidth,stroke:e.config.plotOptions.heatmap.useFillColorAsStroke?b:e.globals.stroke.colors[0],color:b}),this.helpers.addListeners(k),e.config.chart.animations.enabled&&!e.globals.dataChanged){var A=1;e.globals.resized||(A=e.config.chart.animations.speed),this.animateHeatMap(k,g,o,s,r,A)}if(e.globals.dataChanged){var S=1;if(this.dynamicAnim.enabled&&e.globals.shouldAnimate){S=this.dynamicAnim.speed;var C=e.globals.previousPaths[h]&&e.globals.previousPaths[h][p]&&e.globals.previousPaths[h][p].color;C||(C=\"rgba(255, 255, 255, 0)\"),this.animateHeatColor(k,x.isColorHex(C)?C:x.rgb2hex(C),x.isColorHex(b)?b:x.rgb2hex(b),S)}}var L=(0,e.config.dataLabels.formatter)(e.globals.series[h][p],{value:e.globals.series[h][p],seriesIndex:h,dataPointIndex:p,w:e}),P=this.helpers.calculateDataLabels({text:L,x:g+s/2,y:o+r/2,i:h,j:p,colorProps:y,series:l});null!==P&&c.add(P),g+=s}o+=r,a.add(c)}var I=e.globals.yAxisScale[0].result.slice();e.config.yaxis[0].reversed?I.unshift(\"\"):I.push(\"\"),e.globals.yAxisScale[0].result=I;var T=e.globals.gridHeight/e.globals.series.length;return e.config.yaxis[0].labels.offsetY=-T/2,a}},{key:\"animateHeatMap\",value:function(t,e,i,a,s,r){var o=new b(this.ctx);o.animateRect(t,{x:e+a/2,y:i+s/2,width:0,height:0},{x:e,y:i,width:a,height:s},r,(function(){o.animationCompleted(t)}))}},{key:\"animateHeatColor\",value:function(t,e,i,a){t.attr({fill:e}).animate(a).attr({fill:i})}}]),t}(),Ct=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"drawYAxisTexts\",value:function(t,e,i,a){var s=this.w,r=s.config.yaxis[0],o=s.globals.yLabelFormatters[0];return new m(this.ctx).drawText({x:t+r.labels.offsetX,y:e+r.labels.offsetY,text:o(a,i),textAnchor:\"middle\",fontSize:r.labels.style.fontSize,fontFamily:r.labels.style.fontFamily,foreColor:Array.isArray(r.labels.style.colors)?r.labels.style.colors[i]:r.labels.style.colors})}}]),t}(),Lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animBeginArr=[0],this.animDur=0,this.donutDataLabels=this.w.config.plotOptions.pie.donut.labels,this.lineColorArr=void 0!==i.globals.stroke.colors?i.globals.stroke.colors:i.globals.colors,this.defaultSize=Math.min(i.globals.gridWidth,i.globals.gridHeight),this.centerY=this.defaultSize/2,this.centerX=i.globals.gridWidth/2,\"radialBar\"===i.config.chart.type?this.fullAngle=360:this.fullAngle=Math.abs(i.config.plotOptions.pie.endAngle-i.config.plotOptions.pie.startAngle),this.initialAngle=i.config.plotOptions.pie.startAngle%this.fullAngle,i.globals.radialSize=this.defaultSize/2.05-i.config.stroke.width-(i.config.chart.sparkline.enabled?0:i.config.chart.dropShadow.blur),this.donutSize=i.globals.radialSize*parseInt(i.config.plotOptions.pie.donut.size,10)/100,this.maxY=0,this.sliceLabels=[],this.sliceSizes=[],this.prevSectorAngleArr=[]}return r(t,[{key:\"draw\",value:function(t){var e=this,i=this.w,a=new m(this.ctx);if(this.ret=a.group({class:\"apexcharts-pie\"}),i.globals.noData)return this.ret;for(var s=0,r=0;r<t.length;r++)s+=x.negToZero(t[r]);var o=[],n=a.group();0===s&&(s=1e-5),t.forEach((function(t){e.maxY=Math.max(e.maxY,t)})),i.config.yaxis[0].max&&(this.maxY=i.config.yaxis[0].max),\"back\"===i.config.grid.position&&\"polarArea\"===this.chartType&&this.drawPolarElements(this.ret);for(var l=0;l<t.length;l++){var h=this.fullAngle*x.negToZero(t[l])/s;o.push(h),\"polarArea\"===this.chartType?(o[l]=this.fullAngle/t.length,this.sliceSizes.push(i.globals.radialSize*t[l]/this.maxY)):this.sliceSizes.push(i.globals.radialSize)}if(i.globals.dataChanged){for(var c,d=0,g=0;g<i.globals.previousPaths.length;g++)d+=x.negToZero(i.globals.previousPaths[g]);for(var u=0;u<i.globals.previousPaths.length;u++)c=this.fullAngle*x.negToZero(i.globals.previousPaths[u])/d,this.prevSectorAngleArr.push(c)}this.donutSize<0&&(this.donutSize=0);var p=i.config.plotOptions.pie.customScale,f=i.globals.gridWidth/2,b=i.globals.gridHeight/2,v=f-i.globals.gridWidth/2*p,y=b-i.globals.gridHeight/2*p;if(\"donut\"===this.chartType){var w=a.drawCircle(this.donutSize);w.attr({cx:this.centerX,cy:this.centerY,fill:i.config.plotOptions.pie.donut.background?i.config.plotOptions.pie.donut.background:\"transparent\"}),n.add(w)}var k=this.drawArcs(o,t);if(this.sliceLabels.forEach((function(t){k.add(t)})),n.attr({transform:\"translate(\".concat(v,\", \").concat(y,\") scale(\").concat(p,\")\")}),n.add(k),this.ret.add(n),this.donutDataLabels.show){var A=this.renderInnerDataLabels(this.donutDataLabels,{hollowSize:this.donutSize,centerX:this.centerX,centerY:this.centerY,opacity:this.donutDataLabels.show,translateX:v,translateY:y});this.ret.add(A)}return\"front\"===i.config.grid.position&&\"polarArea\"===this.chartType&&this.drawPolarElements(this.ret),this.ret}},{key:\"drawArcs\",value:function(t,e){var i=this.w,a=new v(this.ctx),s=new m(this.ctx),r=new R(this.ctx),o=s.group({class:\"apexcharts-slices\"}),n=this.initialAngle,l=this.initialAngle,h=this.initialAngle,c=this.initialAngle;this.strokeWidth=i.config.stroke.show?i.config.stroke.width:0;for(var d=0;d<t.length;d++){var g=s.group({class:\"apexcharts-series apexcharts-pie-series\",seriesName:x.escapeString(i.globals.seriesNames[d]),rel:d+1,\"data:realIndex\":d});o.add(g),l=c,h=(n=h)+t[d],c=l+this.prevSectorAngleArr[d];var u=h<n?this.fullAngle+h-n:h-n,p=r.fillPath({seriesNumber:d,size:this.sliceSizes[d],value:e[d]}),f=this.getChangedPath(l,c),b=s.drawPath({d:f,stroke:Array.isArray(this.lineColorArr)?this.lineColorArr[d]:this.lineColorArr,strokeWidth:0,fill:p,fillOpacity:i.config.fill.opacity,classes:\"apexcharts-pie-area apexcharts-\".concat(this.chartType.toLowerCase(),\"-slice-\").concat(d)});if(b.attr({index:0,j:d}),a.setSelectionFilter(b,0,d),i.config.chart.dropShadow.enabled){var y=i.config.chart.dropShadow;a.dropShadow(b,y,d)}this.addListeners(b,this.donutDataLabels),m.setAttrs(b.node,{\"data:angle\":u,\"data:startAngle\":n,\"data:strokeWidth\":this.strokeWidth,\"data:value\":e[d]});var w={x:0,y:0};\"pie\"===this.chartType||\"polarArea\"===this.chartType?w=x.polarToCartesian(this.centerX,this.centerY,i.globals.radialSize/1.25+i.config.plotOptions.pie.dataLabels.offset,(n+u/2)%this.fullAngle):\"donut\"===this.chartType&&(w=x.polarToCartesian(this.centerX,this.centerY,(i.globals.radialSize+this.donutSize)/2+i.config.plotOptions.pie.dataLabels.offset,(n+u/2)%this.fullAngle)),g.add(b);var k=0;if(!this.initialAnim||i.globals.resized||i.globals.dataChanged?this.animBeginArr.push(0):(0===(k=u/this.fullAngle*i.config.chart.animations.speed)&&(k=1),this.animDur=k+this.animDur,this.animBeginArr.push(this.animDur)),this.dynamicAnim&&i.globals.dataChanged?this.animatePaths(b,{size:this.sliceSizes[d],endAngle:h,startAngle:n,prevStartAngle:l,prevEndAngle:c,animateStartingPos:!0,i:d,animBeginArr:this.animBeginArr,shouldSetPrevPaths:!0,dur:i.config.chart.animations.dynamicAnimation.speed}):this.animatePaths(b,{size:this.sliceSizes[d],endAngle:h,startAngle:n,i:d,totalItems:t.length-1,animBeginArr:this.animBeginArr,dur:k}),i.config.plotOptions.pie.expandOnClick&&\"polarArea\"!==this.chartType&&b.click(this.pieClicked.bind(this,d)),void 0!==i.globals.selectedDataPoints[0]&&i.globals.selectedDataPoints[0].indexOf(d)>-1&&this.pieClicked(d),i.config.dataLabels.enabled){var A=w.x,S=w.y,C=100*u/this.fullAngle+\"%\";if(0!==u&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabel<t[d]){var L=i.config.dataLabels.formatter;void 0!==L&&(C=L(i.globals.seriesPercent[d][0],{seriesIndex:d,w:i}));var P=i.globals.dataLabels.style.colors[d],I=s.group({class:\"apexcharts-datalabels\"}),T=s.drawText({x:A,y:S,text:C,textAnchor:\"middle\",fontSize:i.config.dataLabels.style.fontSize,fontFamily:i.config.dataLabels.style.fontFamily,fontWeight:i.config.dataLabels.style.fontWeight,foreColor:P});if(I.add(T),i.config.dataLabels.dropShadow.enabled){var M=i.config.dataLabels.dropShadow;a.dropShadow(T,M)}T.node.classList.add(\"apexcharts-pie-label\"),i.config.chart.animations.animate&&!1===i.globals.resized&&(T.node.classList.add(\"apexcharts-pie-label-delay\"),T.node.style.animationDelay=i.config.chart.animations.speed/940+\"s\"),this.sliceLabels.push(I)}}}return o}},{key:\"addListeners\",value:function(t,e){var i=new m(this.ctx);t.node.addEventListener(\"mouseenter\",i.pathMouseEnter.bind(this,t)),t.node.addEventListener(\"mouseleave\",i.pathMouseLeave.bind(this,t)),t.node.addEventListener(\"mouseleave\",this.revertDataLabelsInner.bind(this,t.node,e)),t.node.addEventListener(\"mousedown\",i.pathMouseDown.bind(this,t)),this.donutDataLabels.total.showAlways||(t.node.addEventListener(\"mouseenter\",this.printDataLabelsInner.bind(this,t.node,e)),t.node.addEventListener(\"mousedown\",this.printDataLabelsInner.bind(this,t.node,e)))}},{key:\"animatePaths\",value:function(t,e){var i=this.w,a=e.endAngle<e.startAngle?this.fullAngle+e.endAngle-e.startAngle:e.endAngle-e.startAngle,s=a,r=e.startAngle,o=e.startAngle;void 0!==e.prevStartAngle&&void 0!==e.prevEndAngle&&(r=e.prevEndAngle,s=e.prevEndAngle<e.prevStartAngle?this.fullAngle+e.prevEndAngle-e.prevStartAngle:e.prevEndAngle-e.prevStartAngle),e.i===i.config.series.length-1&&(a+o>this.fullAngle?e.endAngle=e.endAngle-(a+o):a+o<this.fullAngle&&(e.endAngle=e.endAngle+(this.fullAngle-(a+o)))),a===this.fullAngle&&(a=this.fullAngle-.01),this.animateArc(t,r,o,a,s,e)}},{key:\"animateArc\",value:function(t,e,i,a,s,r){var o,n=this,l=this.w,h=new b(this.ctx),c=r.size;(isNaN(e)||isNaN(s))&&(e=i,s=a,r.dur=0);var d=a,g=i,u=e<i?this.fullAngle+e-i:e-i;l.globals.dataChanged&&r.shouldSetPrevPaths&&r.prevEndAngle&&(o=n.getPiePath({me:n,startAngle:r.prevStartAngle,angle:r.prevEndAngle<r.prevStartAngle?this.fullAngle+r.prevEndAngle-r.prevStartAngle:r.prevEndAngle-r.prevStartAngle,size:c}),t.attr({d:o})),0!==r.dur?t.animate(r.dur,l.globals.easing,r.animBeginArr[r.i]).afterAll((function(){\"pie\"!==n.chartType&&\"donut\"!==n.chartType&&\"polarArea\"!==n.chartType||this.animate(l.config.chart.animations.dynamicAnimation.speed).attr({\"stroke-width\":n.strokeWidth}),r.i===l.config.series.length-1&&h.animationCompleted(t)})).during((function(l){d=u+(a-u)*l,r.animateStartingPos&&(d=s+(a-s)*l,g=e-s+(i-(e-s))*l),o=n.getPiePath({me:n,startAngle:g,angle:d,size:c}),t.node.setAttribute(\"data:pathOrig\",o),t.attr({d:o})})):(o=n.getPiePath({me:n,startAngle:g,angle:a,size:c}),r.isTrack||(l.globals.animationEnded=!0),t.node.setAttribute(\"data:pathOrig\",o),t.attr({d:o,\"stroke-width\":n.strokeWidth}))}},{key:\"pieClicked\",value:function(t){var e,i=this.w,a=this,s=a.sliceSizes[t]+(i.config.plotOptions.pie.expandOnClick?4:0),r=i.globals.dom.Paper.select(\".apexcharts-\".concat(a.chartType.toLowerCase(),\"-slice-\").concat(t)).members[0];if(\"true\"!==r.attr(\"data:pieClicked\")){var o=i.globals.dom.baseEl.getElementsByClassName(\"apexcharts-pie-area\");Array.prototype.forEach.call(o,(function(t){t.setAttribute(\"data:pieClicked\",\"false\");var e=t.getAttribute(\"data:pathOrig\");e&&t.setAttribute(\"d\",e)})),r.attr(\"data:pieClicked\",\"true\");var n=parseInt(r.attr(\"data:startAngle\"),10),l=parseInt(r.attr(\"data:angle\"),10);e=a.getPiePath({me:a,startAngle:n,angle:l,size:s}),360!==l&&r.plot(e)}else{r.attr({\"data:pieClicked\":\"false\"}),this.revertDataLabelsInner(r.node,this.donutDataLabels);var h=r.attr(\"data:pathOrig\");r.attr({d:h})}}},{key:\"getChangedPath\",value:function(t,e){var i=\"\";return this.dynamicAnim&&this.w.globals.dataChanged&&(i=this.getPiePath({me:this,startAngle:t,angle:e-t,size:this.size})),i}},{key:\"getPiePath\",value:function(t){var e=t.me,i=t.startAngle,a=t.angle,s=t.size,r=i,o=Math.PI*(r-90)/180,n=a+i;Math.ceil(n)>=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(n=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(n)>this.fullAngle&&(n-=this.fullAngle);var l=Math.PI*(n-90)/180,h=e.centerX+s*Math.cos(o),c=e.centerY+s*Math.sin(o),d=e.centerX+s*Math.cos(l),g=e.centerY+s*Math.sin(l),u=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,n),p=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,r),f=a>180?1:0,b=[\"M\",h,c,\"A\",s,s,0,f,1,d,g];return\"donut\"===e.chartType?[].concat(b,[\"L\",u.x,u.y,\"A\",e.donutSize,e.donutSize,0,f,0,p.x,p.y,\"L\",h,c,\"z\"]).join(\" \"):\"pie\"===e.chartType||\"polarArea\"===e.chartType?[].concat(b,[\"L\",e.centerX,e.centerY,\"L\",h,c]).join(\" \"):[].concat(b).join(\" \")}},{key:\"drawPolarElements\",value:function(t){var e=this.w,i=new _(this.ctx),a=new m(this.ctx),s=new Ct(this.ctx),r=a.group(),o=a.group(),n=i.niceScale(0,Math.ceil(this.maxY),e.config.yaxis[0].tickAmount,0,!0),l=n.result.reverse(),h=n.result.length;this.maxY=n.niceMax;for(var c=e.globals.radialSize,d=c/(h-1),g=0;g<h-1;g++){var u=a.drawCircle(c);if(u.attr({cx:this.centerX,cy:this.centerY,fill:\"none\",\"stroke-width\":e.config.plotOptions.polarArea.rings.strokeWidth,stroke:e.config.plotOptions.polarArea.rings.strokeColor}),e.config.yaxis[0].show){var p=s.drawYAxisTexts(this.centerX,this.centerY-c+parseInt(e.config.yaxis[0].labels.style.fontSize,10)/2,g,l[g]);o.add(p)}r.add(u),c-=d}this.drawSpokes(t),t.add(r),t.add(o)}},{key:\"renderInnerDataLabels\",value:function(t,e){var i=this.w,a=new m(this.ctx),s=a.group({class:\"apexcharts-datalabels-group\",transform:\"translate(\".concat(e.translateX?e.translateX:0,\", \").concat(e.translateY?e.translateY:0,\") scale(\").concat(i.config.plotOptions.pie.customScale,\")\")}),r=t.total.show;s.node.style.opacity=e.opacity;var o,n,l=e.centerX,h=e.centerY;o=void 0===t.name.color?i.globals.colors[0]:t.name.color;var c=t.name.fontSize,d=t.name.fontFamily,g=t.name.fontWeight;n=void 0===t.value.color?i.config.chart.foreColor:t.value.color;var u=t.value.formatter,p=\"\",f=\"\";if(r?(o=t.total.color,c=t.total.fontSize,d=t.total.fontFamily,g=t.total.fontWeight,f=t.total.label,p=t.total.formatter(i)):1===i.globals.series.length&&(p=u(i.globals.series[0],i),f=i.globals.seriesNames[0]),f&&(f=t.name.formatter(f,t.total.show,i)),t.name.show){var x=a.drawText({x:l,y:h+parseFloat(t.name.offsetY),text:f,textAnchor:\"middle\",foreColor:o,fontSize:c,fontWeight:g,fontFamily:d});x.node.classList.add(\"apexcharts-datalabel-label\"),s.add(x)}if(t.value.show){var b=t.name.show?parseFloat(t.value.offsetY)+16:t.value.offsetY,v=a.drawText({x:l,y:h+b,text:p,textAnchor:\"middle\",foreColor:n,fontWeight:t.value.fontWeight,fontSize:t.value.fontSize,fontFamily:t.value.fontFamily});v.node.classList.add(\"apexcharts-datalabel-value\"),s.add(v)}return s}},{key:\"printInnerLabels\",value:function(t,e,i,a){var s,r=this.w;a?s=void 0===t.name.color?r.globals.colors[parseInt(a.parentNode.getAttribute(\"rel\"),10)-1]:t.name.color:r.globals.series.length>1&&t.total.show&&(s=t.total.color);var o=r.globals.dom.baseEl.querySelector(\".apexcharts-datalabel-label\"),n=r.globals.dom.baseEl.querySelector(\".apexcharts-datalabel-value\");i=(0,t.value.formatter)(i,r),a||\"function\"!=typeof t.total.formatter||(i=t.total.formatter(r));var l=e===t.total.label;e=t.name.formatter(e,l,r),null!==o&&(o.textContent=e),null!==n&&(n.textContent=i),null!==o&&(o.style.fill=s)}},{key:\"printDataLabelsInner\",value:function(t,e){var i=this.w,a=t.getAttribute(\"data:value\"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute(\"rel\"),10)-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var r=i.globals.dom.baseEl.querySelector(\".apexcharts-datalabels-group\");null!==r&&(r.style.opacity=1)}},{key:\"drawSpokes\",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(0!==s.strokeWidth){for(var r=[],o=360/i.globals.series.length,n=0;n<i.globals.series.length;n++)r.push(x.polarToCartesian(this.centerX,this.centerY,i.globals.radialSize,i.config.plotOptions.pie.startAngle+o*n));r.forEach((function(i,r){var o=a.drawLine(i.x,i.y,e.centerX,e.centerY,Array.isArray(s.connectorColors)?s.connectorColors[r]:s.connectorColors);t.add(o)}))}}},{key:\"revertDataLabelsInner\",value:function(t,e,i){var a=this,s=this.w,r=s.globals.dom.baseEl.querySelector(\".apexcharts-datalabels-group\"),o=!1,n=s.globals.dom.baseEl.getElementsByClassName(\"apexcharts-pie-area\"),l=function(t){var i=t.makeSliceOut,s=t.printLabel;Array.prototype.forEach.call(n,(function(t){\"true\"===t.getAttribute(\"data:pieClicked\")&&(i&&(o=!0),s&&a.printDataLabelsInner(t,e))}))};if(l({makeSliceOut:!0,printLabel:!1}),e.total.show&&s.globals.series.length>1)o&&!e.total.showAlways?l({makeSliceOut:!1,printLabel:!0}):this.printInnerLabels(e,e.total.label,e.total.formatter(s));else if(l({makeSliceOut:!1,printLabel:!0}),!o)if(s.globals.selectedDataPoints.length&&s.globals.series.length>1)if(s.globals.selectedDataPoints[0].length>0){var h=s.globals.selectedDataPoints[0],c=s.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(this.chartType.toLowerCase(),\"-slice-\").concat(h));this.printDataLabelsInner(c,e)}else r&&s.globals.selectedDataPoints.length&&0===s.globals.selectedDataPoints[0].length&&(r.style.opacity=0);else r&&s.globals.series.length>1&&(r.style.opacity=0)}}]),t}(),Pt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0;var i=this.w;this.graphics=new m(this.ctx),this.lineColorArr=void 0!==i.globals.stroke.colors?i.globals.stroke.colors:i.globals.colors,this.defaultSize=i.globals.svgHeight<i.globals.svgWidth?i.globals.gridHeight+1.5*i.globals.goldenPadding:i.globals.gridWidth,this.isLog=i.config.yaxis[0].logarithmic,this.coreUtils=new y(this.ctx),this.maxValue=this.isLog?this.coreUtils.getLogVal(i.globals.maxY,0):i.globals.maxY,this.minValue=this.isLog?this.coreUtils.getLogVal(this.w.globals.minY,0):i.globals.minY,this.polygons=i.config.plotOptions.radar.polygons,this.strokeWidth=i.config.stroke.show?i.config.stroke.width:0,this.size=this.defaultSize/2.1-this.strokeWidth-i.config.chart.dropShadow.blur,i.config.xaxis.labels.show&&(this.size=this.size-i.globals.xAxisLabelsWidth/1.75),void 0!==i.config.plotOptions.radar.size&&(this.size=i.config.plotOptions.radar.size),this.dataRadiusOfPercent=[],this.dataRadius=[],this.angleArr=[],this.yaxisLabelsTextsPos=[]}return r(t,[{key:\"draw\",value:function(t){var i=this,a=this.w,s=new R(this.ctx),r=[],o=new O(this.ctx);t.length&&(this.dataPointsLen=t[a.globals.maxValsInArrayIndex].length),this.disAngle=2*Math.PI/this.dataPointsLen;var n=a.globals.gridWidth/2,l=a.globals.gridHeight/2,h=n+a.config.plotOptions.radar.offsetX,c=l+a.config.plotOptions.radar.offsetY,d=this.graphics.group({class:\"apexcharts-radar-series apexcharts-plot-series\",transform:\"translate(\".concat(h||0,\", \").concat(c||0,\")\")}),g=[],u=null,p=null;if(this.yaxisLabels=this.graphics.group({class:\"apexcharts-yaxis\"}),t.forEach((function(t,n){var l=t.length===a.globals.dataPoints,h=i.graphics.group().attr({class:\"apexcharts-series\",\"data:longestSeries\":l,seriesName:x.escapeString(a.globals.seriesNames[n]),rel:n+1,\"data:realIndex\":n});i.dataRadiusOfPercent[n]=[],i.dataRadius[n]=[],i.angleArr[n]=[],t.forEach((function(t,e){var a=Math.abs(i.maxValue-i.minValue);t+=Math.abs(i.minValue),i.isLog&&(t=i.coreUtils.getLogVal(t,0)),i.dataRadiusOfPercent[n][e]=t/a,i.dataRadius[n][e]=i.dataRadiusOfPercent[n][e]*i.size,i.angleArr[n][e]=e*i.disAngle})),g=i.getDataPointsPos(i.dataRadius[n],i.angleArr[n]);var c=i.createPaths(g,{x:0,y:0});u=i.graphics.group({class:\"apexcharts-series-markers-wrap apexcharts-element-hidden\"}),p=i.graphics.group({class:\"apexcharts-datalabels\",\"data:realIndex\":n}),a.globals.delayedElements.push({el:u.node,index:n});var d={i:n,realIndex:n,animationDelay:n,initialSpeed:a.config.chart.animations.speed,dataChangeSpeed:a.config.chart.animations.dynamicAnimation.speed,className:\"apexcharts-radar\",shouldClipToGrid:!1,bindEventsOnPaths:!1,stroke:a.globals.stroke.colors[n],strokeLineCap:a.config.stroke.lineCap},f=null;a.globals.previousPaths.length>0&&(f=i.getPreviousPath(n));for(var b=0;b<c.linePathsTo.length;b++){var m=i.graphics.renderPaths(e(e({},d),{},{pathFrom:null===f?c.linePathsFrom[b]:f,pathTo:c.linePathsTo[b],strokeWidth:Array.isArray(i.strokeWidth)?i.strokeWidth[n]:i.strokeWidth,fill:\"none\",drawShadow:!1}));h.add(m);var y=s.fillPath({seriesNumber:n}),w=i.graphics.renderPaths(e(e({},d),{},{pathFrom:null===f?c.areaPathsFrom[b]:f,pathTo:c.areaPathsTo[b],strokeWidth:0,fill:y,drawShadow:!1}));if(a.config.chart.dropShadow.enabled){var k=new v(i.ctx),A=a.config.chart.dropShadow;k.dropShadow(w,Object.assign({},A,{noUserSpaceOnUse:!0}),n)}h.add(w)}t.forEach((function(t,s){var r=new H(i.ctx).getMarkerConfig({cssClass:\"apexcharts-marker\",seriesIndex:n,dataPointIndex:s}),l=i.graphics.drawMarker(g[s].x,g[s].y,r);l.attr(\"rel\",s),l.attr(\"j\",s),l.attr(\"index\",n),l.node.setAttribute(\"default-marker-size\",r.pSize);var c=i.graphics.group({class:\"apexcharts-series-markers\"});c&&c.add(l),u.add(c),h.add(u);var d=a.config.dataLabels;if(d.enabled){var f=d.formatter(a.globals.series[n][s],{seriesIndex:n,dataPointIndex:s,w:a});o.plotDataLabelsText({x:g[s].x,y:g[s].y,text:f,textAnchor:\"middle\",i:n,j:n,parent:p,offsetCorrection:!1,dataLabelsConfig:e({},d)})}h.add(p)})),r.push(h)})),this.drawPolygons({parent:d}),a.config.xaxis.labels.show){var f=this.drawXAxisTexts();d.add(f)}return r.forEach((function(t){d.add(t)})),d.add(this.yaxisLabels),d}},{key:\"drawPolygons\",value:function(t){for(var e=this,i=this.w,a=t.parent,s=new Ct(this.ctx),r=i.globals.yAxisScale[0].result.reverse(),o=r.length,n=[],l=this.size/(o-1),h=0;h<o;h++)n[h]=l*h;n.reverse();var c=[],d=[];n.forEach((function(t,i){var a=x.getPolygonPos(t,e.dataPointsLen),s=\"\";a.forEach((function(t,a){if(0===i){var r=e.graphics.drawLine(t.x,t.y,0,0,Array.isArray(e.polygons.connectorColors)?e.polygons.connectorColors[a]:e.polygons.connectorColors);d.push(r)}0===a&&e.yaxisLabelsTextsPos.push({x:t.x,y:t.y}),s+=t.x+\",\"+t.y+\" \"})),c.push(s)})),c.forEach((function(t,s){var r=e.polygons.strokeColors,o=e.polygons.strokeWidth,n=e.graphics.drawPolygon(t,Array.isArray(r)?r[s]:r,Array.isArray(o)?o[s]:o,i.globals.radarPolygons.fill.colors[s]);a.add(n)})),d.forEach((function(t){a.add(t)})),i.config.yaxis[0].show&&this.yaxisLabelsTextsPos.forEach((function(t,i){var a=s.drawYAxisTexts(t.x,t.y,i,r[i]);e.yaxisLabels.add(a)}))}},{key:\"drawXAxisTexts\",value:function(){var t=this,i=this.w,a=i.config.xaxis.labels,s=this.graphics.group({class:\"apexcharts-xaxis\"}),r=x.getPolygonPos(this.size,this.dataPointsLen);return i.globals.labels.forEach((function(o,n){var l=i.config.xaxis.labels.formatter,h=new O(t.ctx);if(r[n]){var c=t.getTextPos(r[n],t.size),d=l(o,{seriesIndex:-1,dataPointIndex:n,w:i});h.plotDataLabelsText({x:c.newX,y:c.newY,text:d,textAnchor:c.textAnchor,i:n,j:n,parent:s,color:Array.isArray(a.style.colors)&&a.style.colors[n]?a.style.colors[n]:\"#a8a8a8\",dataLabelsConfig:e({textAnchor:c.textAnchor,dropShadow:{enabled:!1}},a),offsetCorrection:!1})}})),s}},{key:\"createPaths\",value:function(t,e){var i=this,a=[],s=[],r=[],o=[];if(t.length){s=[this.graphics.move(e.x,e.y)],o=[this.graphics.move(e.x,e.y)];var n=this.graphics.move(t[0].x,t[0].y),l=this.graphics.move(t[0].x,t[0].y);t.forEach((function(e,a){n+=i.graphics.line(e.x,e.y),l+=i.graphics.line(e.x,e.y),a===t.length-1&&(n+=\"Z\",l+=\"Z\")})),a.push(n),r.push(l)}return{linePathsFrom:s,linePathsTo:a,areaPathsFrom:o,areaPathsTo:r}}},{key:\"getTextPos\",value:function(t,e){var i=\"middle\",a=t.x,s=t.y;return Math.abs(t.x)>=10?t.x>0?(i=\"start\",a+=10):t.x<0&&(i=\"end\",a-=10):i=\"middle\",Math.abs(t.y)>=e-10&&(t.y<0?s-=10:t.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:\"getPreviousPath\",value:function(t){for(var e=this.w,i=null,a=0;a<e.globals.previousPaths.length;a++){var s=e.globals.previousPaths[a];s.paths.length>0&&parseInt(s.realIndex,10)===parseInt(t,10)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:\"getDataPointsPos\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s<i;s++){var r={};r.x=t[s]*Math.sin(e[s]),r.y=-t[s]*Math.cos(e[s]),a.push(r)}return a}}]),t}(),It=function(t){n(i,Lt);var e=d(i);function i(t){var s;a(this,i),(s=e.call(this,t)).ctx=t,s.w=t.w,s.animBeginArr=[0],s.animDur=0;var r=s.w;return s.startAngle=r.config.plotOptions.radialBar.startAngle,s.endAngle=r.config.plotOptions.radialBar.endAngle,s.totalAngle=Math.abs(r.config.plotOptions.radialBar.endAngle-r.config.plotOptions.radialBar.startAngle),s.trackStartAngle=r.config.plotOptions.radialBar.track.startAngle,s.trackEndAngle=r.config.plotOptions.radialBar.track.endAngle,s.donutDataLabels=s.w.config.plotOptions.radialBar.dataLabels,s.radialDataLabels=s.donutDataLabels,s.trackStartAngle||(s.trackStartAngle=s.startAngle),s.trackEndAngle||(s.trackEndAngle=s.endAngle),360===s.endAngle&&(s.endAngle=359.99),s.margin=parseInt(r.config.plotOptions.radialBar.track.margin,10),s}return r(i,[{key:\"draw\",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:\"apexcharts-radialbar\"});if(e.globals.noData)return a;var s=i.group(),r=this.defaultSize/2,o=e.globals.gridWidth/2,n=this.defaultSize/2.05;e.config.chart.sparkline.enabled||(n=n-e.config.stroke.width-e.config.chart.dropShadow.blur);var l=e.globals.fill.colors;if(e.config.plotOptions.radialBar.track.show){var h=this.drawTracks({size:n,centerX:o,centerY:r,colorArr:l,series:t});s.add(h)}var c=this.drawArcs({size:n,centerX:o,centerY:r,colorArr:l,series:t}),d=360;e.config.plotOptions.radialBar.startAngle<0&&(d=this.totalAngle);var g=(360-d)/360;if(e.globals.radialSize=n-n*g,this.radialDataLabels.value.show){var u=Math.max(this.radialDataLabels.value.offsetY,this.radialDataLabels.name.offsetY);e.globals.radialSize+=u*g}return s.add(c.g),\"front\"===e.config.plotOptions.radialBar.hollow.position&&(c.g.add(c.elHollow),c.dataLabels&&c.g.add(c.dataLabels)),a.add(s),a}},{key:\"drawTracks\",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:\"apexcharts-tracks\"}),s=new v(this.ctx),r=new R(this.ctx),o=this.getStrokeWidth(t);t.size=t.size-o/2;for(var n=0;n<t.series.length;n++){var l=i.group({class:\"apexcharts-radialbar-track apexcharts-track\"});a.add(l),l.attr({rel:n+1}),t.size=t.size-o-this.margin;var h=e.config.plotOptions.radialBar.track,c=r.fillPath({seriesNumber:0,size:t.size,fillColors:Array.isArray(h.background)?h.background[n]:h.background,solid:!0}),d=this.trackStartAngle,g=this.trackEndAngle;Math.abs(g)+Math.abs(d)>=360&&(g=360-Math.abs(this.startAngle)-.1);var u=i.drawPath({d:\"\",stroke:c,strokeWidth:o*parseInt(h.strokeWidth,10)/100,fill:\"none\",strokeOpacity:h.opacity,classes:\"apexcharts-radialbar-area\"});if(h.dropShadow.enabled){var p=h.dropShadow;s.dropShadow(u,p)}l.add(u),u.attr(\"id\",\"apexcharts-radialbarTrack-\"+n),this.animatePaths(u,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:d,size:t.size,i:n,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:\"drawArcs\",value:function(t){var e=this.w,i=new m(this.ctx),a=new R(this.ctx),s=new v(this.ctx),r=i.group(),o=this.getStrokeWidth(t);t.size=t.size-o/2;var n=e.config.plotOptions.radialBar.hollow.background,l=t.size-o*t.series.length-this.margin*t.series.length-o*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,h=l-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(n=this.drawHollowImage(t,r,l,n));var c=this.drawHollow({size:h,centerX:t.centerX,centerY:t.centerY,fill:n||\"transparent\"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var d=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(c,d)}var g=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(g=0);var u=null;this.radialDataLabels.show&&(u=this.renderInnerDataLabels(this.radialDataLabels,{hollowSize:l,centerX:t.centerX,centerY:t.centerY,opacity:g})),\"back\"===e.config.plotOptions.radialBar.hollow.position&&(r.add(c),u&&r.add(u));var p=!1;e.config.plotOptions.radialBar.inverseOrder&&(p=!0);for(var f=p?t.series.length-1:0;p?f>=0:f<t.series.length;p?f--:f++){var b=i.group({class:\"apexcharts-series apexcharts-radial-series\",seriesName:x.escapeString(e.globals.seriesNames[f])});r.add(b),b.attr({rel:f+1,\"data:realIndex\":f}),this.ctx.series.addCollapsedClassToSeries(b,f),t.size=t.size-o-this.margin;var y=a.fillPath({seriesNumber:f,size:t.size,value:t.series[f]}),w=this.startAngle,k=void 0,A=x.negToZero(t.series[f]>100?100:t.series[f])/100,S=Math.round(this.totalAngle*A)+this.startAngle,C=void 0;e.globals.dataChanged&&(k=this.startAngle,C=Math.round(this.totalAngle*x.negToZero(e.globals.previousPaths[f])/100)+k),Math.abs(S)+Math.abs(w)>=360&&(S-=.01),Math.abs(C)+Math.abs(k)>=360&&(C-=.01);var L=S-w,P=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[f]:e.config.stroke.dashArray,I=i.drawPath({d:\"\",stroke:y,strokeWidth:o,fill:\"none\",fillOpacity:e.config.fill.opacity,classes:\"apexcharts-radialbar-area apexcharts-radialbar-slice-\"+f,strokeDashArray:P});if(m.setAttrs(I.node,{\"data:angle\":L,\"data:value\":t.series[f]}),e.config.chart.dropShadow.enabled){var T=e.config.chart.dropShadow;s.dropShadow(I,T,f)}s.setSelectionFilter(I,0,f),this.addListeners(I,this.radialDataLabels),b.add(I),I.attr({index:0,j:f});var M=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(M=e.config.chart.animations.speed),e.globals.dataChanged&&(M=e.config.chart.animations.dynamicAnimation.speed),this.animDur=M/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(I,{centerX:t.centerX,centerY:t.centerY,endAngle:S,startAngle:w,prevEndAngle:C,prevStartAngle:k,size:t.size,i:f,totalItems:2,animBeginArr:this.animBeginArr,dur:M,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:r,elHollow:c,dataLabels:u}}},{key:\"drawHollow\",value:function(t){var e=new m(this.ctx).drawCircle(2*t.size);return e.attr({class:\"apexcharts-radialbar-hollow\",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:\"drawHollowImage\",value:function(t,e,i,a){var s=this.w,r=new R(this.ctx),o=x.randomId(),n=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)r.clippedImgArea({width:i,height:i,image:n,patternID:\"pattern\".concat(s.globals.cuid).concat(o)}),a=\"url(#pattern\".concat(s.globals.cuid).concat(o,\")\");else{var l=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===l&&void 0===h){var c=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)}));e.add(c)}else{var d=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-l/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(l,h)}));e.add(d)}}return a}},{key:\"getStrokeWidth\",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}}]),i}(),Tt=function(t){n(s,yt);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:\"draw\",value:function(t,i){var a=this.w,s=new m(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=t,this.seriesRangeStart=a.globals.seriesRangeStart,this.seriesRangeEnd=a.globals.seriesRangeEnd,this.barHelpers.initVariables(t);for(var r=s.group({class:\"apexcharts-rangebar-series apexcharts-plot-series\"}),n=0;n<t.length;n++){var l,h,c,d,g=void 0,u=void 0,p=a.globals.comboCharts?i[n]:n,f=s.group({class:\"apexcharts-series\",seriesName:x.escapeString(a.globals.seriesNames[p]),rel:n+1,\"data:realIndex\":p});this.ctx.series.addCollapsedClassToSeries(f,p),t[n].length>0&&(this.visibleI=this.visibleI+1);var b=0,v=0;this.yRatio.length>1&&(this.yaxisIndex=p);var y=this.barHelpers.initialPositions();u=y.y,d=y.zeroW,g=y.x,v=y.barWidth,b=y.barHeight,l=y.xDivision,h=y.yDivision,c=y.zeroH;for(var w=s.group({class:\"apexcharts-datalabels\",\"data:realIndex\":p}),k=s.group({class:\"apexcharts-rangebar-goals-markers\",style:\"pointer-events: none\"}),A=0;A<a.globals.dataPoints;A++){var S,C=this.barHelpers.getStrokeWidth(n,A,p),L=this.seriesRangeStart[n][A],P=this.seriesRangeEnd[n][A],I=null,T=null,M=null,X={x:g,y:u,strokeWidth:C,elSeries:f},z=this.seriesLen;if(a.config.plotOptions.bar.rangeBarGroupRows&&(z=1),void 0===a.config.series[n].data[A])break;if(this.isHorizontal){M=u+b*this.visibleI;var E=(h-b*z)/2;if(a.config.series[n].data[A].x){var Y=this.detectOverlappingBars({i:n,j:A,barYPosition:M,srty:E,barHeight:b,yDivision:h,initPositions:y});b=Y.barHeight,M=Y.barYPosition}v=(I=this.drawRangeBarPaths(e({indexes:{i:n,j:A,realIndex:p},barHeight:b,barYPosition:M,zeroW:d,yDivision:h,y1:L,y2:P},X))).barWidth}else{a.globals.isXNumeric&&(g=(a.globals.seriesX[n][A]-a.globals.minX)/this.xRatio-v/2),T=g+v*this.visibleI;var F=(l-v*z)/2;if(a.config.series[n].data[A].x){var R=this.detectOverlappingBars({i:n,j:A,barXPosition:T,srtx:F,barWidth:v,xDivision:l,initPositions:y});v=R.barWidth,T=R.barXPosition}b=(I=this.drawRangeColumnPaths(e({indexes:{i:n,j:A,realIndex:p},barWidth:v,barXPosition:T,zeroH:c,xDivision:l},X))).barHeight}var H=this.barHelpers.drawGoalLine({barXPosition:I.barXPosition,barYPosition:M,goalX:I.goalX,goalY:I.goalY,barHeight:b,barWidth:v});H&&k.add(H),u=I.y,g=I.x;var D=this.barHelpers.getPathFillColor(t,n,A,p),O=a.globals.stroke.colors[p];this.renderSeries((o(S={realIndex:p,pathFill:D,lineFill:O,j:A,i:n,x:g,y:u,y1:L,y2:P,pathFrom:I.pathFrom,pathTo:I.pathTo,strokeWidth:C,elSeries:f,series:t,barHeight:b,barWidth:v,barXPosition:T,barYPosition:M},\"barWidth\",v),o(S,\"elDataLabelsWrap\",w),o(S,\"elGoalsMarkers\",k),o(S,\"visibleSeries\",this.visibleI),o(S,\"type\",\"rangebar\"),S))}r.add(f)}return r}},{key:\"detectOverlappingBars\",value:function(t){var e=t.i,i=t.j,a=t.barYPosition,s=t.barXPosition,r=t.srty,o=t.srtx,n=t.barHeight,l=t.barWidth,h=t.yDivision,c=t.xDivision,d=t.initPositions,g=this.w,u=[],p=g.config.series[e].data[i].rangeName,f=g.config.series[e].data[i].x,x=Array.isArray(f)?f.join(\" \"):f,b=g.globals.labels.map((function(t){return Array.isArray(t)?t.join(\" \"):t})).indexOf(x),v=g.globals.seriesRange[e].findIndex((function(t){return t.x===x&&t.overlaps.length>0}));return this.isHorizontal?(a=g.config.plotOptions.bar.rangeBarGroupRows?r+h*b:r+n*this.visibleI+h*b,v>-1&&!g.config.plotOptions.bar.rangeBarOverlap&&(u=g.globals.seriesRange[e][v].overlaps).indexOf(p)>-1&&(a=(n=d.barHeight/u.length)*this.visibleI+h*(100-parseInt(this.barOptions.barHeight,10))/100/2+n*(this.visibleI+u.indexOf(p))+h*b)):(b>-1&&(s=g.config.plotOptions.bar.rangeBarGroupRows?o+c*b:o+l*this.visibleI+c*b),v>-1&&!g.config.plotOptions.bar.rangeBarOverlap&&(u=g.globals.seriesRange[e][v].overlaps).indexOf(p)>-1&&(s=(l=d.barWidth/u.length)*this.visibleI+c*(100-parseInt(this.barOptions.barWidth,10))/100/2+l*(this.visibleI+u.indexOf(p))+c*b)),{barYPosition:a,barXPosition:s,barHeight:n,barWidth:l}}},{key:\"drawRangeColumnPaths\",value:function(t){var e=t.indexes,i=t.x,a=t.xDivision,s=t.barWidth,r=t.barXPosition,o=t.zeroH,n=this.w,l=e.i,h=e.j,c=this.yRatio[this.yaxisIndex],d=e.realIndex,g=this.getRangeValue(d,h),u=Math.min(g.start,g.end),p=Math.max(g.start,g.end);void 0===this.series[l][h]||null===this.series[l][h]?u=o:(u=o-u/c,p=o-p/c);var f=Math.abs(p-u),x=this.barHelpers.getColumnPaths({barXPosition:r,barWidth:s,y1:u,y2:p,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:e.realIndex,i:d,j:h,w:n});return n.globals.isXNumeric||(i+=a),{pathTo:x.pathTo,pathFrom:x.pathFrom,barHeight:f,x:i,y:p,goalY:this.barHelpers.getGoalValues(\"y\",null,o,l,h),barXPosition:r}}},{key:\"drawRangeBarPaths\",value:function(t){var e=t.indexes,i=t.y,a=t.y1,s=t.y2,r=t.yDivision,o=t.barHeight,n=t.barYPosition,l=t.zeroW,h=this.w,c=l+a/this.invertedYRatio,d=l+s/this.invertedYRatio,g=Math.abs(d-c),u=this.barHelpers.getBarpaths({barYPosition:n,barHeight:o,x1:c,x2:d,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:e.realIndex,realIndex:e.realIndex,j:e.j,w:h});return h.globals.isXNumeric||(i+=r),{pathTo:u.pathTo,pathFrom:u.pathFrom,barWidth:g,x:d,goalX:this.barHelpers.getGoalValues(\"x\",l,null,e.realIndex,e.j),y:i}}},{key:\"getRangeValue\",value:function(t,e){var i=this.w;return{start:i.globals.seriesRangeStart[t][e],end:i.globals.seriesRangeEnd[t][e]}}}]),s}(),Mt=function(){function t(e){a(this,t),this.w=e.w,this.lineCtx=e}return r(t,[{key:\"sameValueSeriesFix\",value:function(t,e){var i=this.w;if((\"gradient\"===i.config.fill.type||\"gradient\"===i.config.fill.type[t])&&new y(this.lineCtx.ctx,i).seriesHaveSameValues(t)){var a=e[t].slice();a[a.length-1]=a[a.length-1]+1e-6,e[t]=a}return e}},{key:\"calculatePoints\",value:function(t){var e=t.series,i=t.realIndex,a=t.x,s=t.y,r=t.i,o=t.j,n=t.prevY,l=this.w,h=[],c=[];if(0===o){var d=this.lineCtx.categoryAxisCorrection+l.config.markers.offsetX;l.globals.isXNumeric&&(d=(l.globals.seriesX[i][0]-l.globals.minX)/this.lineCtx.xRatio+l.config.markers.offsetX),h.push(d),c.push(x.isNumber(e[r][0])?n+l.config.markers.offsetY:null),h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null)}else h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null);return{x:h,y:c}}},{key:\"checkPreviousPaths\",value:function(t){for(var e=t.pathFromLine,i=t.pathFromArea,a=t.realIndex,s=this.w,r=0;r<s.globals.previousPaths.length;r++){var o=s.globals.previousPaths[r];(\"line\"===o.type||\"area\"===o.type)&&o.paths.length>0&&parseInt(o.realIndex,10)===parseInt(a,10)&&(\"line\"===o.type?(this.lineCtx.appendPathFrom=!1,e=s.globals.previousPaths[r].paths[0].d):\"area\"===o.type&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(e=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:\"determineFirstPrevY\",value:function(t){var e,i=t.i,a=t.series,s=t.prevY,r=t.lineYPosition,o=this.w;if(void 0!==(null===(e=a[i])||void 0===e?void 0:e[0]))s=(r=o.config.chart.stacked&&i>0?this.lineCtx.prevSeriesY[i-1][0]:this.lineCtx.zeroY)-a[i][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]+2*(this.lineCtx.isReversed?a[i][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]:0);else if(o.config.chart.stacked&&i>0&&void 0===a[i][0])for(var n=i-1;n>=0;n--)if(null!==a[n][0]&&void 0!==a[n][0]){s=r=this.lineCtx.prevSeriesY[n][0];break}return{prevY:s,lineYPosition:r}}}]),t}(),Xt=function(){function t(e,i,s){a(this,t),this.ctx=e,this.w=e.w,this.xyRatios=i,this.pointsChart=!(\"bubble\"!==this.w.config.chart.type&&\"scatter\"!==this.w.config.chart.type)||s,this.scatter=new D(this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new Mt(this),this.markers=new H(this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0}return r(t,[{key:\"draw\",value:function(t,i,a,s){var r=this.w,o=new m(this.ctx),n=r.globals.comboCharts?i:r.config.chart.type,l=o.group({class:\"apexcharts-\".concat(n,\"-series apexcharts-plot-series\")}),h=new y(this.ctx,r);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,t=h.getLogSeries(t),this.yRatio=h.getLogYRatios(this.yRatio);for(var c=[],d=0;d<t.length;d++){t=this.lineHelpers.sameValueSeriesFix(d,t);var g=r.globals.comboCharts?a[d]:d;this._initSerieVariables(t,d,g);var u=[],p=[],f=r.globals.padHorizontal+this.categoryAxisCorrection;this.ctx.series.addCollapsedClassToSeries(this.elSeries,g),r.globals.isXNumeric&&r.globals.seriesX.length>0&&(f=(r.globals.seriesX[g][0]-r.globals.minX)/this.xRatio),p.push(f);var x,b=f,v=void 0,w=b,k=this.zeroY,A=this.zeroY;k=this.lineHelpers.determineFirstPrevY({i:d,series:t,prevY:k,lineYPosition:0}).prevY,u.push(k),x=k;\"rangeArea\"===n&&(v=A=this.lineHelpers.determineFirstPrevY({i:d,series:s,prevY:A,lineYPosition:0}).prevY);var S={type:n,series:t,realIndex:g,i:d,x:f,y:1,pX:b,pY:x,pathsFrom:this._calculatePathsFrom({type:n,series:t,i:d,realIndex:g,prevX:w,prevY:k,prevY2:A}),linePaths:[],areaPaths:[],seriesIndex:a,lineYPosition:0,xArrj:p,yArrj:u,seriesRangeEnd:s},C=this._iterateOverDataPoints(e(e({},S),{},{iterations:\"rangeArea\"===n?t[d].length-1:void 0,isRangeStart:!0}));if(\"rangeArea\"===n){var L=this._calculatePathsFrom({series:s,i:d,realIndex:g,prevX:w,prevY:A}),P=this._iterateOverDataPoints(e(e({},S),{},{series:s,pY:v,pathsFrom:L,iterations:s[d].length-1,isRangeStart:!1}));C.linePaths[0]=P.linePath+C.linePath,C.pathFromLine=P.pathFromLine+C.pathFromLine}this._handlePaths({type:n,realIndex:g,i:d,paths:C}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),c.push(this.elSeries)}if(r.config.chart.stacked)for(var I=c.length;I>0;I--)l.add(c[I-1]);else for(var T=0;T<c.length;T++)l.add(c[T]);return l}},{key:\"_initSerieVariables\",value:function(t,e,i){var a=this.w,s=new m(this.ctx);this.xDivision=a.globals.gridWidth/(a.globals.dataPoints-(\"on\"===a.config.xaxis.tickPlacement?1:0)),this.strokeWidth=Array.isArray(a.config.stroke.width)?a.config.stroke.width[i]:a.config.stroke.width,this.yRatio.length>1&&(this.yaxisIndex=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||\"end\"===a.config.plotOptions.area.fillTo)&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:\"apexcharts-series\",seriesName:x.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:\"apexcharts-series-markers-wrap\",\"data:realIndex\":i}),this.elDataLabelsWrap=s.group({class:\"apexcharts-datalabels\",\"data:realIndex\":i});var r=t[e].length===a.globals.dataPoints;this.elSeries.attr({\"data:longestSeries\":r,rel:e+1,\"data:realIndex\":i}),this.appendPathFrom=!0}},{key:\"_calculatePathsFrom\",value:function(t){var e,i,a,s,r=t.type,o=t.series,n=t.i,l=t.realIndex,h=t.prevX,c=t.prevY,d=t.prevY2,g=this.w,u=new m(this.ctx);if(null===o[n][0]){for(var p=0;p<o[n].length;p++)if(null!==o[n][p]){h=this.xDivision*p,c=this.zeroY-o[n][p]/this.yRatio[this.yaxisIndex],e=u.move(h,c),i=u.move(h,this.areaBottomY);break}}else e=u.move(h,c),\"rangeArea\"===r&&(e=u.move(h,d)+u.line(h,c)),i=u.move(h,this.areaBottomY)+u.line(h,c);if(a=u.move(-1,this.zeroY)+u.line(-1,this.zeroY),s=u.move(-1,this.zeroY)+u.line(-1,this.zeroY),g.globals.previousPaths.length>0){var f=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:l});a=f.pathFromLine,s=f.pathFromArea}return{prevX:h,prevY:c,linePath:e,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:\"_handlePaths\",value:function(t){var i=t.type,a=t.realIndex,s=t.i,r=t.paths,o=this.w,n=new m(this.ctx),l=new R(this.ctx);this.prevSeriesY.push(r.yArrj),o.globals.seriesXvalues[a]=r.xArrj,o.globals.seriesYvalues[a]=r.yArrj;var h=o.config.forecastDataPoints;if(h.count>0&&\"rangeArea\"!==i){var c=o.globals.seriesXvalues[a][o.globals.seriesXvalues[a].length-h.count-1],d=n.drawRect(c,0,o.globals.gridWidth,o.globals.gridHeight,0);o.globals.dom.elForecastMask.appendChild(d.node);var g=n.drawRect(0,0,c,o.globals.gridHeight,0);o.globals.dom.elNonForecastMask.appendChild(g.node)}this.pointsChart||o.globals.delayedElements.push({el:this.elPointsMain.node,index:a});var u={i:s,realIndex:a,animationDelay:s,initialSpeed:o.config.chart.animations.speed,dataChangeSpeed:o.config.chart.animations.dynamicAnimation.speed,className:\"apexcharts-\".concat(i)};if(\"area\"===i)for(var p=l.fillPath({seriesNumber:a}),f=0;f<r.areaPaths.length;f++){var x=n.renderPaths(e(e({},u),{},{pathFrom:r.pathFromArea,pathTo:r.areaPaths[f],stroke:\"none\",strokeWidth:0,strokeLineCap:null,fill:p}));this.elSeries.add(x)}if(o.config.stroke.show&&!this.pointsChart){var b=null;if(\"line\"===i)b=l.fillPath({seriesNumber:a,i:s});else if(\"solid\"===o.config.stroke.fill.type)b=o.globals.stroke.colors[a];else{var v=o.config.fill;o.config.fill=o.config.stroke.fill,b=l.fillPath({seriesNumber:a,i:s}),o.config.fill=v}for(var y=0;y<r.linePaths.length;y++){var w=b;\"rangeArea\"===i&&(w=l.fillPath({seriesNumber:a}));var k=e(e({},u),{},{pathFrom:r.pathFromLine,pathTo:r.linePaths[y],stroke:b,strokeWidth:this.strokeWidth,strokeLineCap:o.config.stroke.lineCap,fill:\"rangeArea\"===i?w:\"none\"}),A=n.renderPaths(k);if(this.elSeries.add(A),A.attr(\"fill-rule\",\"evenodd\"),h.count>0&&\"rangeArea\"!==i){var S=n.renderPaths(k);S.node.setAttribute(\"stroke-dasharray\",h.dashArray),h.strokeWidth&&S.node.setAttribute(\"stroke-width\",h.strokeWidth),this.elSeries.add(S),S.attr(\"clip-path\",\"url(#forecastMask\".concat(o.globals.cuid,\")\")),A.attr(\"clip-path\",\"url(#nonForecastMask\".concat(o.globals.cuid,\")\"))}}}}},{key:\"_iterateOverDataPoints\",value:function(t){var e=t.type,i=t.series,a=t.iterations,s=t.realIndex,r=t.i,o=t.x,n=t.y,l=t.pX,h=t.pY,c=t.pathsFrom,d=t.linePaths,g=t.areaPaths,u=t.seriesIndex,p=t.lineYPosition,f=t.xArrj,b=t.yArrj,v=t.isRangeStart,y=t.seriesRangeEnd,w=this.w,k=new m(this.ctx),A=this.yRatio,S=c.prevY,C=c.linePath,L=c.areaPath,P=c.pathFromLine,I=c.pathFromArea,T=x.isNumber(w.globals.minYArr[s])?w.globals.minYArr[s]:w.globals.minY;a||(a=w.globals.dataPoints>1?w.globals.dataPoints-1:w.globals.dataPoints);for(var M=n,X=0;X<a;X++){var z=void 0===i[r][X+1]||null===i[r][X+1];if(w.globals.isXNumeric){var E=w.globals.seriesX[s][X+1];void 0===w.globals.seriesX[s][X+1]&&(E=w.globals.seriesX[s][a-1]),o=(E-w.globals.minX)/this.xRatio}else o+=this.xDivision;if(w.config.chart.stacked)if(r>0&&w.globals.collapsedSeries.length<w.config.series.length-1){p=this.prevSeriesY[function(t){for(var e=t,i=0;i<w.globals.series.length;i++)if(w.globals.collapsedSeriesIndices.indexOf(t)>-1){e--;break}return e>=0?e:0}(r-1)][X+1]}else p=this.zeroY;else p=this.zeroY;z?n=p-T/A[this.yaxisIndex]+2*(this.isReversed?T/A[this.yaxisIndex]:0):(n=p-i[r][X+1]/A[this.yaxisIndex]+2*(this.isReversed?i[r][X+1]/A[this.yaxisIndex]:0),\"rangeArea\"===e&&(M=p-y[r][X+1]/A[this.yaxisIndex]+2*(this.isReversed?y[r][X+1]/A[this.yaxisIndex]:0))),f.push(o),b.push(n);var Y=this.lineHelpers.calculatePoints({series:i,x:o,y:n,realIndex:s,i:r,j:X,prevY:S}),F=this._createPaths({type:e,series:i,i:r,realIndex:s,j:X,x:o,y:n,y2:M,pX:l,pY:h,linePath:C,areaPath:L,linePaths:d,areaPaths:g,seriesIndex:u,isRangeStart:v});g=F.areaPaths,d=F.linePaths,l=F.pX,h=F.pY,L=F.areaPath,C=F.linePath,this.appendPathFrom&&(P+=k.line(o,this.zeroY),I+=k.line(o,this.zeroY)),this.handleNullDataPoints(i,Y,r,X,s),this._handleMarkersAndLabels({type:e,pointsPos:Y,i:r,j:X,realIndex:s,isRangeStart:v})}return{yArrj:b,xArrj:f,pathFromArea:I,areaPaths:g,pathFromLine:P,linePaths:d,linePath:C,areaPath:L}}},{key:\"_handleMarkersAndLabels\",value:function(t){var e=t.type,i=t.pointsPos,a=t.isRangeStart,s=t.i,r=t.j,o=t.realIndex,n=this.w,l=new O(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,r,{realIndex:o,pointsPos:i,zRatio:this.zRatio,elParent:this.elPointsMain});else{n.globals.series[s].length>1&&this.elPointsMain.node.classList.add(\"apexcharts-element-hidden\");var h=this.markers.plotChartMarkers(i,o,r+1);null!==h&&this.elPointsMain.add(h)}var c=l.drawDataLabel({type:e,isRangeStart:a,pos:i,i:o,j:r+1});null!==c&&this.elDataLabelsWrap.add(c)}},{key:\"_createPaths\",value:function(t){var e=t.type,i=t.series,a=t.i,s=t.realIndex,r=t.j,o=t.x,n=t.y,l=t.y2,h=t.pX,c=t.pY,d=t.linePath,g=t.areaPath,u=t.linePaths,p=t.areaPaths,f=t.seriesIndex,x=t.isRangeStart,b=this.w,v=new m(this.ctx),y=b.config.stroke.curve,w=this.areaBottomY;if(Array.isArray(b.config.stroke.curve)&&(y=Array.isArray(f)?b.config.stroke.curve[f[a]]:b.config.stroke.curve[a]),\"smooth\"===y){var k=.35*(o-h);b.globals.hasNullValues?(null!==i[a][r]&&(null!==i[a][r+1]?(d=v.move(h,c)+v.curve(h+k,c,o-k,n,o+1,n),g=v.move(h+1,c)+v.curve(h+k,c,o-k,n,o+1,n)+v.line(o,w)+v.line(h,w)+\"z\"):(d=v.move(h,c),g=v.move(h,c)+\"z\")),u.push(d),p.push(g)):(d+=v.curve(h+k,c,o-k,n,o,n),g+=v.curve(h+k,c,o-k,n,o,n)),h=o,c=n,r===i[a].length-2&&(g=g+v.curve(h,c,o,n,o,w)+v.move(o,n)+\"z\",\"rangeArea\"===e&&x?d=d+v.curve(h,c,o,n,o,l)+v.move(o,l)+\"z\":b.globals.hasNullValues||(u.push(d),p.push(g)))}else{if(null===i[a][r+1]){d+=v.move(o,n);var A=b.globals.isXNumeric?(b.globals.seriesX[s][r]-b.globals.minX)/this.xRatio:o-this.xDivision;g=g+v.line(A,w)+v.move(o,n)+\"z\"}null===i[a][r]&&(d+=v.move(o,n),g+=v.move(o,w)),\"stepline\"===y?(d=d+v.line(o,null,\"H\")+v.line(null,n,\"V\"),g=g+v.line(o,null,\"H\")+v.line(null,n,\"V\")):\"straight\"===y&&(d+=v.line(o,n),g+=v.line(o,n)),r===i[a].length-2&&(g=g+v.line(o,w)+v.move(o,n)+\"z\",\"rangeArea\"===e&&x?d=d+v.line(o,l)+v.move(o,l)+\"z\":(u.push(d),p.push(g)))}return{linePaths:u,areaPaths:p,pX:h,pY:c,linePath:d,areaPath:g}}},{key:\"handleNullDataPoints\",value:function(t,e,i,a,s){var r=this.w;if(null===t[i][a]&&r.config.markers.showNullDataPoints||1===t[i].length){var o=this.markers.plotChartMarkers(e,s,a+1,this.strokeWidth-r.config.markers.strokeWidth/2,!0);null!==o&&this.elPointsMain.add(o)}}}]),t}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function t(e,i,a,s){this.xoffset=e,this.yoffset=i,this.height=s,this.width=a,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(t){var e,i=[],a=this.xoffset,s=this.yoffset,o=r(t)/this.height,n=r(t)/this.width;if(this.width>=this.height)for(e=0;e<t.length;e++)i.push([a,s,a+o,s+t[e]/o]),s+=t[e]/o;else for(e=0;e<t.length;e++)i.push([a,s,a+t[e]/n,s+n]),a+=t[e]/n;return i},this.cutArea=function(e){var i;if(this.width>=this.height){var a=e/this.height,s=this.width-a;i=new t(this.xoffset+a,this.yoffset,s,this.height)}else{var r=e/this.width,o=this.height-r;i=new t(this.xoffset,this.yoffset+r,this.width,o)}return i}}function e(e,a,s,o,n){o=void 0===o?0:o,n=void 0===n?0:n;var l=i(function(t,e){var i,a=[],s=e/r(t);for(i=0;i<t.length;i++)a[i]=t[i]*s;return a}(e,a*s),[],new t(o,n,a,s),[]);return function(t){var e,i,a=[];for(e=0;e<t.length;e++)for(i=0;i<t[e].length;i++)a.push(t[e][i]);return a}(l)}function i(t,e,s,o){var n,l,h;if(0!==t.length)return n=s.shortestEdge(),function(t,e,i){var s;if(0===t.length)return!0;(s=t.slice()).push(e);var r=a(t,i),o=a(s,i);return r>=o}(e,l=t[0],n)?(e.push(l),i(t.slice(1),e,s,o)):(h=s.cutArea(r(e),o),o.push(s.getCoordinates(e)),i(t,[],h,o)),o;o.push(s.getCoordinates(e))}function a(t,e){var i=Math.min.apply(Math,t),a=Math.max.apply(Math,t),s=r(t);return Math.max(Math.pow(e,2)*a/Math.pow(s,2),Math.pow(s,2)/(Math.pow(e,2)*i))}function s(t){return t&&t.constructor===Array}function r(t){var e,i=0;for(e=0;e<t.length;e++)i+=t[e];return i}function o(t){var e,i=0;if(s(t[0]))for(e=0;e<t.length;e++)i+=o(t[e]);else i=r(t);return i}return function t(i,a,r,n,l){n=void 0===n?0:n,l=void 0===l?0:l;var h,c,d=[],g=[];if(s(i[0])){for(c=0;c<i.length;c++)d[c]=o(i[c]);for(h=e(d,a,r,n,l),c=0;c<i.length;c++)g.push(t(i[c],h[c][2]-h[c][0],h[c][3]-h[c][1],h[c][0],h[c][1]))}else g=e(i,a,r,n,l);return g}}();var zt,Et,Yt=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.strokeWidth=this.w.config.stroke.width,this.helpers=new At(e),this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.labels=[]}return r(t,[{key:\"draw\",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=new R(this.ctx),r=a.group({class:\"apexcharts-treemap\"});if(i.globals.noData)return r;var o=[];return t.forEach((function(t){var e=t.map((function(t){return Math.abs(t)}));o.push(e)})),this.negRange=this.helpers.checkColorRange(),i.config.series.forEach((function(t,i){t.data.forEach((function(t){Array.isArray(e.labels[i])||(e.labels[i]=[]),e.labels[i].push(t.x)}))})),window.TreemapSquared.generate(o,i.globals.gridWidth,i.globals.gridHeight).forEach((function(o,n){var l=a.group({class:\"apexcharts-series apexcharts-treemap-series\",seriesName:x.escapeString(i.globals.seriesNames[n]),rel:n+1,\"data:realIndex\":n});if(i.config.chart.dropShadow.enabled){var h=i.config.chart.dropShadow;new v(e.ctx).dropShadow(r,h,n)}var c=a.group({class:\"apexcharts-data-labels\"});o.forEach((function(r,o){var h=r[0],c=r[1],d=r[2],g=r[3],u=a.drawRect(h,c,d-h,g-c,0,\"#fff\",1,e.strokeWidth,i.config.plotOptions.treemap.useFillColorAsStroke?f:i.globals.stroke.colors[n]);u.attr({cx:h,cy:c,index:n,i:n,j:o,width:d-h,height:g-c});var p=e.helpers.getShadeColor(i.config.chart.type,n,o,e.negRange),f=p.color;void 0!==i.config.series[n].data[o]&&i.config.series[n].data[o].fillColor&&(f=i.config.series[n].data[o].fillColor);var x=s.fillPath({color:f,seriesNumber:n,dataPointIndex:o});u.node.classList.add(\"apexcharts-treemap-rect\"),u.attr({fill:x}),e.helpers.addListeners(u);var b={x:h+(d-h)/2,y:c+(g-c)/2,width:0,height:0},v={x:h,y:c,width:d-h,height:g-c};if(i.config.chart.animations.enabled&&!i.globals.dataChanged){var m=1;i.globals.resized||(m=i.config.chart.animations.speed),e.animateTreemap(u,b,v,m)}if(i.globals.dataChanged){var y=1;e.dynamicAnim.enabled&&i.globals.shouldAnimate&&(y=e.dynamicAnim.speed,i.globals.previousPaths[n]&&i.globals.previousPaths[n][o]&&i.globals.previousPaths[n][o].rect&&(b=i.globals.previousPaths[n][o].rect),e.animateTreemap(u,b,v,y))}var w=e.getFontSize(r),k=i.config.dataLabels.formatter(e.labels[n][o],{value:i.globals.series[n][o],seriesIndex:n,dataPointIndex:o,w:i}),A=e.helpers.calculateDataLabels({text:k,x:(h+d)/2,y:(c+g)/2+e.strokeWidth/2+w/3,i:n,j:o,colorProps:p,fontSize:w,series:t});i.config.dataLabels.enabled&&A&&e.rotateToFitLabel(A,w,k,h,c,d,g),l.add(u),null!==A&&l.add(A)})),l.add(c),r.add(l)})),r}},{key:\"getFontSize\",value:function(t){var e=this.w;var i,a,s,r,o=function t(e){var i,a=0;if(Array.isArray(e[0]))for(i=0;i<e.length;i++)a+=t(e[i]);else for(i=0;i<e.length;i++)a+=e[i].length;return a}(this.labels)/function t(e){var i,a=0;if(Array.isArray(e[0]))for(i=0;i<e.length;i++)a+=t(e[i]);else for(i=0;i<e.length;i++)a+=1;return a}(this.labels);return i=t[2]-t[0],a=t[3]-t[1],s=i*a,r=Math.pow(s,.5),Math.min(r/o,parseInt(e.config.dataLabels.style.fontSize,10))}},{key:\"rotateToFitLabel\",value:function(t,e,i,a,s,r,o){var n=new m(this.ctx),l=n.getTextRects(i,e);if(l.width+this.w.config.stroke.width+5>r-a&&l.width<=o-s){var h=n.rotateAroundCenter(t.node);t.node.setAttribute(\"transform\",\"rotate(-90 \".concat(h.x,\" \").concat(h.y,\")\"))}}},{key:\"animateTreemap\",value:function(t,e,i,a){var s=new b(this.ctx);s.animateRect(t,{x:e.x,y:e.y,width:e.width,height:e.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,(function(){s.animationCompleted(t)}))}}]),t}(),Ft=86400,Rt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return r(t,[{key:\"calculateTimeScaleTicks\",value:function(t,i){var a=this,s=this.w;if(s.globals.allSeriesCollapsed)return s.globals.labels=[],s.globals.timescaleLabels=[],[];var r=new I(this.ctx),o=(i-t)/864e5;this.determineInterval(o),s.globals.disableZoomIn=!1,s.globals.disableZoomOut=!1,o<.00011574074074074075?s.globals.disableZoomIn=!0:o>5e4&&(s.globals.disableZoomOut=!0);var n=r.getTimeUnitsfromTimestamp(t,i,this.utc),l=s.globals.gridWidth/o,h=l/24,c=h/60,d=c/60,g=Math.floor(24*o),u=Math.floor(1440*o),p=Math.floor(o*Ft),f=Math.floor(o),x=Math.floor(o/30),b=Math.floor(o/365),v={minMillisecond:n.minMillisecond,minSecond:n.minSecond,minMinute:n.minMinute,minHour:n.minHour,minDate:n.minDate,minMonth:n.minMonth,minYear:n.minYear},m={firstVal:v,currentMillisecond:v.minMillisecond,currentSecond:v.minSecond,currentMinute:v.minMinute,currentHour:v.minHour,currentMonthDate:v.minDate,currentDate:v.minDate,currentMonth:v.minMonth,currentYear:v.minYear,daysWidthOnXAxis:l,hoursWidthOnXAxis:h,minutesWidthOnXAxis:c,secondsWidthOnXAxis:d,numberOfSeconds:p,numberOfMinutes:u,numberOfHours:g,numberOfDays:f,numberOfMonths:x,numberOfYears:b};switch(this.tickInterval){case\"years\":this.generateYearScale(m);break;case\"months\":case\"half_year\":this.generateMonthScale(m);break;case\"months_days\":case\"months_fortnight\":case\"days\":case\"week_days\":this.generateDayScale(m);break;case\"hours\":this.generateHourScale(m);break;case\"minutes_fives\":case\"minutes\":this.generateMinuteScale(m);break;case\"seconds_tens\":case\"seconds_fives\":case\"seconds\":this.generateSecondScale(m)}var y=this.timeScaleArray.map((function(t){var i={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return\"month\"===t.unit?e(e({},i),{},{day:1,value:t.value+1}):\"day\"===t.unit||\"hour\"===t.unit?e(e({},i),{},{value:t.value}):\"minute\"===t.unit?e(e({},i),{},{value:t.value,minute:t.value}):\"second\"===t.unit?e(e({},i),{},{value:t.value,minute:t.minute,second:t.second}):t}));return y.filter((function(t){var e=1,i=Math.ceil(s.globals.gridWidth/120),r=t.value;void 0!==s.config.xaxis.tickAmount&&(i=s.config.xaxis.tickAmount),y.length>i&&(e=Math.floor(y.length/i));var o=!1,n=!1;switch(a.tickInterval){case\"years\":\"year\"===t.unit&&(o=!0);break;case\"half_year\":e=7,\"year\"===t.unit&&(o=!0);break;case\"months\":e=1,\"year\"===t.unit&&(o=!0);break;case\"months_fortnight\":e=15,\"year\"!==t.unit&&\"month\"!==t.unit||(o=!0),30===r&&(n=!0);break;case\"months_days\":e=10,\"month\"===t.unit&&(o=!0),30===r&&(n=!0);break;case\"week_days\":e=8,\"month\"===t.unit&&(o=!0);break;case\"days\":e=1,\"month\"===t.unit&&(o=!0);break;case\"hours\":\"day\"===t.unit&&(o=!0);break;case\"minutes_fives\":case\"seconds_fives\":r%5!=0&&(n=!0);break;case\"seconds_tens\":r%10!=0&&(n=!0)}if(\"hours\"===a.tickInterval||\"minutes_fives\"===a.tickInterval||\"seconds_tens\"===a.tickInterval||\"seconds_fives\"===a.tickInterval){if(!n)return!0}else if((r%e==0||o)&&!n)return!0}))}},{key:\"recalcDimensionsBasedOnFormat\",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new ot(this.ctx).plotCoords()}},{key:\"determineInterval\",value:function(t){var e=24*t,i=60*e;switch(!0){case t/365>5:this.tickInterval=\"years\";break;case t>800:this.tickInterval=\"half_year\";break;case t>180:this.tickInterval=\"months\";break;case t>90:this.tickInterval=\"months_fortnight\";break;case t>60:this.tickInterval=\"months_days\";break;case t>30:this.tickInterval=\"week_days\";break;case t>2:this.tickInterval=\"days\";break;case e>2.4:this.tickInterval=\"hours\";break;case i>15:this.tickInterval=\"minutes_fives\";break;case i>5:this.tickInterval=\"minutes\";break;case i>1:this.tickInterval=\"seconds_tens\";break;case 60*i>20:this.tickInterval=\"seconds_fives\";break;default:this.tickInterval=\"seconds\"}}},{key:\"generateYearScale\",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,r=t.numberOfYears,o=e.minYear,n=0,l=new I(this.ctx),h=\"year\";if(e.minDate>1||e.minMonth>0){var c=l.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);n=(l.determineDaysOfYear(e.minYear)-c+1)*s,o=e.minYear+1,this.timeScaleArray.push({position:n,value:o,unit:h,year:o,month:x.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:n,value:o,unit:h,year:a,month:x.monthMod(i+1)});for(var d=o,g=n,u=0;u<r;u++)d++,g=l.determineDaysOfYear(d-1)*s+g,this.timeScaleArray.push({position:g,value:d,unit:h,year:d,month:1})}},{key:\"generateMonthScale\",value:function(t){var e=t.firstVal,i=t.currentMonthDate,a=t.currentMonth,s=t.currentYear,r=t.daysWidthOnXAxis,o=t.numberOfMonths,n=a,l=0,h=new I(this.ctx),c=\"month\",d=0;if(e.minDate>1){l=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*r,n=x.monthMod(a+1);var g=s+d,u=x.monthMod(n),p=n;0===n&&(c=\"year\",p=g,u=1,g+=d+=1),this.timeScaleArray.push({position:l,value:p,unit:c,year:g,month:u})}else this.timeScaleArray.push({position:l,value:n,unit:c,year:s,month:x.monthMod(a)});for(var f=n+1,b=l,v=0,m=1;v<o;v++,m++){0===(f=x.monthMod(f))?(c=\"year\",d+=1):c=\"month\";var y=this._getYear(s,f,d);b=h.determineDaysOfMonths(f,y)*r+b;var w=0===f?y:f;this.timeScaleArray.push({position:b,value:w,unit:c,year:y,month:0===f?1:f}),f++}}},{key:\"generateDayScale\",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.hoursWidthOnXAxis,r=t.numberOfDays,o=new I(this.ctx),n=\"day\",l=e.minDate+1,h=l,c=function(t,e,i){return t>o.determineDaysOfMonths(e+1,i)?(h=1,n=\"month\",g=e+=1,e):e},d=(24-e.minHour)*s,g=l,u=c(h,i,a);0===e.minHour&&1===e.minDate?(d=0,g=x.monthMod(e.minMonth),n=\"month\",h=e.minDate,r++):1!==e.minDate&&0===e.minHour&&0===e.minMinute&&(d=0,l=e.minDate,g=l,u=c(h=l,i,a)),this.timeScaleArray.push({position:d,value:g,unit:n,year:this._getYear(a,u,0),month:x.monthMod(u),day:h});for(var p=d,f=0;f<r;f++){n=\"day\",u=c(h+=1,u,this._getYear(a,u,0));var b=this._getYear(a,u,0);p=24*s+p;var v=1===h?x.monthMod(u):h;this.timeScaleArray.push({position:p,value:v,unit:n,year:b,month:x.monthMod(u),day:v})}}},{key:\"generateHourScale\",value:function(t){var e=t.firstVal,i=t.currentDate,a=t.currentMonth,s=t.currentYear,r=t.minutesWidthOnXAxis,o=t.numberOfHours,n=new I(this.ctx),l=\"hour\",h=function(t,e){return t>n.determineDaysOfMonths(e+1,s)&&(f=1,e+=1),{month:e,date:f}},c=function(t,e){return t>n.determineDaysOfMonths(e+1,s)?e+=1:e},d=60-(e.minMinute+e.minSecond/60),g=d*r,u=e.minHour+1,p=u+1;60===d&&(g=0,p=(u=e.minHour)+1);var f=i,b=c(f,a);this.timeScaleArray.push({position:g,value:u,unit:l,day:f,hour:p,year:s,month:x.monthMod(b)});for(var v=g,m=0;m<o;m++){if(l=\"hour\",p>=24)p=0,l=\"day\",b=h(f+=1,b).month,b=c(f,b);var y=this._getYear(s,b,0);v=60*r+v;var w=0===p?f:p;this.timeScaleArray.push({position:v,value:w,unit:l,hour:p,day:f,year:y,month:x.monthMod(b)}),p++}}},{key:\"generateMinuteScale\",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.minutesWidthOnXAxis,h=t.secondsWidthOnXAxis,c=t.numberOfMinutes,d=a+1,g=r,u=o,p=n,f=s,b=(60-i-e/1e3)*h,v=0;v<c;v++)d>=60&&(d=0,24===(f+=1)&&(f=0)),this.timeScaleArray.push({position:b,value:d,unit:\"minute\",hour:f,minute:d,day:g,year:this._getYear(p,u,0),month:x.monthMod(u)}),b+=l,d++}},{key:\"generateSecondScale\",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.secondsWidthOnXAxis,h=t.numberOfSeconds,c=i+1,d=a,g=r,u=o,p=n,f=s,b=(1e3-e)/1e3*l,v=0;v<h;v++)c>=60&&(c=0,++d>=60&&(d=0,24===++f&&(f=0))),this.timeScaleArray.push({position:b,value:c,unit:\"second\",hour:f,minute:d,second:c,day:g,year:this._getYear(p,u,0),month:x.monthMod(u)}),b+=l,c++}},{key:\"createRawDateString\",value:function(t,e){var i=t.year;return 0===t.month&&(t.month=1),i+=\"-\"+(\"0\"+t.month.toString()).slice(-2),\"day\"===t.unit?i+=\"day\"===t.unit?\"-\"+(\"0\"+e).slice(-2):\"-01\":i+=\"-\"+(\"0\"+(t.day?t.day:\"1\")).slice(-2),\"hour\"===t.unit?i+=\"hour\"===t.unit?\"T\"+(\"0\"+e).slice(-2):\"T00\":i+=\"T\"+(\"0\"+(t.hour?t.hour:\"0\")).slice(-2),\"minute\"===t.unit?i+=\":\"+(\"0\"+e).slice(-2):i+=\":\"+(t.minute?(\"0\"+t.minute).slice(-2):\"00\"),\"second\"===t.unit?i+=\":\"+(\"0\"+e).slice(-2):i+=\":00\",this.utc&&(i+=\".000Z\"),i}},{key:\"formatDates\",value:function(t){var e=this,i=this.w;return t.map((function(t){var a=t.value.toString(),s=new I(e.ctx),r=e.createRawDateString(t,a),o=s.getDate(s.parseDate(r));if(e.utc||(o=s.getDate(s.parseDateWithTimezone(r))),void 0===i.config.xaxis.labels.format){var n=\"dd MMM\",l=i.config.xaxis.labels.datetimeFormatter;\"year\"===t.unit&&(n=l.year),\"month\"===t.unit&&(n=l.month),\"day\"===t.unit&&(n=l.day),\"hour\"===t.unit&&(n=l.hour),\"minute\"===t.unit&&(n=l.minute),\"second\"===t.unit&&(n=l.second),a=s.formatDate(o,n)}else a=s.formatDate(o,i.config.xaxis.labels.format);return{dateString:r,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}}))}},{key:\"removeOverlappingTS\",value:function(t){var e,i=this,a=new m(this.ctx),s=!1;t.length>0&&t[0].value&&t.every((function(e){return e.value.length===t[0].value.length}))&&(s=!0,e=a.getTextRects(t[0].value).width);var r=0,o=t.map((function(o,n){if(n>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var l=s?e:a.getTextRects(t[r].value).width,h=t[r].position;return o.position>h+l+10?(r=n,o):null}return o}));return o=o.filter((function(t){return null!==t}))}},{key:\"_getYear\",value:function(t,e,i){return t+Math.floor(e/12)+i}}]),t}(),Ht=function(){function t(e,i){a(this,t),this.ctx=i,this.w=i.w,this.el=e}return r(t,[{key:\"setupElements\",value:function(){var t=this.w.globals,e=this.w.config,i=e.chart.type;t.axisCharts=[\"line\",\"area\",\"bar\",\"rangeBar\",\"rangeArea\",\"candlestick\",\"boxPlot\",\"scatter\",\"bubble\",\"radar\",\"heatmap\",\"treemap\"].indexOf(i)>-1,t.xyCharts=[\"line\",\"area\",\"bar\",\"rangeBar\",\"rangeArea\",\"candlestick\",\"boxPlot\",\"scatter\",\"bubble\"].indexOf(i)>-1,t.isBarHorizontal=(\"bar\"===e.chart.type||\"rangeBar\"===e.chart.type||\"boxPlot\"===e.chart.type)&&e.plotOptions.bar.horizontal,t.chartClass=\".apexcharts\"+t.chartID,t.dom.baseEl=this.el,t.dom.elWrap=document.createElement(\"div\"),m.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:\"apexcharts-canvas \"+t.chartClass.substring(1)}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=new window.SVG.Doc(t.dom.elWrap),t.dom.Paper.attr({class:\"apexcharts-svg\",\"xmlns:data\":\"ApexChartsNS\",transform:\"translate(\".concat(e.chart.offsetX,\", \").concat(e.chart.offsetY,\")\")}),t.dom.Paper.node.style.background=e.chart.background,this.setSVGDimensions(),t.dom.elLegendForeign=document.createElementNS(t.SVGNS,\"foreignObject\"),m.setAttrs(t.dom.elLegendForeign,{x:0,y:0,width:t.svgWidth,height:t.svgHeight}),t.dom.elLegendWrap=document.createElement(\"div\"),t.dom.elLegendWrap.classList.add(\"apexcharts-legend\"),t.dom.elLegendWrap.setAttribute(\"xmlns\",\"http://www.w3.org/1999/xhtml\"),t.dom.elLegendForeign.appendChild(t.dom.elLegendWrap),t.dom.Paper.node.appendChild(t.dom.elLegendForeign),t.dom.elGraphical=t.dom.Paper.group().attr({class:\"apexcharts-inner apexcharts-graphical\"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:\"plotChartType\",value:function(t,e){var i=this.w,a=i.config,s=i.globals,r={series:[],i:[]},o={series:[],i:[]},n={series:[],i:[]},l={series:[],i:[]},h={series:[],i:[]},c={series:[],i:[]},d={series:[],i:[]},g={series:[],i:[]},u={series:[],seriesRangeEnd:[],i:[]};s.series.map((function(e,p){var f=0;void 0!==t[p].type?(\"column\"===t[p].type||\"bar\"===t[p].type?(s.series.length>1&&a.plotOptions.bar.horizontal&&console.warn(\"Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`\"),h.series.push(e),h.i.push(p),f++,i.globals.columnSeries=h.series):\"area\"===t[p].type?(o.series.push(e),o.i.push(p),f++):\"line\"===t[p].type?(r.series.push(e),r.i.push(p),f++):\"scatter\"===t[p].type?(n.series.push(e),n.i.push(p)):\"bubble\"===t[p].type?(l.series.push(e),l.i.push(p),f++):\"candlestick\"===t[p].type?(c.series.push(e),c.i.push(p),f++):\"boxPlot\"===t[p].type?(d.series.push(e),d.i.push(p),f++):\"rangeBar\"===t[p].type?(g.series.push(e),g.i.push(p),f++):\"rangeArea\"===t[p].type?(u.series.push(s.seriesRangeStart[p]),u.seriesRangeEnd.push(s.seriesRangeEnd[p]),u.i.push(p),f++):console.warn(\"You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble/candlestick/boxPlot/rangeBar/rangeArea\"),f>1&&(s.comboCharts=!0)):(r.series.push(e),r.i.push(p))}));var p=new Xt(this.ctx,e),f=new kt(this.ctx,e);this.ctx.pie=new Lt(this.ctx);var x=new It(this.ctx);this.ctx.rangeBar=new Tt(this.ctx,e);var b=new Pt(this.ctx),v=[];if(s.comboCharts){if(o.series.length>0&&v.push(p.draw(o.series,\"area\",o.i)),h.series.length>0)if(i.config.chart.stacked){var m=new wt(this.ctx,e);v.push(m.draw(h.series,h.i))}else this.ctx.bar=new yt(this.ctx,e),v.push(this.ctx.bar.draw(h.series,h.i));if(u.series.length>0&&v.push(p.draw(u.series,\"rangeArea\",u.i,u.seriesRangeEnd)),r.series.length>0&&v.push(p.draw(r.series,\"line\",r.i)),c.series.length>0&&v.push(f.draw(c.series,\"candlestick\",c.i)),d.series.length>0&&v.push(f.draw(d.series,\"boxPlot\",d.i)),g.series.length>0&&v.push(this.ctx.rangeBar.draw(g.series,g.i)),n.series.length>0){var y=new Xt(this.ctx,e,!0);v.push(y.draw(n.series,\"scatter\",n.i))}if(l.series.length>0){var w=new Xt(this.ctx,e,!0);v.push(w.draw(l.series,\"bubble\",l.i))}}else switch(a.chart.type){case\"line\":v=p.draw(s.series,\"line\");break;case\"area\":v=p.draw(s.series,\"area\");break;case\"bar\":if(a.chart.stacked)v=new wt(this.ctx,e).draw(s.series);else this.ctx.bar=new yt(this.ctx,e),v=this.ctx.bar.draw(s.series);break;case\"candlestick\":v=new kt(this.ctx,e).draw(s.series,\"candlestick\");break;case\"boxPlot\":v=new kt(this.ctx,e).draw(s.series,a.chart.type);break;case\"rangeBar\":v=this.ctx.rangeBar.draw(s.series);break;case\"rangeArea\":v=p.draw(s.seriesRangeStart,\"rangeArea\",void 0,s.seriesRangeEnd);break;case\"heatmap\":v=new St(this.ctx,e).draw(s.series);break;case\"treemap\":v=new Yt(this.ctx,e).draw(s.series);break;case\"pie\":case\"donut\":case\"polarArea\":v=this.ctx.pie.draw(s.series);break;case\"radialBar\":v=x.draw(s.series);break;case\"radar\":v=b.draw(s.series);break;default:v=p.draw(s.series)}return v}},{key:\"setSVGDimensions\",value:function(){var t=this.w.globals,e=this.w.config;t.svgWidth=e.chart.width,t.svgHeight=e.chart.height;var i=x.getDimensions(this.el),a=e.chart.width.toString().split(/[0-9]+/g).pop();\"%\"===a?x.isNumber(i[0])&&(0===i[0].width&&(i=x.getDimensions(this.el.parentNode)),t.svgWidth=i[0]*parseInt(e.chart.width,10)/100):\"px\"!==a&&\"\"!==a||(t.svgWidth=parseInt(e.chart.width,10));var s=e.chart.height.toString().split(/[0-9]+/g).pop();if(\"auto\"!==t.svgHeight&&\"\"!==t.svgHeight)if(\"%\"===s){var r=x.getDimensions(this.el.parentNode);t.svgHeight=r[1]*parseInt(e.chart.height,10)/100}else t.svgHeight=parseInt(e.chart.height,10);else t.axisCharts?t.svgHeight=t.svgWidth/1.61:t.svgHeight=t.svgWidth/1.2;if(t.svgWidth<0&&(t.svgWidth=0),t.svgHeight<0&&(t.svgHeight=0),m.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight}),\"%\"!==s){var o=e.chart.sparkline.enabled?0:t.axisCharts?e.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight=t.svgHeight+o+\"px\"}t.dom.elWrap.style.width=t.svgWidth+\"px\",t.dom.elWrap.style.height=t.svgHeight+\"px\"}},{key:\"shiftGraphPosition\",value:function(){var t=this.w.globals,e=t.translateY,i={transform:\"translate(\"+t.translateX+\", \"+e+\")\"};m.setAttrs(t.dom.elGraphical.node,i)}},{key:\"resizeNonAxisCharts\",value:function(){var t=this.w,e=t.globals,i=0,a=t.config.chart.sparkline.enabled?1:15;a+=t.config.grid.padding.bottom,\"top\"!==t.config.legend.position&&\"bottom\"!==t.config.legend.position||!t.config.legend.show||t.config.legend.floating||(i=new lt(this.ctx).legendHelpers.getLegendBBox().clwh+10);var s=t.globals.dom.baseEl.querySelector(\".apexcharts-radialbar, .apexcharts-pie\"),r=2.05*t.globals.radialSize;if(s&&!t.config.chart.sparkline.enabled&&0!==t.config.plotOptions.radialBar.startAngle){var o=x.getBoundingClientRect(s);r=o.bottom;var n=o.bottom-o.top;r=Math.max(2.05*t.globals.radialSize,n)}var l=r+e.translateY+i+a;e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute(\"height\",l),t.config.chart.height&&String(t.config.chart.height).indexOf(\"%\")>0||(e.dom.elWrap.style.height=l+\"px\",m.setAttrs(e.dom.Paper.node,{height:l}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=l+\"px\")}},{key:\"coreCalculations\",value:function(){new U(this.ctx).init()}},{key:\"resetGlobals\",value:function(){var t=this,e=function(){return t.w.config.series.map((function(t){return[]}))},i=new Y,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=e(),a.seriesYvalues=e()}},{key:\"isMultipleY\",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:\"xySettings\",value:function(){var t=null,e=this.w;if(e.globals.axisCharts){if(\"back\"===e.config.xaxis.crosshairs.position)new Q(this.ctx).drawXCrosshairs();if(\"back\"===e.config.yaxis[0].crosshairs.position)new Q(this.ctx).drawYCrosshairs();if(\"datetime\"===e.config.xaxis.type&&void 0===e.config.xaxis.labels.formatter){this.ctx.timeScale=new Rt(this.ctx);var i=[];isFinite(e.globals.minX)&&isFinite(e.globals.maxX)&&!e.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX,e.globals.maxX):e.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY,e.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}t=new y(this.ctx).getCalculatedRatios()}return t}},{key:\"updateSourceChart\",value:function(t){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:t.w.globals.minX,max:t.w.globals.maxX}}}},!1,!1)}},{key:\"setupBrushHandler\",value:function(){var t=this,i=this.w;if(i.config.chart.brush.enabled&&\"function\"!=typeof i.config.chart.events.selection){var a=i.config.chart.brush.targets||[i.config.chart.brush.target];a.forEach((function(e){var i=ApexCharts.getChartByID(e);i.w.globals.brushSource=t.ctx,\"function\"!=typeof i.w.config.chart.events.zoomed&&(i.w.config.chart.events.zoomed=function(){t.updateSourceChart(i)}),\"function\"!=typeof i.w.config.chart.events.scrolled&&(i.w.config.chart.events.scrolled=function(){t.updateSourceChart(i)})})),i.config.chart.events.selection=function(t,s){a.forEach((function(t){var a=ApexCharts.getChartByID(t),r=x.clone(i.config.yaxis);if(i.config.chart.brush.autoScaleYaxis&&1===a.w.globals.series.length){var o=new _(a);r=o.autoScaleY(a,r,s)}var n=a.w.config.yaxis.reduce((function(t,i,s){return[].concat(u(t),[e(e({},a.w.config.yaxis[s]),{},{min:r[0].min,max:r[0].max})])}),[]);a.ctx.updateHelpers._updateOptions({xaxis:{min:s.xaxis.min,max:s.xaxis.max},yaxis:n},!1,!1,!1,!1)}))}}}}]),t}(),Dt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"_updateOptions\",value:function(t){var e=this,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return new Promise((function(n){var l=[e.ctx];r&&(l=e.ctx.getSyncedCharts()),e.ctx.w.globals.isExecCalled&&(l=[e.ctx],e.ctx.w.globals.isExecCalled=!1),l.forEach((function(r,h){var c=r.w;if(c.globals.shouldAnimate=s,a||(c.globals.resized=!0,c.globals.dataChanged=!0,s&&r.series.getPreviousPaths()),t&&\"object\"===i(t)&&(r.config=new E(t),t=y.extendArrayProps(r.config,t,c),r.w.globals.chartID!==e.ctx.w.globals.chartID&&delete t.series,c.config=x.extend(c.config,t),o&&(c.globals.lastXAxis=t.xaxis?x.clone(t.xaxis):[],c.globals.lastYAxis=t.yaxis?x.clone(t.yaxis):[],c.globals.initialConfig=x.extend({},c.config),c.globals.initialSeries=x.clone(c.config.series),t.series))){for(var d=0;d<c.globals.collapsedSeriesIndices.length;d++){var g=c.config.series[c.globals.collapsedSeriesIndices[d]];c.globals.collapsedSeries[d].data=c.globals.axisCharts?g.data.slice():g}for(var u=0;u<c.globals.ancillaryCollapsedSeriesIndices.length;u++){var p=c.config.series[c.globals.ancillaryCollapsedSeriesIndices[u]];c.globals.ancillaryCollapsedSeries[u].data=c.globals.axisCharts?p.data.slice():p}r.series.emptyCollapsedSeries(c.config.series)}return r.update(t).then((function(){h===l.length-1&&n(r)}))}))}))}},{key:\"_updateSeries\",value:function(t,e){var i=this,a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return new Promise((function(s){var r,o=i.w;return o.globals.shouldAnimate=e,o.globals.dataChanged=!0,e&&i.ctx.series.getPreviousPaths(),o.globals.axisCharts?(0===(r=t.map((function(t,e){return i._extendSeries(t,e)}))).length&&(r=[{data:[]}]),o.config.series=r):o.config.series=t.slice(),a&&(o.globals.initialConfig.series=x.clone(o.config.series),o.globals.initialSeries=x.clone(o.config.series)),i.ctx.update().then((function(){s(i.ctx)}))}))}},{key:\"_extendSeries\",value:function(t,i){var a=this.w,s=a.config.series[i];return e(e({},a.config.series[i]),{},{name:t.name?t.name:s&&s.name,color:t.color?t.color:s&&s.color,type:t.type?t.type:s&&s.type,data:t.data?t.data:s&&s.data})}},{key:\"toggleDataPointSelection\",value:function(t,e){var i=this.w,a=null,s=\".apexcharts-series[data\\\\:realIndex='\".concat(t,\"']\");return i.globals.axisCharts?a=i.globals.dom.Paper.select(\"\".concat(s,\" path[j='\").concat(e,\"'], \").concat(s,\" circle[j='\").concat(e,\"'], \").concat(s,\" rect[j='\").concat(e,\"']\")).members[0]:void 0===e&&(a=i.globals.dom.Paper.select(\"\".concat(s,\" path[j='\").concat(t,\"']\")).members[0],\"pie\"!==i.config.chart.type&&\"polarArea\"!==i.config.chart.type&&\"donut\"!==i.config.chart.type||this.ctx.pie.pieClicked(t)),a?(new m(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn(\"toggleDataPointSelection: Element not found\"),null)}},{key:\"forceXAxisUpdate\",value:function(t){var e=this.w;if([\"min\",\"max\"].forEach((function(i){void 0!==t.xaxis[i]&&(e.config.xaxis[i]=t.xaxis[i],e.globals.lastXAxis[i]=t.xaxis[i])})),t.xaxis.categories&&t.xaxis.categories.length&&(e.config.xaxis.categories=t.xaxis.categories),e.config.xaxis.convertedCatToNumeric){var i=new z(t);t=i.convertCatToNumericXaxis(t,this.ctx)}return t}},{key:\"forceYAxisUpdate\",value:function(t){return t.chart&&t.chart.stacked&&\"100%\"===t.chart.stackType&&(Array.isArray(t.yaxis)?t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})):(t.yaxis.min=0,t.yaxis.max=100)),t}},{key:\"revertDefaultAxisMinMax\",value:function(t){var e=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;t&&t.xaxis&&(a=t.xaxis),t&&t.yaxis&&(s=t.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(t){void 0!==s[t]&&(i.config.yaxis[t].min=s[t].min,i.config.yaxis[t].max=s[t].max)};i.config.yaxis.map((function(t,a){i.globals.zoomed||void 0!==s[a]?r(a):void 0!==e.ctx.opts.yaxis[a]&&(t.min=e.ctx.opts.yaxis[a].min,t.max=e.ctx.opts.yaxis[a].max)}))}}]),t}();zt=\"undefined\"!=typeof window?window:void 0,Et=function(t,e){var a=(void 0!==this?this:t).SVG=function(t){if(a.supported)return t=new a.Doc(t),a.parser.draw||a.prepare(),t};if(a.ns=\"http://www.w3.org/2000/svg\",a.xmlns=\"http://www.w3.org/2000/xmlns/\",a.xlink=\"http://www.w3.org/1999/xlink\",a.svgjs=\"http://svgjs.dev\",a.supported=!0,!a.supported)return!1;a.did=1e3,a.eid=function(t){return\"Svgjs\"+d(t)+a.did++},a.create=function(t){var i=e.createElementNS(this.ns,t);return i.setAttribute(\"id\",this.eid(t)),i},a.extend=function(){var t,e;e=(t=[].slice.call(arguments)).pop();for(var i=t.length-1;i>=0;i--)if(t[i])for(var s in e)t[i].prototype[s]=e[s];a.Set&&a.Set.inherit&&a.Set.inherit()},a.invent=function(t){var e=\"function\"==typeof t.create?t.create:function(){this.constructor.call(this,a.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&a.extend(e,t.extend),t.construct&&a.extend(t.parent||a.Container,t.construct),e},a.adopt=function(e){return e?e.instance?e.instance:((i=\"svg\"==e.nodeName?e.parentNode instanceof t.SVGElement?new a.Nested:new a.Doc:\"linearGradient\"==e.nodeName?new a.Gradient(\"linear\"):\"radialGradient\"==e.nodeName?new a.Gradient(\"radial\"):a[d(e.nodeName)]?new(a[d(e.nodeName)]):new a.Element(e)).type=e.nodeName,i.node=e,e.instance=i,i instanceof a.Doc&&i.namespace().defs(),i.setData(JSON.parse(e.getAttribute(\"svgjs:data\"))||{}),i):null;var i},a.prepare=function(){var t=e.getElementsByTagName(\"body\")[0],i=(t?new a.Doc(t):a.adopt(e.documentElement).nested()).size(2,0);a.parser={body:t||e.documentElement,draw:i.style(\"opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden\").node,poly:i.polyline().node,path:i.path().node,native:a.create(\"svg\")}},a.parser={native:a.create(\"svg\")},e.addEventListener(\"DOMContentLoaded\",(function(){a.parser.draw||a.prepare()}),!1),a.regex={numberAndUnit:/^([+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,rgb:/rgb\\((\\d+),(\\d+),(\\d+)\\)/,reference:/#([a-z0-9\\-_]+)/i,transforms:/\\)\\s*,?\\s*/,whitespace:/\\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\\s+)?$/,isNumber:/^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,isPercent:/^-?[\\d\\.]+%$/,isImage:/\\.(jpg|jpeg|png|gif|svg)(\\?[^=]+.*)?/i,delimiter:/[\\s,]+/,hyphen:/([^e])\\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\\d?\\.\\d+(?:e[+-]?\\d+)?)((?:\\.\\d+(?:e[+-]?\\d+)?)+))+/gi,dots:/\\./g},a.utils={map:function(t,e){for(var i=t.length,a=[],s=0;s<i;s++)a.push(e(t[s]));return a},filter:function(t,e){for(var i=t.length,a=[],s=0;s<i;s++)e(t[s])&&a.push(t[s]);return a},filterSVGElements:function(e){return this.filter(e,(function(e){return e instanceof t.SVGElement}))}},a.defaults={attrs:{\"fill-opacity\":1,\"stroke-opacity\":1,\"stroke-width\":0,\"stroke-linejoin\":\"miter\",\"stroke-linecap\":\"butt\",fill:\"#000000\",stroke:\"#000000\",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,\"stop-opacity\":1,\"stop-color\":\"#000000\",\"font-size\":16,\"font-family\":\"Helvetica, Arial, sans-serif\",\"text-anchor\":\"start\"}},a.Color=function(t){var e,s;this.r=0,this.g=0,this.b=0,t&&(\"string\"==typeof t?a.regex.isRgb.test(t)?(e=a.regex.rgb.exec(t.replace(a.regex.whitespace,\"\")),this.r=parseInt(e[1]),this.g=parseInt(e[2]),this.b=parseInt(e[3])):a.regex.isHex.test(t)&&(e=a.regex.hex.exec(4==(s=t).length?[\"#\",s.substring(1,2),s.substring(1,2),s.substring(2,3),s.substring(2,3),s.substring(3,4),s.substring(3,4)].join(\"\"):s),this.r=parseInt(e[1],16),this.g=parseInt(e[2],16),this.b=parseInt(e[3],16)):\"object\"===i(t)&&(this.r=t.r,this.g=t.g,this.b=t.b))},a.extend(a.Color,{toString:function(){return this.toHex()},toHex:function(){return\"#\"+g(this.r)+g(this.g)+g(this.b)},toRgb:function(){return\"rgb(\"+[this.r,this.g,this.b].join()+\")\"},brightness:function(){return this.r/255*.3+this.g/255*.59+this.b/255*.11},morph:function(t){return this.destination=new a.Color(t),this},at:function(t){return this.destination?(t=t<0?0:t>1?1:t,new a.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),a.Color.test=function(t){return t+=\"\",a.regex.isHex.test(t)||a.regex.isRgb.test(t)},a.Color.isRgb=function(t){return t&&\"number\"==typeof t.r&&\"number\"==typeof t.g&&\"number\"==typeof t.b},a.Color.isColor=function(t){return a.Color.isRgb(t)||a.Color.test(t)},a.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},a.extend(a.Array,{toString:function(){return this.value.join(\" \")},valueOf:function(){return this.value},parse:function(t){return t=t.valueOf(),Array.isArray(t)?t:this.split(t)}}),a.PointArray=function(t,e){a.Array.call(this,t,e||[[0,0]])},a.PointArray.prototype=new a.Array,a.PointArray.prototype.constructor=a.PointArray;for(var s={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.y=t[1],[\"M\",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],[\"L\",t[0],t[1]]},H:function(t,e){return e.x=t[0],[\"H\",t[0]]},V:function(t,e){return e.y=t[0],[\"V\",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],[\"C\",t[0],t[1],t[2],t[3],t[4],t[5]]},Q:function(t,e){return e.x=t[2],e.y=t[3],[\"Q\",t[0],t[1],t[2],t[3]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,[\"Z\"]}},r=\"mlhvqtcsaz\".split(\"\"),o=0,n=r.length;o<n;++o)s[r[o]]=function(t){return function(e,i,a){if(\"H\"==t)e[0]=e[0]+i.x;else if(\"V\"==t)e[0]=e[0]+i.y;else if(\"A\"==t)e[5]=e[5]+i.x,e[6]=e[6]+i.y;else for(var r=0,o=e.length;r<o;++r)e[r]=e[r]+(r%2?i.y:i.x);if(s&&\"function\"==typeof s[t])return s[t](e,i,a)}}(r[o].toUpperCase());a.PathArray=function(t,e){a.Array.call(this,t,e||[[\"M\",0,0]])},a.PathArray.prototype=new a.Array,a.PathArray.prototype.constructor=a.PathArray,a.extend(a.PathArray,{toString:function(){return function(t){for(var e=0,i=t.length,a=\"\";e<i;e++)a+=t[e][0],null!=t[e][1]&&(a+=t[e][1],null!=t[e][2]&&(a+=\" \",a+=t[e][2],null!=t[e][3]&&(a+=\" \",a+=t[e][3],a+=\" \",a+=t[e][4],null!=t[e][5]&&(a+=\" \",a+=t[e][5],a+=\" \",a+=t[e][6],null!=t[e][7]&&(a+=\" \",a+=t[e][7])))));return a+\" \"}(this.value)},move:function(t,e){var i=this.bbox();return i.x,i.y,this},at:function(t){if(!this.destination)return this;for(var e=this.value,i=this.destination.value,s=[],r=new a.PathArray,o=0,n=e.length;o<n;o++){s[o]=[e[o][0]];for(var l=1,h=e[o].length;l<h;l++)s[o][l]=e[o][l]+(i[o][l]-e[o][l])*t;\"A\"===s[o][0]&&(s[o][4]=+(0!=s[o][4]),s[o][5]=+(0!=s[o][5]))}return r.value=s,r},parse:function(t){if(t instanceof a.PathArray)return t.valueOf();var e,i={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0};t=\"string\"==typeof t?t.replace(a.regex.numbersWithDots,h).replace(a.regex.pathLetters,\" $& \").replace(a.regex.hyphen,\"$1 -\").trim().split(a.regex.delimiter):t.reduce((function(t,e){return[].concat.call(t,e)}),[]);var r=[],o=new a.Point,n=new a.Point,l=0,c=t.length;do{a.regex.isPathLetter.test(t[l])?(e=t[l],++l):\"M\"==e?e=\"L\":\"m\"==e&&(e=\"l\"),r.push(s[e].call(null,t.slice(l,l+=i[e.toUpperCase()]).map(parseFloat),o,n))}while(c>l);return r},bbox:function(){return a.parser.draw||a.prepare(),a.parser.path.setAttribute(\"d\",this.toString()),a.parser.path.getBBox()}}),a.Number=a.invent({create:function(t,e){this.value=0,this.unit=e||\"\",\"number\"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:\"string\"==typeof t?(e=t.match(a.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),\"%\"==e[5]?this.value/=100:\"s\"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof a.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return(\"%\"==this.unit?~~(1e8*this.value)/1e6:\"s\"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new a.Number(t),new a.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new a.Number(t),new a.Number(this-t,this.unit||t.unit)},times:function(t){return t=new a.Number(t),new a.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new a.Number(t),new a.Number(this/t,this.unit||t.unit)},to:function(t){var e=new a.Number(this);return\"string\"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new a.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new a.Number(this.destination).minus(this).times(t).plus(this):this}}}),a.Element=a.invent({create:function(t){this._stroke=a.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute(\"stroke\")||this._stroke)},extend:{x:function(t){return this.attr(\"x\",t)},y:function(t){return this.attr(\"y\",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr(\"width\",t)},height:function(t){return this.attr(\"height\",t)},size:function(t,e){var i=u(this,t,e);return this.width(new a.Number(i.width)).height(new a.Number(i.height))},clone:function(t){this.writeDataToDom();var e=x(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr(\"id\",t)},show:function(){return this.style(\"display\",\"\")},hide:function(){return this.style(\"display\",\"none\")},visible:function(){return\"none\"!=this.style(\"display\")},toString:function(){return this.attr(\"id\")},classes:function(){var t=this.attr(\"class\");return null==t?[]:t.trim().split(a.regex.delimiter)},hasClass:function(t){return-1!=this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){var e=this.classes();e.push(t),this.attr(\"class\",e.join(\" \"))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr(\"class\",this.classes().filter((function(e){return e!=t})).join(\" \")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)},reference:function(t){return a.get(this.attr(t))},parent:function(e){var i=this;if(!i.node.parentNode)return null;if(i=a.adopt(i.node.parentNode),!e)return i;for(;i&&i.node instanceof t.SVGElement;){if(\"string\"==typeof e?i.matches(e):i instanceof e)return i;if(!i.node.parentNode||\"#document\"==i.node.parentNode.nodeName)return null;i=a.adopt(i.node.parentNode)}},doc:function(){return this instanceof a.Doc?this:this.parent(a.Doc)},parents:function(t){var e=[],i=this;do{if(!(i=i.parent(t))||!i.node)break;e.push(i)}while(i.parent);return e},matches:function(t){return function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)}(this.node,t)},native:function(){return this.node},svg:function(t){var i=e.createElement(\"svg\");if(!(t&&this instanceof a.Parent))return i.appendChild(t=e.createElement(\"svg\")),this.writeDataToDom(),t.appendChild(this.node.cloneNode(!0)),i.innerHTML.replace(/^<svg>/,\"\").replace(/<\\/svg>$/,\"\");i.innerHTML=\"<svg>\"+t.replace(/\\n/,\"\").replace(/<([\\w:-]+)([^<]+?)\\/>/g,\"<$1$2></$1>\")+\"</svg>\";for(var s=0,r=i.firstChild.childNodes.length;s<r;s++)this.node.appendChild(i.firstChild.firstChild);return this},writeDataToDom:function(){return(this.each||this.lines)&&(this.each?this:this.lines()).each((function(){this.writeDataToDom()})),this.node.removeAttribute(\"svgjs:data\"),Object.keys(this.dom).length&&this.node.setAttribute(\"svgjs:data\",JSON.stringify(this.dom)),this},setData:function(t){return this.dom=t,this},is:function(t){return function(t,e){return t instanceof e}(this,t)}}}),a.easing={\"-\":function(t){return t},\"<>\":function(t){return-Math.cos(t*Math.PI)/2+.5},\">\":function(t){return Math.sin(t*Math.PI/2)},\"<\":function(t){return 1-Math.cos(t*Math.PI/2)}},a.morph=function(t){return function(e,i){return new a.MorphObj(e,i).at(t)}},a.Situation=a.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new a.Number(t.duration).valueOf(),this.delay=new a.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),a.FX=a.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(t,e,s){\"object\"===i(t)&&(e=t.ease,s=t.delay,t=t.duration);var r=new a.Situation({duration:t||1e3,delay:s||0,ease:a.easing[e||\"-\"]||e});return this.queue(r),this},target:function(t){return t&&t instanceof a.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=t.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){t.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return(\"function\"==typeof t||t instanceof a.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof a.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e=this.situation;if(e.init)return this;for(var i in e.animations){t=this.target()[i](),Array.isArray(t)||(t=[t]),Array.isArray(e.animations[i])||(e.animations[i]=[e.animations[i]]);for(var s=t.length;s--;)e.animations[i][s]instanceof a.Number&&(t[s]=new a.Number(t[s])),e.animations[i][s]=t[s].morph(e.animations[i][s])}for(var i in e.attrs)e.attrs[i]=new a.MorphObj(this.target().attr(i),e.attrs[i]);for(var i in e.styles)e.styles[i]=new a.MorphObj(this.target().style(i),e.styles[i]);return e.initialTransformation=this.target().matrixify(),e.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(t){var e=this.last();return this.target().on(\"finished.fx\",(function i(a){a.detail.situation==e&&(t.call(this,e),this.off(\"finished.fx\",i))})),this._callStart()},during:function(t){var e=this.last(),i=function(i){i.detail.situation==e&&t.call(this,i.detail.pos,a.morph(i.detail.pos),i.detail.eased,e)};return this.target().off(\"during.fx\",i).on(\"during.fx\",i),this.after((function(){this.off(\"during.fx\",i)})),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off(\"allfinished.fx\",e)};return this.target().off(\"allfinished.fx\",e).on(\"allfinished.fx\",e),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||\"animations\"][t]=e,this._callStart()},step:function(t){var e,i,a;t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||i<this.situation.loops?(this.pos=e-i,a=this.situation.loop,this.situation.loop=i):(this.absPos=this.situation.loops,this.pos=1,a=this.situation.loop-1,this.situation.loop=this.situation.loops),this.situation.reversing&&(this.situation.reversed=this.situation.reversed!=Boolean((this.situation.loop-a)%2))):(this.absPos=Math.min(this.absPos,1),this.pos=this.absPos),this.pos<0&&(this.pos=0),this.situation.reversed&&(this.pos=1-this.pos);var s=this.situation.ease(this.pos);for(var r in this.situation.once)r>this.lastPos&&r<=s&&(this.situation.once[r].call(this.target(),this.pos,s),delete this.situation.once[r]);return this.active&&this.target().fire(\"during\",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire(\"finished\",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire(\"allfinished\"),this.situations.length||(this.target().off(\".fx\"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e=this,i=this.target(),s=this.situation;for(var r in s.animations)t=[].concat(s.animations[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i[r].apply(i,t);for(var r in s.attrs)t=[r].concat(s.attrs[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.attr.apply(i,t);for(var r in s.styles)t=[r].concat(s.styles[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.style.apply(i,t);if(s.transforms.length){t=s.initialTransformation,r=0;for(var o=s.transforms.length;r<o;r++){var n=s.transforms[r];n instanceof a.Matrix?t=n.relative?t.multiply((new a.Matrix).morph(n).at(s.ease(this.pos))):t.morph(n).at(s.ease(this.pos)):(n.relative||n.undo(t.extract()),t=t.multiply(n.at(s.ease(this.pos))))}i.matrix(t)}return this},once:function(t,e,i){var a=this.last();return i||(t=a.ease(t)),a.once[t]=e,this},_callStart:function(){return setTimeout(function(){this.start()}.bind(this),0),this}},parent:a.Element,construct:{animate:function(t,e,i){return(this.fx||(this.fx=new a.FX(this))).animate(t,e,i)},delay:function(t){return(this.fx||(this.fx=new a.FX(this))).delay(t)},stop:function(t,e){return this.fx&&this.fx.stop(t,e),this},finish:function(){return this.fx&&this.fx.finish(),this}}}),a.MorphObj=a.invent({create:function(t,e){return a.Color.isColor(e)?new a.Color(t).morph(e):a.regex.delimiter.test(t)?a.regex.pathLetters.test(t)?new a.PathArray(t).morph(e):new a.Array(t).morph(e):a.regex.numberAndUnit.test(e)?new a.Number(t).morph(e):(this.value=t,void(this.destination=e))},extend:{at:function(t,e){return e<1?this.value:this.destination},valueOf:function(){return this.value}}}),a.extend(a.FX,{attr:function(t,e,a){if(\"object\"===i(t))for(var s in t)this.attr(s,t[s]);else this.add(t,e,\"attrs\");return this},plot:function(t,e,i,a){return 4==arguments.length?this.plot([t,e,i,a]):this.add(\"plot\",new(this.target().morphArray)(t))}}),a.Box=a.invent({create:function(t,e,s,r){if(!(\"object\"!==i(t)||t instanceof a.Element))return a.Box.call(this,null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height);var o;4==arguments.length&&(this.x=t,this.y=e,this.width=s,this.height=r),null==(o=this).x&&(o.x=0,o.y=0,o.width=0,o.height=0),o.w=o.width,o.h=o.height,o.x2=o.x+o.width,o.y2=o.y+o.height,o.cx=o.x+o.width/2,o.cy=o.y+o.height/2}}),a.BBox=a.invent({create:function(t){if(a.Box.apply(this,[].slice.call(arguments)),t instanceof a.Element){var i;try{if(!e.documentElement.contains){for(var s=t.node;s.parentNode;)s=s.parentNode;if(s!=e)throw new Error(\"Element not in the dom\")}i=t.node.getBBox()}catch(e){if(t instanceof a.Shape){a.parser.draw||a.prepare();var r=t.clone(a.parser.draw.instance).show();r&&r.node&&\"function\"==typeof r.node.getBBox&&(i=r.node.getBBox()),r&&\"function\"==typeof r.remove&&r.remove()}else i={x:t.node.clientLeft,y:t.node.clientTop,width:t.node.clientWidth,height:t.node.clientHeight}}a.Box.call(this,i)}},inherit:a.Box,parent:a.Element,construct:{bbox:function(){return new a.BBox(this)}}}),a.BBox.prototype.constructor=a.BBox,a.Matrix=a.invent({create:function(t){var e=f([1,0,0,1,0,0]);t=null===t?e:t instanceof a.Element?t.matrixify():\"string\"==typeof t?f(t.split(a.regex.delimiter).map(parseFloat)):6==arguments.length?f([].slice.call(arguments)):Array.isArray(t)?f(t):t&&\"object\"===i(t)?t:e;for(var s=v.length-1;s>=0;--s)this[v[s]]=null!=t[v[s]]?t[v[s]]:e[v[s]]},extend:{extract:function(){var t=p(this,0,1);p(this,1,0);var e=180/Math.PI*Math.atan2(t.y,t.x)-90;return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(e*Math.PI/180)+this.f*Math.sin(e*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(e*Math.PI/180)+this.e*Math.sin(-e*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new a.Matrix(this)}},clone:function(){return new a.Matrix(this)},morph:function(t){return this.destination=new a.Matrix(t),this},multiply:function(t){return new a.Matrix(this.native().multiply(function(t){return t instanceof a.Matrix||(t=new a.Matrix(t)),t}(t).native()))},inverse:function(){return new a.Matrix(this.native().inverse())},translate:function(t,e){return new a.Matrix(this.native().translate(t||0,e||0))},native:function(){for(var t=a.parser.native.createSVGMatrix(),e=v.length-1;e>=0;e--)t[v[e]]=this[v[e]];return t},toString:function(){return\"matrix(\"+b(this.a)+\",\"+b(this.b)+\",\"+b(this.c)+\",\"+b(this.d)+\",\"+b(this.e)+\",\"+b(this.f)+\")\"}},parent:a.Element,construct:{ctm:function(){return new a.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof a.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new a.Matrix(e)}return new a.Matrix(this.node.getScreenCTM())}}}),a.Point=a.invent({create:function(t,e){var a;a=Array.isArray(t)?{x:t[0],y:t[1]}:\"object\"===i(t)?{x:t.x,y:t.y}:null!=t?{x:t,y:null!=e?e:t}:{x:0,y:0},this.x=a.x,this.y=a.y},extend:{clone:function(){return new a.Point(this)},morph:function(t,e){return this.destination=new a.Point(t,e),this}}}),a.extend(a.Element,{point:function(t,e){return new a.Point(t,e).transform(this.screenCTM().inverse())}}),a.extend(a.Element,{attr:function(t,e,s){if(null==t){for(t={},s=(e=this.node.attributes).length-1;s>=0;s--)t[e[s].nodeName]=a.regex.isNumber.test(e[s].nodeValue)?parseFloat(e[s].nodeValue):e[s].nodeValue;return t}if(\"object\"===i(t))for(var r in t)this.attr(r,t[r]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?a.defaults.attrs[t]:a.regex.isNumber.test(e)?parseFloat(e):e;\"stroke-width\"==t?this.attr(\"stroke\",parseFloat(e)>0?this._stroke:null):\"stroke\"==t&&(this._stroke=e),\"fill\"!=t&&\"stroke\"!=t||(a.regex.isImage.test(e)&&(e=this.doc().defs().image(e,0,0)),e instanceof a.Image&&(e=this.doc().defs().pattern(0,0,(function(){this.add(e)})))),\"number\"==typeof e?e=new a.Number(e):a.Color.isColor(e)?e=new a.Color(e):Array.isArray(e)&&(e=new a.Array(e)),\"leading\"==t?this.leading&&this.leading(e):\"string\"==typeof s?this.node.setAttributeNS(s,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||\"font-size\"!=t&&\"x\"!=t||this.rebuild(t,e)}return this}}),a.extend(a.Element,{transform:function(t,e){var s;return\"object\"!==i(t)?(s=new a.Matrix(this).extract(),\"string\"==typeof t?s[t]:s):(s=new a.Matrix(this),e=!!e||!!t.relative,null!=t.a&&(s=e?s.multiply(new a.Matrix(t)):new a.Matrix(t)),this.attr(\"transform\",s))}}),a.extend(a.Element,{untransform:function(){return this.attr(\"transform\",null)},matrixify:function(){return(this.attr(\"transform\")||\"\").split(a.regex.transforms).slice(0,-1).map((function(t){var e=t.trim().split(\"(\");return[e[0],e[1].split(a.regex.delimiter).map((function(t){return parseFloat(t)}))]})).reduce((function(t,e){return\"matrix\"==e[0]?t.multiply(f(e[1])):t[e[0]].apply(t,e[1])}),new a.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),a.Transformation=a.invent({create:function(t,e){if(arguments.length>1&&\"boolean\"!=typeof e)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(t))for(var a=0,s=this.arguments.length;a<s;++a)this[this.arguments[a]]=t[a];else if(t&&\"object\"===i(t))for(a=0,s=this.arguments.length;a<s;++a)this[this.arguments[a]]=t[this.arguments[a]];this.inversed=!1,!0===e&&(this.inversed=!0)}}),a.Translate=a.invent({parent:a.Matrix,inherit:a.Transformation,create:function(t,e){this.constructor.apply(this,[].slice.call(arguments))},extend:{arguments:[\"transformedX\",\"transformedY\"],method:\"translate\"}}),a.extend(a.Element,{style:function(t,e){if(0==arguments.length)return this.node.style.cssText||\"\";if(arguments.length<2)if(\"object\"===i(t))for(var s in t)this.style(s,t[s]);else{if(!a.regex.isCss.test(t))return this.node.style[c(t)];for(t=t.split(/\\s*;\\s*/).filter((function(t){return!!t})).map((function(t){return t.split(/\\s*:\\s*/)}));e=t.pop();)this.style(e[0],e[1])}else this.node.style[c(t)]=null===e||a.regex.isBlank.test(e)?\"\":e;return this}}),a.Parent=a.invent({create:function(t){this.constructor.call(this,t)},inherit:a.Element,extend:{children:function(){return a.utils.map(a.utils.filterSVGElements(this.node.childNodes),(function(t){return a.adopt(t)}))},add:function(t,e){return null==e?this.node.appendChild(t.node):t.node!=this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this},put:function(t,e){return this.add(t,e),t},has:function(t){return this.index(t)>=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return a.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){for(var i=this.children(),s=0,r=i.length;s<r;s++)i[s]instanceof a.Element&&t.apply(i[s],[s,i]),e&&i[s]instanceof a.Container&&i[s].each(t,e);return this},removeElement:function(t){return this.node.removeChild(t.node),this},clear:function(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return delete this._defs,this},defs:function(){return this.doc().defs()}}}),a.extend(a.Parent,{ungroup:function(t,e){return 0===e||this instanceof a.Defs||this.node==a.parser.draw||(t=t||(this instanceof a.Doc?this:this.parent(a.Parent)),e=e||1/0,this.each((function(){return this instanceof a.Defs?this:this instanceof a.Parent?this.ungroup(t,e-1):this.toParent(t)})),this.node.firstChild||this.remove()),this},flatten:function(t,e){return this.ungroup(t,e)}}),a.Container=a.invent({create:function(t){this.constructor.call(this,t)},inherit:a.Parent}),a.ViewBox=a.invent({parent:a.Container,construct:{}}),[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseover\",\"mouseout\",\"mousemove\",\"touchstart\",\"touchmove\",\"touchleave\",\"touchend\",\"touchcancel\"].forEach((function(t){a.Element.prototype[t]=function(e){return a.on(this.node,t,e),this}})),a.listeners=[],a.handlerMap=[],a.listenerId=0,a.on=function(t,e,i,s,r){var o=i.bind(s||t.instance||t),n=(a.handlerMap.indexOf(t)+1||a.handlerMap.push(t))-1,l=e.split(\".\")[0],h=e.split(\".\")[1]||\"*\";a.listeners[n]=a.listeners[n]||{},a.listeners[n][l]=a.listeners[n][l]||{},a.listeners[n][l][h]=a.listeners[n][l][h]||{},i._svgjsListenerId||(i._svgjsListenerId=++a.listenerId),a.listeners[n][l][h][i._svgjsListenerId]=o,t.addEventListener(l,o,r||{passive:!0})},a.off=function(t,e,i){var s=a.handlerMap.indexOf(t),r=e&&e.split(\".\")[0],o=e&&e.split(\".\")[1],n=\"\";if(-1!=s)if(i){if(\"function\"==typeof i&&(i=i._svgjsListenerId),!i)return;a.listeners[s][r]&&a.listeners[s][r][o||\"*\"]&&(t.removeEventListener(r,a.listeners[s][r][o||\"*\"][i],!1),delete a.listeners[s][r][o||\"*\"][i])}else if(o&&r){if(a.listeners[s][r]&&a.listeners[s][r][o]){for(var l in a.listeners[s][r][o])a.off(t,[r,o].join(\".\"),l);delete a.listeners[s][r][o]}}else if(o)for(var h in a.listeners[s])for(var n in a.listeners[s][h])o===n&&a.off(t,[h,o].join(\".\"));else if(r){if(a.listeners[s][r]){for(var n in a.listeners[s][r])a.off(t,[r,n].join(\".\"));delete a.listeners[s][r]}}else{for(var h in a.listeners[s])a.off(t,h);delete a.listeners[s],delete a.handlerMap[s]}},a.extend(a.Element,{on:function(t,e,i,s){return a.on(this.node,t,e,i,s),this},off:function(t,e){return a.off(this.node,t,e),this},fire:function(e,i){return e instanceof t.Event?this.node.dispatchEvent(e):this.node.dispatchEvent(e=new a.CustomEvent(e,{detail:i,cancelable:!0})),this._event=e,this},event:function(){return this._event}}),a.Defs=a.invent({create:\"defs\",inherit:a.Container}),a.G=a.invent({create:\"g\",inherit:a.Container,extend:{x:function(t){return null==t?this.transform(\"x\"):this.transform({x:t-this.x()},!0)}},construct:{group:function(){return this.put(new a.G)}}}),a.Doc=a.invent({create:function(t){t&&(\"svg\"==(t=\"string\"==typeof t?e.getElementById(t):t).nodeName?this.constructor.call(this,t):(this.constructor.call(this,a.create(\"svg\")),t.appendChild(this.node),this.size(\"100%\",\"100%\")),this.namespace().defs())},inherit:a.Container,extend:{namespace:function(){return this.attr({xmlns:a.ns,version:\"1.1\"}).attr(\"xmlns:xlink\",a.xlink,a.xmlns).attr(\"xmlns:svgjs\",a.svgjs,a.xmlns)},defs:function(){var t;return this._defs||((t=this.node.getElementsByTagName(\"defs\")[0])?this._defs=a.adopt(t):this._defs=new a.Defs,this.node.appendChild(this._defs.node)),this._defs},parent:function(){return this.node.parentNode&&\"#document\"!=this.node.parentNode.nodeName?this.node.parentNode:null},remove:function(){return this.parent()&&this.parent().removeChild(this.node),this},clear:function(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return delete this._defs,a.parser.draw&&!a.parser.draw.parentNode&&this.node.appendChild(a.parser.draw),this},clone:function(t){this.writeDataToDom();var e=this.node,i=x(e.cloneNode(!0));return t?(t.node||t).appendChild(i.node):e.parentNode.insertBefore(i.node,e.nextSibling),i}}}),a.extend(a.Element,{}),a.Gradient=a.invent({create:function(t){this.constructor.call(this,a.create(t+\"Gradient\")),this.type=t},inherit:a.Container,extend:{at:function(t,e,i){return this.put(new a.Stop).update(t,e,i)},update:function(t){return this.clear(),\"function\"==typeof t&&t.call(this,this),this},fill:function(){return\"url(#\"+this.id()+\")\"},toString:function(){return this.fill()},attr:function(t,e,i){return\"transform\"==t&&(t=\"gradientTransform\"),a.Container.prototype.attr.call(this,t,e,i)}},construct:{gradient:function(t,e){return this.defs().gradient(t,e)}}}),a.extend(a.Gradient,a.FX,{from:function(t,e){return\"radial\"==(this._target||this).type?this.attr({fx:new a.Number(t),fy:new a.Number(e)}):this.attr({x1:new a.Number(t),y1:new a.Number(e)})},to:function(t,e){return\"radial\"==(this._target||this).type?this.attr({cx:new a.Number(t),cy:new a.Number(e)}):this.attr({x2:new a.Number(t),y2:new a.Number(e)})}}),a.extend(a.Defs,{gradient:function(t,e){return this.put(new a.Gradient(t)).update(e)}}),a.Stop=a.invent({create:\"stop\",inherit:a.Element,extend:{update:function(t){return(\"number\"==typeof t||t instanceof a.Number)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr(\"stop-opacity\",t.opacity),null!=t.color&&this.attr(\"stop-color\",t.color),null!=t.offset&&this.attr(\"offset\",new a.Number(t.offset)),this}}}),a.Pattern=a.invent({create:\"pattern\",inherit:a.Container,extend:{fill:function(){return\"url(#\"+this.id()+\")\"},update:function(t){return this.clear(),\"function\"==typeof t&&t.call(this,this),this},toString:function(){return this.fill()},attr:function(t,e,i){return\"transform\"==t&&(t=\"patternTransform\"),a.Container.prototype.attr.call(this,t,e,i)}},construct:{pattern:function(t,e,i){return this.defs().pattern(t,e,i)}}}),a.extend(a.Defs,{pattern:function(t,e,i){return this.put(new a.Pattern).update(i).attr({x:0,y:0,width:t,height:e,patternUnits:\"userSpaceOnUse\"})}}),a.Shape=a.invent({create:function(t){this.constructor.call(this,t)},inherit:a.Element}),a.Symbol=a.invent({create:\"symbol\",inherit:a.Container,construct:{symbol:function(){return this.put(new a.Symbol)}}}),a.Use=a.invent({create:\"use\",inherit:a.Shape,extend:{element:function(t,e){return this.attr(\"href\",(e||\"\")+\"#\"+t,a.xlink)}},construct:{use:function(t,e){return this.put(new a.Use).element(t,e)}}}),a.Rect=a.invent({create:\"rect\",inherit:a.Shape,construct:{rect:function(t,e){return this.put(new a.Rect).size(t,e)}}}),a.Circle=a.invent({create:\"circle\",inherit:a.Shape,construct:{circle:function(t){return this.put(new a.Circle).rx(new a.Number(t).divide(2)).move(0,0)}}}),a.extend(a.Circle,a.FX,{rx:function(t){return this.attr(\"r\",t)},ry:function(t){return this.rx(t)}}),a.Ellipse=a.invent({create:\"ellipse\",inherit:a.Shape,construct:{ellipse:function(t,e){return this.put(new a.Ellipse).size(t,e).move(0,0)}}}),a.extend(a.Ellipse,a.Rect,a.FX,{rx:function(t){return this.attr(\"rx\",t)},ry:function(t){return this.attr(\"ry\",t)}}),a.extend(a.Circle,a.Ellipse,{x:function(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())},y:function(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())},cx:function(t){return null==t?this.attr(\"cx\"):this.attr(\"cx\",t)},cy:function(t){return null==t?this.attr(\"cy\"):this.attr(\"cy\",t)},width:function(t){return null==t?2*this.rx():this.rx(new a.Number(t).divide(2))},height:function(t){return null==t?2*this.ry():this.ry(new a.Number(t).divide(2))},size:function(t,e){var i=u(this,t,e);return this.rx(new a.Number(i.width).divide(2)).ry(new a.Number(i.height).divide(2))}}),a.Line=a.invent({create:\"line\",inherit:a.Shape,extend:{array:function(){return new a.PointArray([[this.attr(\"x1\"),this.attr(\"y1\")],[this.attr(\"x2\"),this.attr(\"y2\")]])},plot:function(t,e,i,s){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:i,y2:s}:new a.PointArray(t).toLine(),this.attr(t))},move:function(t,e){return this.attr(this.array().move(t,e).toLine())},size:function(t,e){var i=u(this,t,e);return this.attr(this.array().size(i.width,i.height).toLine())}},construct:{line:function(t,e,i,s){return a.Line.prototype.plot.apply(this.put(new a.Line),null!=t?[t,e,i,s]:[0,0,0,0])}}}),a.Polyline=a.invent({create:\"polyline\",inherit:a.Shape,construct:{polyline:function(t){return this.put(new a.Polyline).plot(t||new a.PointArray)}}}),a.Polygon=a.invent({create:\"polygon\",inherit:a.Shape,construct:{polygon:function(t){return this.put(new a.Polygon).plot(t||new a.PointArray)}}}),a.extend(a.Polyline,a.Polygon,{array:function(){return this._array||(this._array=new a.PointArray(this.attr(\"points\")))},plot:function(t){return null==t?this.array():this.clear().attr(\"points\",\"string\"==typeof t?t:this._array=new a.PointArray(t))},clear:function(){return delete this._array,this},move:function(t,e){return this.attr(\"points\",this.array().move(t,e))},size:function(t,e){var i=u(this,t,e);return this.attr(\"points\",this.array().size(i.width,i.height))}}),a.extend(a.Line,a.Polyline,a.Polygon,{morphArray:a.PointArray,x:function(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)},y:function(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)},width:function(t){var e=this.bbox();return null==t?e.width:this.size(t,e.height)},height:function(t){var e=this.bbox();return null==t?e.height:this.size(e.width,t)}}),a.Path=a.invent({create:\"path\",inherit:a.Shape,extend:{morphArray:a.PathArray,array:function(){return this._array||(this._array=new a.PathArray(this.attr(\"d\")))},plot:function(t){return null==t?this.array():this.clear().attr(\"d\",\"string\"==typeof t?t:this._array=new a.PathArray(t))},clear:function(){return delete this._array,this}},construct:{path:function(t){return this.put(new a.Path).plot(t||new a.PathArray)}}}),a.Image=a.invent({create:\"image\",inherit:a.Shape,extend:{load:function(e){if(!e)return this;var i=this,s=new t.Image;return a.on(s,\"load\",(function(){a.off(s);var t=i.parent(a.Pattern);null!==t&&(0==i.width()&&0==i.height()&&i.size(s.width,s.height),t&&0==t.width()&&0==t.height()&&t.size(i.width(),i.height()),\"function\"==typeof i._loaded&&i._loaded.call(i,{width:s.width,height:s.height,ratio:s.width/s.height,url:e}))})),a.on(s,\"error\",(function(t){a.off(s),\"function\"==typeof i._error&&i._error.call(i,t)})),this.attr(\"href\",s.src=this.src=e,a.xlink)},loaded:function(t){return this._loaded=t,this},error:function(t){return this._error=t,this}},construct:{image:function(t,e,i){return this.put(new a.Image).load(t).size(e||0,i||e||0)}}}),a.Text=a.invent({create:function(){this.constructor.call(this,a.create(\"text\")),this.dom.leading=new a.Number(1.3),this._rebuild=!0,this._build=!1,this.attr(\"font-family\",a.defaults.attrs[\"font-family\"])},inherit:a.Shape,extend:{x:function(t){return null==t?this.attr(\"x\"):this.attr(\"x\",t)},text:function(t){if(void 0===t){t=\"\";for(var e=this.node.childNodes,i=0,s=e.length;i<s;++i)0!=i&&3!=e[i].nodeType&&1==a.adopt(e[i]).dom.newLined&&(t+=\"\\n\"),t+=e[i].textContent;return t}if(this.clear().build(!0),\"function\"==typeof t)t.call(this,this);else{i=0;for(var r=(t=t.split(\"\\n\")).length;i<r;i++)this.tspan(t[i]).newLine()}return this.build(!1).rebuild()},size:function(t){return this.attr(\"font-size\",t).rebuild()},leading:function(t){return null==t?this.dom.leading:(this.dom.leading=new a.Number(t),this.rebuild())},lines:function(){var t=(this.textPath&&this.textPath()||this).node,e=a.utils.map(a.utils.filterSVGElements(t.childNodes),(function(t){return a.adopt(t)}));return new a.Set(e)},rebuild:function(t){if(\"boolean\"==typeof t&&(this._rebuild=t),this._rebuild){var e=this,i=0,s=this.dom.leading*new a.Number(this.attr(\"font-size\"));this.lines().each((function(){this.dom.newLined&&(e.textPath()||this.attr(\"x\",e.attr(\"x\")),\"\\n\"==this.text()?i+=s:(this.attr(\"dy\",s+i),i=0))})),this.fire(\"rebuild\")}return this},build:function(t){return this._build=!!t,this},setData:function(t){return this.dom=t,this.dom.leading=new a.Number(t.leading||1.3),this}},construct:{text:function(t){return this.put(new a.Text).text(t)},plain:function(t){return this.put(new a.Text).plain(t)}}}),a.Tspan=a.invent({create:\"tspan\",inherit:a.Shape,extend:{text:function(t){return null==t?this.node.textContent+(this.dom.newLined?\"\\n\":\"\"):(\"function\"==typeof t?t.call(this,this):this.plain(t),this)},dx:function(t){return this.attr(\"dx\",t)},dy:function(t){return this.attr(\"dy\",t)},newLine:function(){var t=this.parent(a.Text);return this.dom.newLined=!0,this.dy(t.dom.leading*t.attr(\"font-size\")).attr(\"x\",t.x())}}}),a.extend(a.Text,a.Tspan,{plain:function(t){return!1===this._build&&this.clear(),this.node.appendChild(e.createTextNode(t)),this},tspan:function(t){var e=(this.textPath&&this.textPath()||this).node,i=new a.Tspan;return!1===this._build&&this.clear(),e.appendChild(i.node),i.text(t)},clear:function(){for(var t=(this.textPath&&this.textPath()||this).node;t.hasChildNodes();)t.removeChild(t.lastChild);return this},length:function(){return this.node.getComputedTextLength()}}),a.TextPath=a.invent({create:\"textPath\",inherit:a.Parent,parent:a.Text,construct:{morphArray:a.PathArray,array:function(){var t=this.track();return t?t.array():null},plot:function(t){var e=this.track(),i=null;return e&&(i=e.plot(t)),null==t?i:this},track:function(){var t=this.textPath();if(t)return t.reference(\"href\")},textPath:function(){if(this.node.firstChild&&\"textPath\"==this.node.firstChild.nodeName)return a.adopt(this.node.firstChild)}}}),a.Nested=a.invent({create:function(){this.constructor.call(this,a.create(\"svg\")),this.style(\"overflow\",\"visible\")},inherit:a.Container,construct:{nested:function(){return this.put(new a.Nested)}}});var l={stroke:[\"color\",\"width\",\"opacity\",\"linecap\",\"linejoin\",\"miterlimit\",\"dasharray\",\"dashoffset\"],fill:[\"color\",\"opacity\",\"rule\"],prefix:function(t,e){return\"color\"==e?t:t+\"-\"+e}};function h(t,e,i,s){return i+s.replace(a.regex.dots,\" .\")}function c(t){return t.toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()}))}function d(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t){var e=t.toString(16);return 1==e.length?\"0\"+e:e}function u(t,e,i){if(null==e||null==i){var a=t.bbox();null==e?e=a.width/a.height*i:null==i&&(i=a.height/a.width*e)}return{width:e,height:i}}function p(t,e,i){return{x:e*t.a+i*t.c+0,y:e*t.b+i*t.d+0}}function f(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}function x(e){for(var i=e.childNodes.length-1;i>=0;i--)e.childNodes[i]instanceof t.SVGElement&&x(e.childNodes[i]);return a.adopt(e).id(a.eid(e.nodeName))}function b(t){return Math.abs(t)>1e-37?t:0}[\"fill\",\"stroke\"].forEach((function(t){var e={};e[t]=function(e){if(void 0===e)return this;if(\"string\"==typeof e||a.Color.isRgb(e)||e&&\"function\"==typeof e.fill)this.attr(t,e);else for(var i=l[t].length-1;i>=0;i--)null!=e[l[t][i]]&&this.attr(l.prefix(t,l[t][i]),e[l[t][i]]);return this},a.extend(a.Element,a.FX,e)})),a.extend(a.Element,a.FX,{translate:function(t,e){return this.transform({x:t,y:e})},matrix:function(t){return this.attr(\"transform\",new a.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr(\"opacity\",t)},dx:function(t){return this.x(new a.Number(t).plus(this instanceof a.FX?0:this.x()),!0)},dy:function(t){return this.y(new a.Number(t).plus(this instanceof a.FX?0:this.y()),!0)}}),a.extend(a.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),a.Set=a.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){for(var t=[].slice.call(arguments),e=0,i=t.length;e<i;e++)this.members.push(t[e]);return this},remove:function(t){var e=this.index(t);return e>-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e<i;e++)t.apply(this.members[e],[e,this.members]);return this},clear:function(){return this.members=[],this},length:function(){return this.members.length},has:function(t){return this.index(t)>=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(t){return new a.Set(t)}}}),a.FX.Set=a.invent({create:function(t){this.set=t}}),a.Set.inherit=function(){var t=[];for(var e in a.Shape.prototype)\"function\"==typeof a.Shape.prototype[e]&&\"function\"!=typeof a.Set.prototype[e]&&t.push(e);for(var e in t.forEach((function(t){a.Set.prototype[t]=function(){for(var e=0,i=this.members.length;e<i;e++)this.members[e]&&\"function\"==typeof this.members[e][t]&&this.members[e][t].apply(this.members[e],arguments);return\"animate\"==t?this.fx||(this.fx=new a.FX.Set(this)):this}})),t=[],a.FX.prototype)\"function\"==typeof a.FX.prototype[e]&&\"function\"!=typeof a.FX.Set.prototype[e]&&t.push(e);t.forEach((function(t){a.FX.Set.prototype[t]=function(){for(var e=0,i=this.set.members.length;e<i;e++)this.set.members[e].fx[t].apply(this.set.members[e].fx,arguments);return this}}))},a.extend(a.Element,{}),a.extend(a.Element,{remember:function(t,e){if(\"object\"===i(arguments[0]))for(var a in t)this.remember(a,t[a]);else{if(1==arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0==arguments.length)this._memory={};else for(var t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),a.get=function(t){var i=e.getElementById(function(t){var e=(t||\"\").toString().match(a.regex.reference);if(e)return e[1]}(t)||t);return a.adopt(i)},a.select=function(t,i){return new a.Set(a.utils.map((i||e).querySelectorAll(t),(function(t){return a.adopt(t)})))},a.extend(a.Parent,{select:function(t){return a.select(t,this.node)}});var v=\"abcdef\".split(\"\");if(\"function\"!=typeof t.CustomEvent){var m=function(t,i){i=i||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent(\"CustomEvent\");return a.initCustomEvent(t,i.bubbles,i.cancelable,i.detail),a};m.prototype=t.Event.prototype,a.CustomEvent=m}else a.CustomEvent=t.CustomEvent;return a},\"function\"==typeof define&&define.amd?define((function(){return Et(zt,zt.document)})):\"object\"===(\"undefined\"==typeof exports?\"undefined\":i(exports))&&\"undefined\"!=typeof module?module.exports=zt.document?Et(zt,zt.document):function(t){return Et(t,t.document)}:zt.SVG=Et(zt,zt.document),\n/*! svg.filter.js - v2.0.2 - 2016-02-24\n* https://github.com/wout/svg.filter.js\n* Copyright (c) 2016 Wout Fierens; Licensed MIT */\nfunction(){SVG.Filter=SVG.invent({create:\"filter\",inherit:SVG.Parent,extend:{source:\"SourceGraphic\",sourceAlpha:\"SourceAlpha\",background:\"BackgroundImage\",backgroundAlpha:\"BackgroundAlpha\",fill:\"FillPaint\",stroke:\"StrokePaint\",autoSetIn:!0,put:function(t,e){return this.add(t,e),!t.attr(\"in\")&&this.autoSetIn&&t.attr(\"in\",this.source),t.attr(\"result\")||t.attr(\"result\",t),t},blend:function(t,e,i){return this.put(new SVG.BlendEffect(t,e,i))},colorMatrix:function(t,e){return this.put(new SVG.ColorMatrixEffect(t,e))},convolveMatrix:function(t){return this.put(new SVG.ConvolveMatrixEffect(t))},componentTransfer:function(t){return this.put(new SVG.ComponentTransferEffect(t))},composite:function(t,e,i){return this.put(new SVG.CompositeEffect(t,e,i))},flood:function(t,e){return this.put(new SVG.FloodEffect(t,e))},offset:function(t,e){return this.put(new SVG.OffsetEffect(t,e))},image:function(t){return this.put(new SVG.ImageEffect(t))},merge:function(){var t=[void 0];for(var e in arguments)t.push(arguments[e]);return this.put(new(SVG.MergeEffect.bind.apply(SVG.MergeEffect,t)))},gaussianBlur:function(t,e){return this.put(new SVG.GaussianBlurEffect(t,e))},morphology:function(t,e){return this.put(new SVG.MorphologyEffect(t,e))},diffuseLighting:function(t,e,i){return this.put(new SVG.DiffuseLightingEffect(t,e,i))},displacementMap:function(t,e,i,a,s){return this.put(new SVG.DisplacementMapEffect(t,e,i,a,s))},specularLighting:function(t,e,i,a){return this.put(new SVG.SpecularLightingEffect(t,e,i,a))},tile:function(){return this.put(new SVG.TileEffect)},turbulence:function(t,e,i,a,s){return this.put(new SVG.TurbulenceEffect(t,e,i,a,s))},toString:function(){return\"url(#\"+this.attr(\"id\")+\")\"}}}),SVG.extend(SVG.Defs,{filter:function(t){var e=this.put(new SVG.Filter);return\"function\"==typeof t&&t.call(e,e),e}}),SVG.extend(SVG.Container,{filter:function(t){return this.defs().filter(t)}}),SVG.extend(SVG.Element,SVG.G,SVG.Nested,{filter:function(t){return this.filterer=t instanceof SVG.Element?t:this.doc().filter(t),this.doc()&&this.filterer.doc()!==this.doc()&&this.doc().defs().add(this.filterer),this.attr(\"filter\",this.filterer),this.filterer},unfilter:function(t){return this.filterer&&!0===t&&this.filterer.remove(),delete this.filterer,this.attr(\"filter\",null)}}),SVG.Effect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result=\"'+this.attr(\"in\")+'\"]').get(0)||this.attr(\"in\"):this.attr(\"in\",t)},result:function(t){return null==t?this.attr(\"result\"):this.attr(\"result\",t)},toString:function(){return this.result()}}}),SVG.ParentEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Parent,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result=\"'+this.attr(\"in\")+'\"]').get(0)||this.attr(\"in\"):this.attr(\"in\",t)},result:function(t){return null==t?this.attr(\"result\"):this.attr(\"result\",t)},toString:function(){return this.result()}}});var t={blend:function(t,e){return this.parent()&&this.parent().blend(this,t,e)},colorMatrix:function(t,e){return this.parent()&&this.parent().colorMatrix(t,e).in(this)},convolveMatrix:function(t){return this.parent()&&this.parent().convolveMatrix(t).in(this)},componentTransfer:function(t){return this.parent()&&this.parent().componentTransfer(t).in(this)},composite:function(t,e){return this.parent()&&this.parent().composite(this,t,e)},flood:function(t,e){return this.parent()&&this.parent().flood(t,e)},offset:function(t,e){return this.parent()&&this.parent().offset(t,e).in(this)},image:function(t){return this.parent()&&this.parent().image(t)},merge:function(){return this.parent()&&this.parent().merge.apply(this.parent(),[this].concat(arguments))},gaussianBlur:function(t,e){return this.parent()&&this.parent().gaussianBlur(t,e).in(this)},morphology:function(t,e){return this.parent()&&this.parent().morphology(t,e).in(this)},diffuseLighting:function(t,e,i){return this.parent()&&this.parent().diffuseLighting(t,e,i).in(this)},displacementMap:function(t,e,i,a){return this.parent()&&this.parent().displacementMap(this,t,e,i,a)},specularLighting:function(t,e,i,a){return this.parent()&&this.parent().specularLighting(t,e,i,a).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(t,e,i,a,s){return this.parent()&&this.parent().turbulence(t,e,i,a,s).in(this)}};SVG.extend(SVG.Effect,t),SVG.extend(SVG.ParentEffect,t),SVG.ChildEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){this.attr(\"in\",t)}}});var e={blend:function(t,e,i){this.attr({in:t,in2:e,mode:i||\"normal\"})},colorMatrix:function(t,e){\"matrix\"==t&&(e=s(e)),this.attr({type:t,values:void 0===e?null:e})},convolveMatrix:function(t){t=s(t),this.attr({order:Math.sqrt(t.split(\" \").length),kernelMatrix:t})},composite:function(t,e,i){this.attr({in:t,in2:e,operator:i})},flood:function(t,e){this.attr(\"flood-color\",t),null!=e&&this.attr(\"flood-opacity\",e)},offset:function(t,e){this.attr({dx:t,dy:e})},image:function(t){this.attr(\"href\",t,SVG.xlink)},displacementMap:function(t,e,i,a,s){this.attr({in:t,in2:e,scale:i,xChannelSelector:a,yChannelSelector:s})},gaussianBlur:function(t,e){null!=t||null!=e?this.attr(\"stdDeviation\",function(t){if(!Array.isArray(t))return t;for(var e=0,i=t.length,a=[];e<i;e++)a.push(t[e]);return a.join(\" \")}(Array.prototype.slice.call(arguments))):this.attr(\"stdDeviation\",\"0 0\")},morphology:function(t,e){this.attr({operator:t,radius:e})},tile:function(){},turbulence:function(t,e,i,a,s){this.attr({numOctaves:e,seed:i,stitchTiles:a,baseFrequency:t,type:s})}},i={merge:function(){var t;if(arguments[0]instanceof SVG.Set){var e=this;arguments[0].each((function(t){this instanceof SVG.MergeNode?e.put(this):(this instanceof SVG.Effect||this instanceof SVG.ParentEffect)&&e.put(new SVG.MergeNode(this))}))}else{t=Array.isArray(arguments[0])?arguments[0]:arguments;for(var i=0;i<t.length;i++)t[i]instanceof SVG.MergeNode?this.put(t[i]):this.put(new SVG.MergeNode(t[i]))}},componentTransfer:function(t){if(this.rgb=new SVG.Set,[\"r\",\"g\",\"b\",\"a\"].forEach(function(t){this[t]=new(SVG[\"Func\"+t.toUpperCase()])(\"identity\"),this.rgb.add(this[t]),this.node.appendChild(this[t].node)}.bind(this)),t)for(var e in t.rgb&&([\"r\",\"g\",\"b\"].forEach(function(e){this[e].attr(t.rgb)}.bind(this)),delete t.rgb),t)this[e].attr(t[e])},diffuseLighting:function(t,e,i){this.attr({surfaceScale:t,diffuseConstant:e,kernelUnitLength:i})},specularLighting:function(t,e,i,a){this.attr({surfaceScale:t,diffuseConstant:e,specularExponent:i,kernelUnitLength:a})}},a={distantLight:function(t,e){this.attr({azimuth:t,elevation:e})},pointLight:function(t,e,i){this.attr({x:t,y:e,z:i})},spotLight:function(t,e,i,a,s,r){this.attr({x:t,y:e,z:i,pointsAtX:a,pointsAtY:s,pointsAtZ:r})},mergeNode:function(t){this.attr(\"in\",t)}};function s(t){return Array.isArray(t)&&(t=new SVG.Array(t)),t.toString().replace(/^\\s+/,\"\").replace(/\\s+$/,\"\").replace(/\\s+/g,\" \")}function r(){var t=function(){};for(var e in\"function\"==typeof arguments[arguments.length-1]&&(t=arguments[arguments.length-1],Array.prototype.splice.call(arguments,arguments.length-1,1)),arguments)for(var i in arguments[e])t(arguments[e][i],i,arguments[e])}[\"r\",\"g\",\"b\",\"a\"].forEach((function(t){a[\"Func\"+t.toUpperCase()]=function(t){switch(this.attr(\"type\",t),t){case\"table\":this.attr(\"tableValues\",arguments[1]);break;case\"linear\":this.attr(\"slope\",arguments[1]),this.attr(\"intercept\",arguments[2]);break;case\"gamma\":this.attr(\"amplitude\",arguments[1]),this.attr(\"exponent\",arguments[2]),this.attr(\"offset\",arguments[2])}}})),r(e,(function(t,e){var i=e.charAt(0).toUpperCase()+e.slice(1);SVG[i+\"Effect\"]=SVG.invent({create:function(){this.constructor.call(this,SVG.create(\"fe\"+i)),t.apply(this,arguments),this.result(this.attr(\"id\")+\"Out\")},inherit:SVG.Effect,extend:{}})})),r(i,(function(t,e){var i=e.charAt(0).toUpperCase()+e.slice(1);SVG[i+\"Effect\"]=SVG.invent({create:function(){this.constructor.call(this,SVG.create(\"fe\"+i)),t.apply(this,arguments),this.result(this.attr(\"id\")+\"Out\")},inherit:SVG.ParentEffect,extend:{}})})),r(a,(function(t,e){var i=e.charAt(0).toUpperCase()+e.slice(1);SVG[i]=SVG.invent({create:function(){this.constructor.call(this,SVG.create(\"fe\"+i)),t.apply(this,arguments)},inherit:SVG.ChildEffect,extend:{}})})),SVG.extend(SVG.MergeEffect,{in:function(t){return t instanceof SVG.MergeNode?this.add(t,0):this.add(new SVG.MergeNode(t),0),this}}),SVG.extend(SVG.CompositeEffect,SVG.BlendEffect,SVG.DisplacementMapEffect,{in2:function(t){return null==t?this.parent()&&this.parent().select('[result=\"'+this.attr(\"in2\")+'\"]').get(0)||this.attr(\"in2\"):this.attr(\"in2\",t)}}),SVG.filter={sepiatone:[.343,.669,.119,0,0,.249,.626,.13,0,0,.172,.334,.111,0,0,0,0,0,1,0]}}.call(void 0),function(){function t(t,s,r,o,n,l,h){for(var c=t.slice(s,r||h),d=o.slice(n,l||h),g=0,u={pos:[0,0],start:[0,0]},p={pos:[0,0],start:[0,0]};;){if(c[g]=e.call(u,c[g]),d[g]=e.call(p,d[g]),c[g][0]!=d[g][0]||\"M\"==c[g][0]||\"A\"==c[g][0]&&(c[g][4]!=d[g][4]||c[g][5]!=d[g][5])?(Array.prototype.splice.apply(c,[g,1].concat(a.call(u,c[g]))),Array.prototype.splice.apply(d,[g,1].concat(a.call(p,d[g])))):(c[g]=i.call(u,c[g]),d[g]=i.call(p,d[g])),++g==c.length&&g==d.length)break;g==c.length&&c.push([\"C\",u.pos[0],u.pos[1],u.pos[0],u.pos[1],u.pos[0],u.pos[1]]),g==d.length&&d.push([\"C\",p.pos[0],p.pos[1],p.pos[0],p.pos[1],p.pos[0],p.pos[1]])}return{start:c,dest:d}}function e(t){switch(t[0]){case\"z\":case\"Z\":t[0]=\"L\",t[1]=this.start[0],t[2]=this.start[1];break;case\"H\":t[0]=\"L\",t[2]=this.pos[1];break;case\"V\":t[0]=\"L\",t[2]=t[1],t[1]=this.pos[0];break;case\"T\":t[0]=\"Q\",t[3]=t[1],t[4]=t[2],t[1]=this.reflection[1],t[2]=this.reflection[0];break;case\"S\":t[0]=\"C\",t[6]=t[4],t[5]=t[3],t[4]=t[2],t[3]=t[1],t[2]=this.reflection[1],t[1]=this.reflection[0]}return t}function i(t){var e=t.length;return this.pos=[t[e-2],t[e-1]],-1!=\"SCQT\".indexOf(t[0])&&(this.reflection=[2*this.pos[0]-t[e-4],2*this.pos[1]-t[e-3]]),t}function a(t){var e=[t];switch(t[0]){case\"M\":return this.pos=this.start=[t[1],t[2]],e;case\"L\":t[5]=t[3]=t[1],t[6]=t[4]=t[2],t[1]=this.pos[0],t[2]=this.pos[1];break;case\"Q\":t[6]=t[4],t[5]=t[3],t[4]=1*t[4]/3+2*t[2]/3,t[3]=1*t[3]/3+2*t[1]/3,t[2]=1*this.pos[1]/3+2*t[2]/3,t[1]=1*this.pos[0]/3+2*t[1]/3;break;case\"A\":e=function(t,e){var i,a,s,r,o,n,l,h,c,d,g,u,p,f,x,b,v,m,y,w,k,A,S,C,L,P,I=Math.abs(e[1]),T=Math.abs(e[2]),M=e[3]%360,X=e[4],z=e[5],E=e[6],Y=e[7],F=new SVG.Point(t),R=new SVG.Point(E,Y),H=[];if(0===I||0===T||F.x===R.x&&F.y===R.y)return[[\"C\",F.x,F.y,R.x,R.y,R.x,R.y]];i=new SVG.Point((F.x-R.x)/2,(F.y-R.y)/2).transform((new SVG.Matrix).rotate(M)),(a=i.x*i.x/(I*I)+i.y*i.y/(T*T))>1&&(I*=a=Math.sqrt(a),T*=a);s=(new SVG.Matrix).rotate(M).scale(1/I,1/T).rotate(-M),F=F.transform(s),R=R.transform(s),r=[R.x-F.x,R.y-F.y],n=r[0]*r[0]+r[1]*r[1],o=Math.sqrt(n),r[0]/=o,r[1]/=o,l=n<4?Math.sqrt(1-n/4):0,X===z&&(l*=-1);h=new SVG.Point((R.x+F.x)/2+l*-r[1],(R.y+F.y)/2+l*r[0]),c=new SVG.Point(F.x-h.x,F.y-h.y),d=new SVG.Point(R.x-h.x,R.y-h.y),g=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(g*=-1);u=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(u*=-1);z&&g>u&&(u+=2*Math.PI);!z&&g<u&&(u-=2*Math.PI);for(f=Math.ceil(2*Math.abs(g-u)/Math.PI),b=[],v=g,p=(u-g)/f,x=4*Math.tan(p/4)/3,k=0;k<=f;k++)y=Math.cos(v),m=Math.sin(v),w=new SVG.Point(h.x+y,h.y+m),b[k]=[new SVG.Point(w.x+x*m,w.y-x*y),w,new SVG.Point(w.x-x*m,w.y+x*y)],v+=p;for(b[0][0]=b[0][1].clone(),b[b.length-1][2]=b[b.length-1][1].clone(),s=(new SVG.Matrix).rotate(M).scale(I,T).rotate(-M),k=0,A=b.length;k<A;k++)b[k][0]=b[k][0].transform(s),b[k][1]=b[k][1].transform(s),b[k][2]=b[k][2].transform(s);for(k=1,A=b.length;k<A;k++)S=(w=b[k-1][2]).x,C=w.y,L=(w=b[k][0]).x,P=w.y,E=(w=b[k][1]).x,Y=w.y,H.push([\"C\",S,C,L,P,E,Y]);return H}(this.pos,t),t=e[0]}return t[0]=\"C\",this.pos=[t[5],t[6]],this.reflection=[2*t[5]-t[3],2*t[6]-t[4]],e}function s(t,e){if(!1===e)return!1;for(var i=e,a=t.length;i<a;++i)if(\"M\"==t[i][0])return i;return!1}SVG.extend(SVG.PathArray,{morph:function(e){for(var i=this.value,a=this.parse(e),r=0,o=0,n=!1,l=!1;!1!==r||!1!==o;){var h;n=s(i,!1!==r&&r+1),l=s(a,!1!==o&&o+1),!1===r&&(r=0==(h=new SVG.PathArray(c.start).bbox()).height||0==h.width?i.push(i[0])-1:i.push([\"M\",h.x+h.width/2,h.y+h.height/2])-1),!1===o&&(o=0==(h=new SVG.PathArray(c.dest).bbox()).height||0==h.width?a.push(a[0])-1:a.push([\"M\",h.x+h.width/2,h.y+h.height/2])-1);var c=t(i,r,n,a,o,l);i=i.slice(0,r).concat(c.start,!1===n?[]:i.slice(n)),a=a.slice(0,o).concat(c.dest,!1===l?[]:a.slice(l)),r=!1!==n&&r+c.start.length,o=!1!==l&&o+c.dest.length}return this.value=i,this.destination=new SVG.PathArray,this.destination.value=a,this}})}(),\n/*! svg.draggable.js - v2.2.2 - 2019-01-08\n* https://github.com/svgdotjs/svg.draggable.js\n* Copyright (c) 2019 Wout Fierens; Licensed MIT */\nfunction(){function t(t){t.remember(\"_draggable\",this),this.el=t}t.prototype.init=function(t,e){var i=this;this.constraint=t,this.value=e,this.el.on(\"mousedown.drag\",(function(t){i.start(t)})),this.el.on(\"touchstart.drag\",(function(t){i.start(t)}))},t.prototype.transformPoint=function(t,e){var i=(t=t||window.event).changedTouches&&t.changedTouches[0]||t;return this.p.x=i.clientX-(e||0),this.p.y=i.clientY,this.p.matrixTransform(this.m)},t.prototype.getBBox=function(){var t=this.el.bbox();return this.el instanceof SVG.Nested&&(t=this.el.rbox()),(this.el instanceof SVG.G||this.el instanceof SVG.Use||this.el instanceof SVG.Nested)&&(t.x=this.el.x(),t.y=this.el.y()),t},t.prototype.start=function(t){if(\"click\"!=t.type&&\"mousedown\"!=t.type&&\"mousemove\"!=t.type||1==(t.which||t.buttons)){var e=this;if(this.el.fire(\"beforedrag\",{event:t,handler:this}),!this.el.event().defaultPrevented){t.preventDefault(),t.stopPropagation(),this.parent=this.parent||this.el.parent(SVG.Nested)||this.el.parent(SVG.Doc),this.p=this.parent.node.createSVGPoint(),this.m=this.el.node.getScreenCTM().inverse();var i,a=this.getBBox();if(this.el instanceof SVG.Text)switch(i=this.el.node.getComputedTextLength(),this.el.attr(\"text-anchor\")){case\"middle\":i/=2;break;case\"start\":i=0}this.startPoints={point:this.transformPoint(t,i),box:a,transform:this.el.transform()},SVG.on(window,\"mousemove.drag\",(function(t){e.drag(t)})),SVG.on(window,\"touchmove.drag\",(function(t){e.drag(t)})),SVG.on(window,\"mouseup.drag\",(function(t){e.end(t)})),SVG.on(window,\"touchend.drag\",(function(t){e.end(t)})),this.el.fire(\"dragstart\",{event:t,p:this.startPoints.point,m:this.m,handler:this})}}},t.prototype.drag=function(t){var e=this.getBBox(),i=this.transformPoint(t),a=this.startPoints.box.x+i.x-this.startPoints.point.x,s=this.startPoints.box.y+i.y-this.startPoints.point.y,r=this.constraint,o=i.x-this.startPoints.point.x,n=i.y-this.startPoints.point.y;if(this.el.fire(\"dragmove\",{event:t,p:i,m:this.m,handler:this}),this.el.event().defaultPrevented)return i;if(\"function\"==typeof r){var l=r.call(this.el,a,s,this.m);\"boolean\"==typeof l&&(l={x:l,y:l}),!0===l.x?this.el.x(a):!1!==l.x&&this.el.x(l.x),!0===l.y?this.el.y(s):!1!==l.y&&this.el.y(l.y)}else\"object\"==typeof r&&(null!=r.minX&&a<r.minX?o=(a=r.minX)-this.startPoints.box.x:null!=r.maxX&&a>r.maxX-e.width&&(o=(a=r.maxX-e.width)-this.startPoints.box.x),null!=r.minY&&s<r.minY?n=(s=r.minY)-this.startPoints.box.y:null!=r.maxY&&s>r.maxY-e.height&&(n=(s=r.maxY-e.height)-this.startPoints.box.y),null!=r.snapToGrid&&(a-=a%r.snapToGrid,s-=s%r.snapToGrid,o-=o%r.snapToGrid,n-=n%r.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:o,y:n},!0):this.el.move(a,s));return i},t.prototype.end=function(t){var e=this.drag(t);this.el.fire(\"dragend\",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,\"mousemove.drag\"),SVG.off(window,\"touchmove.drag\"),SVG.off(window,\"mouseup.drag\"),SVG.off(window,\"touchend.drag\")},SVG.extend(SVG.Element,{draggable:function(e,i){\"function\"!=typeof e&&\"object\"!=typeof e||(i=e,e=!0);var a=this.remember(\"_draggable\")||new t(this);return(e=void 0===e||e)?a.init(i||{},e):(this.off(\"mousedown.drag\"),this.off(\"touchstart.drag\")),this}})}.call(void 0),function(){function t(t){this.el=t,t.remember(\"_selectHandler\",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:[\"width\",0],rb:[\"width\",\"height\"],lb:[0,\"height\"],t:[\"width\",0],r:[\"width\",\"height\"],b:[\"width\",\"height\"],l:[0,\"height\"]},this.pointCoord=function(t,e,i){var a=\"string\"!=typeof t?t:e[t];return i?a/2:a},this.pointCoords=function(t,e){var i=this.pointsList[t];return{x:this.pointCoord(i[0],e,\"t\"===t||\"b\"===t),y:this.pointCoord(i[1],e,\"r\"===t||\"l\"===t)}}}t.prototype.init=function(t,e){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],void 0!==e[s]&&(this.options[s]=e[s]);var r=[\"points\",\"pointsExclude\"];for(var s in r){var o=this.options[r[s]];\"string\"==typeof o?o=o.length>0?o.split(/\\s*,\\s*/i):[]:\"boolean\"==typeof o&&\"points\"===r[s]&&(o=o?a:[]),this.options[r[s]]=o}this.options.points=[a,this.options.points].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)>-1}))})),this.options.points=[this.options.points,this.options.pointsExclude].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)<0}))})),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==[\"line\",\"polyline\",\"polygon\"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},t.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},t.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map((function(e){return[e[0]-t.x,e[1]-t.y]}))},t.prototype.drawPoints=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i<a;++i){var s=function(e){return function(i){(i=i||window.event).preventDefault?i.preventDefault():i.returnValue=!1,i.stopPropagation();var a=i.pageX||i.touches[0].pageX,s=i.pageY||i.touches[0].pageY;t.el.fire(\"point\",{x:a,y:s,i:e,event:i})}}(i),r=this.drawPoint(e[i][0],e[i][1]).addClass(this.options.classPoints).addClass(this.options.classPoints+\"_point\").on(\"touchstart\",s).on(\"mousedown\",s);this.pointSelection.set.add(r)}},t.prototype.drawPoint=function(t,e){var i=this.options.pointType;switch(i){case\"circle\":return this.drawCircle(t,e);case\"rect\":return this.drawRect(t,e);default:if(\"function\"==typeof i)return i.call(this,t,e);throw new Error(\"Unknown \"+i+\" point type!\")}},t.prototype.drawCircle=function(t,e){return this.nested.circle(this.options.pointSize).center(t,e)},t.prototype.drawRect=function(t,e){return this.nested.rect(this.options.pointSize,this.options.pointSize).center(t,e)},t.prototype.updatePointSelection=function(){var t=this.getPointArray();this.pointSelection.set.each((function(e){this.cx()===t[e][0]&&this.cy()===t[e][1]||this.center(t[e][0],t[e][1])}))},t.prototype.updateRectSelection=function(){var t=this,e=this.el.bbox();if(this.rectSelection.set.get(0).attr({width:e.width,height:e.height}),this.options.points.length&&this.options.points.map((function(i,a){var s=t.pointCoords(i,e);t.rectSelection.set.get(a+1).center(s.x,s.y)})),this.options.rotationPoint){var i=this.rectSelection.set.length();this.rectSelection.set.get(i-1).center(e.width/2,20)}},t.prototype.selectRect=function(t){var e=this,i=this.el.bbox();function a(t){return function(i){(i=i||window.event).preventDefault?i.preventDefault():i.returnValue=!1,i.stopPropagation();var a=i.pageX||i.touches[0].pageX,s=i.pageY||i.touches[0].pageY;e.el.fire(t,{x:a,y:s,event:i})}}if(this.rectSelection.isSelected=t,this.rectSelection.set=this.rectSelection.set||this.parent.set(),this.rectSelection.set.get(0)||this.rectSelection.set.add(this.nested.rect(i.width,i.height).addClass(this.options.classRect)),this.options.points.length&&this.rectSelection.set.length()<2){this.options.points.map((function(t,s){var r=e.pointCoords(t,i),o=e.drawPoint(r.x,r.y).attr(\"class\",e.options.classPoints+\"_\"+t).on(\"mousedown\",a(t)).on(\"touchstart\",a(t));e.rectSelection.set.add(o)})),this.rectSelection.set.each((function(){this.addClass(e.options.classPoints)}))}if(this.options.rotationPoint&&(this.options.points&&!this.rectSelection.set.get(9)||!this.options.points&&!this.rectSelection.set.get(1))){var s=function(t){(t=t||window.event).preventDefault?t.preventDefault():t.returnValue=!1,t.stopPropagation();var i=t.pageX||t.touches[0].pageX,a=t.pageY||t.touches[0].pageY;e.el.fire(\"rot\",{x:i,y:a,event:t})},r=this.drawPoint(i.width/2,20).attr(\"class\",this.options.classPoints+\"_rot\").on(\"touchstart\",s).on(\"mousedown\",s);this.rectSelection.set.add(r)}},t.prototype.handler=function(){var t=this.el.bbox();this.nested.matrix(new SVG.Matrix(this.el).translate(t.x,t.y)),this.rectSelection.isSelected&&this.updateRectSelection(),this.pointSelection.isSelected&&this.updatePointSelection()},t.prototype.observe=function(){var t=this;if(MutationObserver)if(this.rectSelection.isSelected||this.pointSelection.isSelected)this.observerInst=this.observerInst||new MutationObserver((function(){t.handler()})),this.observerInst.observe(this.el.node,{attributes:!0});else try{this.observerInst.disconnect(),delete this.observerInst}catch(t){}else this.el.off(\"DOMAttrModified.select\"),(this.rectSelection.isSelected||this.pointSelection.isSelected)&&this.el.on(\"DOMAttrModified.select\",(function(){t.handler()}))},t.prototype.cleanup=function(){!this.rectSelection.isSelected&&this.rectSelection.set&&(this.rectSelection.set.each((function(){this.remove()})),this.rectSelection.set.clear(),delete this.rectSelection.set),!this.pointSelection.isSelected&&this.pointSelection.set&&(this.pointSelection.set.each((function(){this.remove()})),this.pointSelection.set.clear(),delete this.pointSelection.set),this.pointSelection.isSelected||this.rectSelection.isSelected||(this.nested.remove(),delete this.nested)},SVG.extend(SVG.Element,{selectize:function(e,i){return\"object\"==typeof e&&(i=e,e=!0),(this.remember(\"_selectHandler\")||new t(this)).init(void 0===e||e,i||{}),this}}),SVG.Element.prototype.selectize.defaults={points:[\"lt\",\"rt\",\"rb\",\"lb\",\"t\",\"r\",\"b\",\"l\"],pointsExclude:[],classRect:\"svg_select_boundingRect\",classPoints:\"svg_select_points\",pointSize:7,rotationPoint:!0,deepSelect:!1,pointType:\"circle\"}}(),function(){(function(){function t(t){t.remember(\"_resizeHandler\",this),this.el=t,this.parameters={},this.lastUpdateCall=null,this.p=t.doc().node.createSVGPoint()}t.prototype.transformPoint=function(t,e,i){return this.p.x=t-(this.offset.x-window.pageXOffset),this.p.y=e-(this.offset.y-window.pageYOffset),this.p.matrixTransform(i||this.m)},t.prototype._extractPosition=function(t){return{x:null!=t.clientX?t.clientX:t.touches[0].clientX,y:null!=t.clientY?t.clientY:t.touches[0].clientY}},t.prototype.init=function(t){var e=this;if(this.stop(),\"stop\"!==t){for(var i in this.options={},this.el.resize.defaults)this.options[i]=this.el.resize.defaults[i],void 0!==t[i]&&(this.options[i]=t[i]);this.el.on(\"lt.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"rt.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"rb.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"lb.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"t.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"r.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"b.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"l.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"rot.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"point.resize\",(function(t){e.resize(t||window.event)})),this.update()}},t.prototype.stop=function(){return this.el.off(\"lt.resize\"),this.el.off(\"rt.resize\"),this.el.off(\"rb.resize\"),this.el.off(\"lb.resize\"),this.el.off(\"t.resize\"),this.el.off(\"r.resize\"),this.el.off(\"b.resize\"),this.el.off(\"l.resize\"),this.el.off(\"rot.resize\"),this.el.off(\"point.resize\"),this},t.prototype.resize=function(t){var e=this;this.m=this.el.node.getScreenCTM().inverse(),this.offset={x:window.pageXOffset,y:window.pageYOffset};var i=this._extractPosition(t.detail.event);if(this.parameters={type:this.el.type,p:this.transformPoint(i.x,i.y),x:t.detail.x,y:t.detail.y,box:this.el.bbox(),rotation:this.el.transform().rotation},\"text\"===this.el.type&&(this.parameters.fontSize=this.el.attr()[\"font-size\"]),void 0!==t.detail.i){var a=this.el.array().valueOf();this.parameters.i=t.detail.i,this.parameters.pointCoords=[a[t.detail.i][0],a[t.detail.i][1]]}switch(t.type){case\"lt\":this.calc=function(t,e){var i=this.snapToGrid(t,e);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case\"rt\":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case\"rb\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case\"lb\":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case\"t\":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case\"r\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case\"b\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case\"l\":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case\"rot\":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),r=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),o=this.parameters.rotation+180*(r-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(o-o%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case\"point\":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire(\"resizestart\",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,\"touchmove.resize\",(function(t){e.update(t||window.event)})),SVG.on(window,\"touchend.resize\",(function(){e.done()})),SVG.on(window,\"mousemove.resize\",(function(t){e.update(t||window.event)})),SVG.on(window,\"mouseup.resize\",(function(){e.done()}))},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire(\"resizing\",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,\"mousemove.resize\"),SVG.off(window,\"mouseup.resize\"),SVG.off(window,\"touchmove.resize\"),SVG.off(window,\"touchend.resize\"),this.el.fire(\"resizedone\")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])<this.options.snapToGrid/2?s[0]:s[0]-(t<0?-this.options.snapToGrid:this.options.snapToGrid),e-=Math.abs(s[1])<this.options.snapToGrid/2?s[1]:s[1]-(e<0?-this.options.snapToGrid:this.options.snapToGrid),this.constraintToBox(t,e,i,a)},t.prototype.constraintToBox=function(t,e,i,a){var s,r,o=this.options.constraint||{};return void 0!==a?(s=i,r=a):(s=this.parameters.box.x+(1&i?0:this.parameters.box.width),r=this.parameters.box.y+(2&i?0:this.parameters.box.height)),void 0!==o.minX&&s+t<o.minX&&(t=o.minX-s),void 0!==o.maxX&&s+t>o.maxX&&(t=o.maxX-s),void 0!==o.minY&&r+e<o.minY&&(e=o.minY-r),void 0!==o.maxY&&r+e>o.maxY&&(e=o.maxY-r),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],r=this.parameters.box.height-t[1],o=s/r;return o<a?(i[1]=s/a-this.parameters.box.height,e&&(i[1]=-i[1])):o>a&&(i[0]=this.parameters.box.width-r*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember(\"_resizeHandler\")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}(),void 0===window.Apex&&(window.Apex={});var Ot=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"initModules\",value:function(){this.ctx.publicMethods=[\"updateOptions\",\"updateSeries\",\"appendData\",\"appendSeries\",\"toggleSeries\",\"showSeries\",\"hideSeries\",\"setLocale\",\"resetSeries\",\"zoomX\",\"toggleDataPointSelection\",\"dataURI\",\"exportToCSV\",\"addXaxisAnnotation\",\"addYaxisAnnotation\",\"addPointAnnotation\",\"clearAnnotations\",\"removeAnnotation\",\"paper\",\"destroy\"],this.ctx.eventList=[\"click\",\"mousedown\",\"mousemove\",\"mouseleave\",\"touchstart\",\"touchmove\",\"touchleave\",\"mouseup\",\"touchend\"],this.ctx.animations=new b(this.ctx),this.ctx.axes=new J(this.ctx),this.ctx.core=new Ht(this.ctx.el,this.ctx),this.ctx.config=new E({}),this.ctx.data=new W(this.ctx),this.ctx.grid=new j(this.ctx),this.ctx.graphics=new m(this.ctx),this.ctx.coreUtils=new y(this.ctx),this.ctx.crosshairs=new Q(this.ctx),this.ctx.events=new Z(this.ctx),this.ctx.exports=new G(this.ctx),this.ctx.localization=new $(this.ctx),this.ctx.options=new L,this.ctx.responsive=new K(this.ctx),this.ctx.series=new N(this.ctx),this.ctx.theme=new tt(this.ctx),this.ctx.formatters=new T(this.ctx),this.ctx.titleSubtitle=new et(this.ctx),this.ctx.legend=new lt(this.ctx),this.ctx.toolbar=new ht(this.ctx),this.ctx.tooltip=new bt(this.ctx),this.ctx.dimensions=new ot(this.ctx),this.ctx.updateHelpers=new Dt(this.ctx),this.ctx.zoomPanSelection=new ct(this.ctx),this.ctx.w.globals.tooltip=new bt(this.ctx)}}]),t}(),Nt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"clear\",value:function(t){var e=t.isUpdating;this.ctx.zoomPanSelection&&this.ctx.zoomPanSelection.destroy(),this.ctx.toolbar&&this.ctx.toolbar.destroy(),this.ctx.animations=null,this.ctx.axes=null,this.ctx.annotations=null,this.ctx.core=null,this.ctx.data=null,this.ctx.grid=null,this.ctx.series=null,this.ctx.responsive=null,this.ctx.theme=null,this.ctx.formatters=null,this.ctx.titleSubtitle=null,this.ctx.legend=null,this.ctx.dimensions=null,this.ctx.options=null,this.ctx.crosshairs=null,this.ctx.zoomPanSelection=null,this.ctx.updateHelpers=null,this.ctx.toolbar=null,this.ctx.localization=null,this.ctx.w.globals.tooltip=null,this.clearDomElements({isUpdating:e})}},{key:\"killSVG\",value:function(t){t.each((function(t,e){this.removeClass(\"*\"),this.off(),this.stop()}),!0),t.ungroup(),t.clear()}},{key:\"clearDomElements\",value:function(t){var e=this,i=t.isUpdating,a=this.w.globals.dom.Paper.node;a.parentNode&&a.parentNode.parentNode&&!i&&(a.parentNode.parentNode.style.minHeight=\"unset\");var s=this.w.globals.dom.baseEl;s&&this.ctx.eventList.forEach((function(t){s.removeEventListener(t,e.ctx.events.documentEvent)}));var r=this.w.globals.dom;if(null!==this.ctx.el)for(;this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);this.killSVG(r.Paper),r.Paper.remove(),r.elWrap=null,r.elGraphical=null,r.elLegendWrap=null,r.elLegendForeign=null,r.baseEl=null,r.elGridRect=null,r.elGridRectMask=null,r.elGridRectMarkerMask=null,r.elForecastMask=null,r.elNonForecastMask=null,r.elDefs=null}}]),t}(),Wt=new WeakMap;var Bt=function(){function t(e,i){a(this,t),this.opts=i,this.ctx=this,this.w=new F(i).init(),this.el=e,this.w.globals.cuid=x.randomId(),this.w.globals.chartID=this.w.config.chart.id?x.escapeString(this.w.config.chart.id):this.w.globals.cuid,new Ot(this).initModules(),this.create=x.bind(this.create,this),this.windowResizeHandler=this._windowResizeHandler.bind(this),this.parentResizeHandler=this._parentResizeCallback.bind(this)}return r(t,[{key:\"render\",value:function(){var t=this;return new Promise((function(e,i){if(null!==t.el){void 0===Apex._chartInstances&&(Apex._chartInstances=[]),t.w.config.chart.id&&Apex._chartInstances.push({id:t.w.globals.chartID,group:t.w.config.chart.group,chart:t}),t.setLocale(t.w.config.chart.defaultLocale);var a=t.w.config.chart.events.beforeMount;if(\"function\"==typeof a&&a(t,t.w),t.events.fireEvent(\"beforeMount\",[t,t.w]),window.addEventListener(\"resize\",t.windowResizeHandler),function(t,e){var i=!1;if(t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var a=t.getBoundingClientRect();\"none\"!==t.style.display&&0!==a.width||(i=!0)}var s=new ResizeObserver((function(a){i&&e.call(t,a),i=!0}));t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Array.from(t.children).forEach((function(t){return s.observe(t)})):s.observe(t),Wt.set(e,s)}(t.el.parentNode,t.parentResizeHandler),!t.css){var s=t.el.getRootNode&&t.el.getRootNode(),r=x.is(\"ShadowRoot\",s),o=t.el.ownerDocument,n=o.getElementById(\"apexcharts-css\");!r&&n||(t.css=document.createElement(\"style\"),t.css.id=\"apexcharts-css\",t.css.textContent='@keyframes opaque {\\n 0% {\\n opacity: 0\\n }\\n\\n to {\\n opacity: 1\\n }\\n}\\n\\n@keyframes resizeanim {\\n 0%,to {\\n opacity: 0\\n }\\n}\\n\\n.apexcharts-canvas {\\n position: relative;\\n user-select: none\\n}\\n\\n.apexcharts-canvas ::-webkit-scrollbar {\\n -webkit-appearance: none;\\n width: 6px\\n}\\n\\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\\n border-radius: 4px;\\n background-color: rgba(0,0,0,.5);\\n box-shadow: 0 0 1px rgba(255,255,255,.5);\\n -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5)\\n}\\n\\n.apexcharts-inner {\\n position: relative\\n}\\n\\n.apexcharts-text tspan {\\n font-family: inherit\\n}\\n\\n.legend-mouseover-inactive {\\n transition: .15s ease all;\\n opacity: .2\\n}\\n\\n.apexcharts-legend-text {\\n padding-left: 15px;\\n margin-left: -15px;\\n}\\n\\n.apexcharts-series-collapsed {\\n opacity: 0\\n}\\n\\n.apexcharts-tooltip {\\n border-radius: 5px;\\n box-shadow: 2px 2px 6px -4px #999;\\n cursor: default;\\n font-size: 14px;\\n left: 62px;\\n opacity: 0;\\n pointer-events: none;\\n position: absolute;\\n top: 20px;\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n white-space: nowrap;\\n z-index: 12;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-tooltip.apexcharts-active {\\n opacity: 1;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-light {\\n border: 1px solid #e3e3e3;\\n background: rgba(255,255,255,.96)\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-dark {\\n color: #fff;\\n background: rgba(30,30,30,.8)\\n}\\n\\n.apexcharts-tooltip * {\\n font-family: inherit\\n}\\n\\n.apexcharts-tooltip-title {\\n padding: 6px;\\n font-size: 15px;\\n margin-bottom: 4px\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\\n background: #eceff1;\\n border-bottom: 1px solid #ddd\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\\n background: rgba(0,0,0,.7);\\n border-bottom: 1px solid #333\\n}\\n\\n.apexcharts-tooltip-text-goals-value,.apexcharts-tooltip-text-y-value,.apexcharts-tooltip-text-z-value {\\n display: inline-block;\\n margin-left: 5px;\\n font-weight: 600\\n}\\n\\n.apexcharts-tooltip-text-goals-label:empty,.apexcharts-tooltip-text-goals-value:empty,.apexcharts-tooltip-text-y-label:empty,.apexcharts-tooltip-text-y-value:empty,.apexcharts-tooltip-text-z-value:empty,.apexcharts-tooltip-title:empty {\\n display: none\\n}\\n\\n.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {\\n padding: 6px 0 5px\\n}\\n\\n.apexcharts-tooltip-goals-group,.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {\\n display: flex\\n}\\n\\n.apexcharts-tooltip-text-goals-label:not(:empty),.apexcharts-tooltip-text-goals-value:not(:empty) {\\n margin-top: -6px\\n}\\n\\n.apexcharts-tooltip-marker {\\n width: 12px;\\n height: 12px;\\n position: relative;\\n top: 0;\\n margin-right: 10px;\\n border-radius: 50%\\n}\\n\\n.apexcharts-tooltip-series-group {\\n padding: 0 10px;\\n display: none;\\n text-align: left;\\n justify-content: left;\\n align-items: center\\n}\\n\\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\\n opacity: 1\\n}\\n\\n.apexcharts-tooltip-series-group.apexcharts-active,.apexcharts-tooltip-series-group:last-child {\\n padding-bottom: 4px\\n}\\n\\n.apexcharts-tooltip-series-group-hidden {\\n opacity: 0;\\n height: 0;\\n line-height: 0;\\n padding: 0!important\\n}\\n\\n.apexcharts-tooltip-y-group {\\n padding: 6px 0 5px\\n}\\n\\n.apexcharts-custom-tooltip,.apexcharts-tooltip-box {\\n padding: 4px 8px\\n}\\n\\n.apexcharts-tooltip-boxPlot {\\n display: flex;\\n flex-direction: column-reverse\\n}\\n\\n.apexcharts-tooltip-box>div {\\n margin: 4px 0\\n}\\n\\n.apexcharts-tooltip-box span.value {\\n font-weight: 700\\n}\\n\\n.apexcharts-tooltip-rangebar {\\n padding: 5px 8px\\n}\\n\\n.apexcharts-tooltip-rangebar .category {\\n font-weight: 600;\\n color: #777\\n}\\n\\n.apexcharts-tooltip-rangebar .series-name {\\n font-weight: 700;\\n display: block;\\n margin-bottom: 5px\\n}\\n\\n.apexcharts-xaxistooltip,.apexcharts-yaxistooltip {\\n opacity: 0;\\n pointer-events: none;\\n color: #373d3f;\\n font-size: 13px;\\n text-align: center;\\n border-radius: 2px;\\n position: absolute;\\n z-index: 10;\\n background: #eceff1;\\n border: 1px solid #90a4ae\\n}\\n\\n.apexcharts-xaxistooltip {\\n padding: 9px 10px;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\\n background: rgba(0,0,0,.7);\\n border: 1px solid rgba(0,0,0,.5);\\n color: #fff\\n}\\n\\n.apexcharts-xaxistooltip:after,.apexcharts-xaxistooltip:before {\\n left: 50%;\\n border: solid transparent;\\n content: \" \";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none\\n}\\n\\n.apexcharts-xaxistooltip:after {\\n border-color: transparent;\\n border-width: 6px;\\n margin-left: -6px\\n}\\n\\n.apexcharts-xaxistooltip:before {\\n border-color: transparent;\\n border-width: 7px;\\n margin-left: -7px\\n}\\n\\n.apexcharts-xaxistooltip-bottom:after,.apexcharts-xaxistooltip-bottom:before {\\n bottom: 100%\\n}\\n\\n.apexcharts-xaxistooltip-top:after,.apexcharts-xaxistooltip-top:before {\\n top: 100%\\n}\\n\\n.apexcharts-xaxistooltip-bottom:after {\\n border-bottom-color: #eceff1\\n}\\n\\n.apexcharts-xaxistooltip-bottom:before {\\n border-bottom-color: #90a4ae\\n}\\n\\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\\n border-bottom-color: rgba(0,0,0,.5)\\n}\\n\\n.apexcharts-xaxistooltip-top:after {\\n border-top-color: #eceff1\\n}\\n\\n.apexcharts-xaxistooltip-top:before {\\n border-top-color: #90a4ae\\n}\\n\\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\\n border-top-color: rgba(0,0,0,.5)\\n}\\n\\n.apexcharts-xaxistooltip.apexcharts-active {\\n opacity: 1;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-yaxistooltip {\\n padding: 4px 10px\\n}\\n\\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\\n background: rgba(0,0,0,.7);\\n border: 1px solid rgba(0,0,0,.5);\\n color: #fff\\n}\\n\\n.apexcharts-yaxistooltip:after,.apexcharts-yaxistooltip:before {\\n top: 50%;\\n border: solid transparent;\\n content: \" \";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none\\n}\\n\\n.apexcharts-yaxistooltip:after {\\n border-color: transparent;\\n border-width: 6px;\\n margin-top: -6px\\n}\\n\\n.apexcharts-yaxistooltip:before {\\n border-color: transparent;\\n border-width: 7px;\\n margin-top: -7px\\n}\\n\\n.apexcharts-yaxistooltip-left:after,.apexcharts-yaxistooltip-left:before {\\n left: 100%\\n}\\n\\n.apexcharts-yaxistooltip-right:after,.apexcharts-yaxistooltip-right:before {\\n right: 100%\\n}\\n\\n.apexcharts-yaxistooltip-left:after {\\n border-left-color: #eceff1\\n}\\n\\n.apexcharts-yaxistooltip-left:before {\\n border-left-color: #90a4ae\\n}\\n\\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\\n border-left-color: rgba(0,0,0,.5)\\n}\\n\\n.apexcharts-yaxistooltip-right:after {\\n border-right-color: #eceff1\\n}\\n\\n.apexcharts-yaxistooltip-right:before {\\n border-right-color: #90a4ae\\n}\\n\\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\\n border-right-color: rgba(0,0,0,.5)\\n}\\n\\n.apexcharts-yaxistooltip.apexcharts-active {\\n opacity: 1\\n}\\n\\n.apexcharts-yaxistooltip-hidden {\\n display: none\\n}\\n\\n.apexcharts-xcrosshairs,.apexcharts-ycrosshairs {\\n pointer-events: none;\\n opacity: 0;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-xcrosshairs.apexcharts-active,.apexcharts-ycrosshairs.apexcharts-active {\\n opacity: 1;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-ycrosshairs-hidden {\\n opacity: 0\\n}\\n\\n.apexcharts-selection-rect {\\n cursor: move\\n}\\n\\n.svg_select_boundingRect,.svg_select_points_rot {\\n pointer-events: none;\\n opacity: 0;\\n visibility: hidden\\n}\\n\\n.apexcharts-selection-rect+g .svg_select_boundingRect,.apexcharts-selection-rect+g .svg_select_points_rot {\\n opacity: 0;\\n visibility: hidden\\n}\\n\\n.apexcharts-selection-rect+g .svg_select_points_l,.apexcharts-selection-rect+g .svg_select_points_r {\\n cursor: ew-resize;\\n opacity: 1;\\n visibility: visible\\n}\\n\\n.svg_select_points {\\n fill: #efefef;\\n stroke: #333;\\n rx: 2\\n}\\n\\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\\n cursor: crosshair\\n}\\n\\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\\n cursor: move\\n}\\n\\n.apexcharts-menu-icon,.apexcharts-pan-icon,.apexcharts-reset-icon,.apexcharts-selection-icon,.apexcharts-toolbar-custom-icon,.apexcharts-zoom-icon,.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {\\n cursor: pointer;\\n width: 20px;\\n height: 20px;\\n line-height: 24px;\\n color: #6e8192;\\n text-align: center\\n}\\n\\n.apexcharts-menu-icon svg,.apexcharts-reset-icon svg,.apexcharts-zoom-icon svg,.apexcharts-zoomin-icon svg,.apexcharts-zoomout-icon svg {\\n fill: #6e8192\\n}\\n\\n.apexcharts-selection-icon svg {\\n fill: #444;\\n transform: scale(.76)\\n}\\n\\n.apexcharts-theme-dark .apexcharts-menu-icon svg,.apexcharts-theme-dark .apexcharts-pan-icon svg,.apexcharts-theme-dark .apexcharts-reset-icon svg,.apexcharts-theme-dark .apexcharts-selection-icon svg,.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg,.apexcharts-theme-dark .apexcharts-zoom-icon svg,.apexcharts-theme-dark .apexcharts-zoomin-icon svg,.apexcharts-theme-dark .apexcharts-zoomout-icon svg {\\n fill: #f3f4f5\\n}\\n\\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg {\\n fill: #008ffb\\n}\\n\\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg,.apexcharts-theme-light .apexcharts-reset-icon:hover svg,.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg {\\n fill: #333\\n}\\n\\n.apexcharts-menu-icon,.apexcharts-selection-icon {\\n position: relative\\n}\\n\\n.apexcharts-reset-icon {\\n margin-left: 5px\\n}\\n\\n.apexcharts-menu-icon,.apexcharts-reset-icon,.apexcharts-zoom-icon {\\n transform: scale(.85)\\n}\\n\\n.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {\\n transform: scale(.7)\\n}\\n\\n.apexcharts-zoomout-icon {\\n margin-right: 3px\\n}\\n\\n.apexcharts-pan-icon {\\n transform: scale(.62);\\n position: relative;\\n left: 1px;\\n top: 0\\n}\\n\\n.apexcharts-pan-icon svg {\\n fill: #fff;\\n stroke: #6e8192;\\n stroke-width: 2\\n}\\n\\n.apexcharts-pan-icon.apexcharts-selected svg {\\n stroke: #008ffb\\n}\\n\\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\\n stroke: #333\\n}\\n\\n.apexcharts-toolbar {\\n position: absolute;\\n z-index: 11;\\n max-width: 176px;\\n text-align: right;\\n border-radius: 3px;\\n padding: 0 6px 2px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center\\n}\\n\\n.apexcharts-menu {\\n background: #fff;\\n position: absolute;\\n top: 100%;\\n border: 1px solid #ddd;\\n border-radius: 3px;\\n padding: 3px;\\n right: 10px;\\n opacity: 0;\\n min-width: 110px;\\n transition: .15s ease all;\\n pointer-events: none\\n}\\n\\n.apexcharts-menu.apexcharts-menu-open {\\n opacity: 1;\\n pointer-events: all;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-menu-item {\\n padding: 6px 7px;\\n font-size: 12px;\\n cursor: pointer\\n}\\n\\n.apexcharts-theme-light .apexcharts-menu-item:hover {\\n background: #eee\\n}\\n\\n.apexcharts-theme-dark .apexcharts-menu {\\n background: rgba(0,0,0,.7);\\n color: #fff\\n}\\n\\n@media screen and (min-width:768px) {\\n .apexcharts-canvas:hover .apexcharts-toolbar {\\n opacity: 1\\n }\\n}\\n\\n.apexcharts-canvas .apexcharts-element-hidden,.apexcharts-datalabel.apexcharts-element-hidden,.apexcharts-hide .apexcharts-series-points {\\n opacity: 0\\n}\\n\\n.apexcharts-hidden-element-shown {\\n opacity: 1;\\n transition: 0.25s ease all;\\n}\\n.apexcharts-datalabel,.apexcharts-datalabel-label,.apexcharts-datalabel-value,.apexcharts-datalabels,.apexcharts-pie-label {\\n cursor: default;\\n pointer-events: none\\n}\\n\\n.apexcharts-pie-label-delay {\\n opacity: 0;\\n animation-name: opaque;\\n animation-duration: .3s;\\n animation-fill-mode: forwards;\\n animation-timing-function: ease\\n}\\n\\n.apexcharts-annotation-rect,.apexcharts-area-series .apexcharts-area,.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-gridline,.apexcharts-line,.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-point-annotation-label,.apexcharts-radar-series path,.apexcharts-radar-series polygon,.apexcharts-toolbar svg,.apexcharts-tooltip .apexcharts-marker,.apexcharts-xaxis-annotation-label,.apexcharts-yaxis-annotation-label,.apexcharts-zoom-rect {\\n pointer-events: none\\n}\\n\\n.apexcharts-marker {\\n transition: .15s ease all\\n}\\n\\n.resize-triggers {\\n animation: 1ms resizeanim;\\n visibility: hidden;\\n opacity: 0;\\n height: 100%;\\n width: 100%;\\n overflow: hidden\\n}\\n\\n.contract-trigger:before,.resize-triggers,.resize-triggers>div {\\n content: \" \";\\n display: block;\\n position: absolute;\\n top: 0;\\n left: 0\\n}\\n\\n.resize-triggers>div {\\n height: 100%;\\n width: 100%;\\n background: #eee;\\n overflow: auto\\n}\\n\\n.contract-trigger:before {\\n overflow: hidden;\\n width: 200%;\\n height: 200%\\n}\\n',r?s.prepend(t.css):o.head.appendChild(t.css))}var l=t.create(t.w.config.series,{});if(!l)return e(t);t.mount(l).then((function(){\"function\"==typeof t.w.config.chart.events.mounted&&t.w.config.chart.events.mounted(t,t.w),t.events.fireEvent(\"mounted\",[t,t.w]),e(l)})).catch((function(t){i(t)}))}else i(new Error(\"Element not found\"))}))}},{key:\"create\",value:function(t,e){var i=this.w;new Ot(this).initModules();var a=this.w.globals;(a.noData=!1,a.animationEnded=!1,this.responsive.checkResponsiveConfig(e),i.config.xaxis.convertedCatToNumeric)&&new z(i.config).convertCatToNumericXaxis(i.config,this.ctx);if(null===this.el)return a.animationEnded=!0,null;if(this.core.setupElements(),\"treemap\"===i.config.chart.type&&(i.config.grid.show=!1,i.config.yaxis[0].show=!1),0===a.svgWidth)return a.animationEnded=!0,null;var s=y.checkComboSeries(t);a.comboCharts=s.comboCharts,a.comboBarCount=s.comboBarCount;var r=t.every((function(t){return t.data&&0===t.data.length}));(0===t.length||r)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(t),this.theme.init(),new H(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),a.noData&&a.collapsedSeries.length!==a.series.length&&!i.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),a.axisCharts&&(this.core.coreCalculations(),\"category\"!==i.config.xaxis.type&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=i.globals.minX,this.ctx.toolbar.maxX=i.globals.maxX),this.formatters.heatmapLabelFormatters(),new y(this).getLargestMarkerSize(),this.dimensions.plotCoords();var o=this.core.xySettings();this.grid.createGridMask();var n=this.core.plotChartType(t,o),l=new O(this);return l.bringForward(),i.config.dataLabels.background.enabled&&l.dataLabelsBackground(),this.core.shiftGraphPosition(),{elGraph:n,xyRatios:o,dimensions:{plot:{left:i.globals.translateX,top:i.globals.translateY,width:i.globals.gridWidth,height:i.globals.gridHeight}}}}},{key:\"mount\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=this,a=i.w;return new Promise((function(s,r){if(null===i.el)return r(new Error(\"Not enough data to display or target element not found\"));(null===e||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),i.grid=new j(i);var o=i.grid.drawGrid();if(i.annotations=new P(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),\"back\"===a.config.grid.position&&o&&a.globals.dom.elGraphical.add(o.el),Array.isArray(e.elGraph))for(var n=0;n<e.elGraph.length;n++)a.globals.dom.elGraphical.add(e.elGraph[n]);else a.globals.dom.elGraphical.add(e.elGraph);\"front\"===a.config.grid.position&&o&&a.globals.dom.elGraphical.add(o.el),o&&o.elGridBorders&&o.elGridBorders.node&&a.globals.dom.elGraphical.add(o.elGridBorders),\"front\"===a.config.xaxis.crosshairs.position&&i.crosshairs.drawXCrosshairs(),\"front\"===a.config.yaxis[0].crosshairs.position&&i.crosshairs.drawYCrosshairs(),\"treemap\"!==a.config.chart.type&&i.axes.drawAxis(a.config.chart.type,o);var l=new V(t.ctx,o),h=new q(t.ctx,o);if(null!==o&&(l.xAxisLabelCorrections(o.xAxisTickWidth),h.setYAxisTextAlignments(),a.config.yaxis.map((function(t,e){-1===a.globals.ignoreYAxisIndexes.indexOf(e)&&h.yAxisTitleRotate(e,t.opposite)}))),i.annotations.drawAxesAnnotations(),!a.globals.noData){if(a.config.tooltip.enabled&&!a.globals.noData&&i.w.globals.tooltip.drawTooltip(e.xyRatios),a.globals.axisCharts&&(a.globals.isXNumeric||a.config.xaxis.convertedCatToNumeric||a.globals.isRangeBar))(a.config.chart.zoom.enabled||a.config.chart.selection&&a.config.chart.selection.enabled||a.config.chart.pan&&a.config.chart.pan.enabled)&&i.zoomPanSelection.init({xyRatios:e.xyRatios});else{var c=a.config.chart.toolbar.tools;[\"zoom\",\"zoomin\",\"zoomout\",\"selection\",\"pan\",\"reset\"].forEach((function(t){c[t]=!1}))}a.config.chart.toolbar.show&&!a.globals.allSeriesCollapsed&&i.toolbar.createToolbar()}a.globals.memory.methodsToExec.length>0&&a.globals.memory.methodsToExec.forEach((function(t){t.method(t.params,!1,t.context)})),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)}))}},{key:\"destroy\",value:function(){var t,e;window.removeEventListener(\"resize\",this.windowResizeHandler),this.el.parentNode,t=this.parentResizeHandler,(e=Wt.get(t))&&(e.disconnect(),Wt.delete(t));var i=this.w.config.chart.id;i&&Apex._chartInstances.forEach((function(t,e){t.id===x.escapeString(i)&&Apex._chartInstances.splice(e,1)})),new Nt(this.ctx).clear({isUpdating:!1})}},{key:\"updateOptions\",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=this.w;return o.globals.selection=void 0,t.series&&(this.series.resetSeries(!1,!0,!1),t.series.length&&t.series[0].data&&(t.series=t.series.map((function(t,i){return e.updateHelpers._extendSeries(t,i)}))),this.updateHelpers.revertDefaultAxisMinMax()),t.xaxis&&(t=this.updateHelpers.forceXAxisUpdate(t)),t.yaxis&&(t=this.updateHelpers.forceYAxisUpdate(t)),o.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this.updateHelpers._updateOptions(t,i,a,s,r)}},{key:\"updateSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(t,e,i)}},{key:\"appendSeries\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,e,i)}},{key:\"appendData\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s<a.length;s++)if(null!==t[s]&&void 0!==t[s])for(var r=0;r<t[s].data.length;r++)a[s].data.push(t[s].data[r]);return i.w.config.series=a,e&&(i.w.globals.initialSeries=x.clone(i.w.config.series)),this.update()}},{key:\"update\",value:function(t){var e=this;return new Promise((function(i,a){new Nt(e.ctx).clear({isUpdating:!0});var s=e.create(e.w.config.series,t);if(!s)return i(e);e.mount(s).then((function(){\"function\"==typeof e.w.config.chart.events.updated&&e.w.config.chart.events.updated(e,e.w),e.events.fireEvent(\"updated\",[e,e.w]),e.w.globals.isDirty=!0,i(e)})).catch((function(t){a(t)}))}))}},{key:\"getSyncedCharts\",value:function(){var t=this.getGroupedCharts(),e=[this];return t.length&&(e=[],t.forEach((function(t){e.push(t)}))),e}},{key:\"getGroupedCharts\",value:function(){var t=this;return Apex._chartInstances.filter((function(t){if(t.group)return!0})).map((function(e){return t.w.config.chart.group===e.group?e.chart:t}))}},{key:\"toggleSeries\",value:function(t){return this.series.toggleSeries(t)}},{key:\"highlightSeriesOnLegendHover\",value:function(t,e){return this.series.toggleSeriesOnHover(t,e)}},{key:\"showSeries\",value:function(t){this.series.showSeries(t)}},{key:\"hideSeries\",value:function(t){this.series.hideSeries(t)}},{key:\"resetSeries\",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.series.resetSeries(t,e)}},{key:\"addEventListener\",value:function(t,e){this.events.addEventListener(t,e)}},{key:\"removeEventListener\",value:function(t,e){this.events.removeEventListener(t,e)}},{key:\"addXaxisAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:\"addYaxisAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:\"addPointAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:\"clearAnnotations\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:\"removeAnnotation\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:\"getChartArea\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-inner\")}},{key:\"getSeriesTotalXRange\",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:\"getHighestValueInSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new U(this.ctx).getMinYMaxY(t).highestY}},{key:\"getLowestValueInSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new U(this.ctx).getMinYMaxY(t).lowestY}},{key:\"getSeriesTotal\",value:function(){return this.w.globals.seriesTotals}},{key:\"toggleDataPointSelection\",value:function(t,e){return this.updateHelpers.toggleDataPointSelection(t,e)}},{key:\"zoomX\",value:function(t,e){this.ctx.toolbar.zoomUpdateOptions(t,e)}},{key:\"setLocale\",value:function(t){this.localization.setCurrentLocaleValues(t)}},{key:\"dataURI\",value:function(t){return new G(this.ctx).dataURI(t)}},{key:\"exportToCSV\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new G(this.ctx).exportToCSV(t)}},{key:\"paper\",value:function(){return this.w.globals.dom.Paper}},{key:\"_parentResizeCallback\",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:\"_windowResize\",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout((function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.ctx.update()}),150)}},{key:\"_windowResizeHandler\",value:function(){var t=this.w.config.chart.redrawOnWindowResize;\"function\"==typeof t&&(t=t()),t&&this._windowResize()}}],[{key:\"getChartByID\",value:function(t){var e=x.escapeString(t),i=Apex._chartInstances.filter((function(t){return t.id===e}))[0];return i&&i.chart}},{key:\"initOnLoad\",value:function(){for(var e=document.querySelectorAll(\"[data-apexcharts]\"),i=0;i<e.length;i++){new t(e[i],JSON.parse(e[i].getAttribute(\"data-options\"))).render()}}},{key:\"exec\",value:function(t,e){var i=this.getChartByID(t);if(i){i.w.globals.isExecCalled=!0;var a=null;if(-1!==i.publicMethods.indexOf(e)){for(var s=arguments.length,r=new Array(s>2?s-2:0),o=2;o<s;o++)r[o-2]=arguments[o];a=i[e].apply(i,r)}return a}}},{key:\"merge\",value:function(t,e){return x.extend(t,e)}}]),t}();module.exports=Bt;\n","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"8875\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')\n // for chrome\n if (!descriptor && 'currentScript' in document && document.currentScript) {\n return document.currentScript\n }\n\n // for other browsers with native support for currentScript\n if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*<script>([\\\\d\\\\D]*?)<\\\\/script>[\\\\d\\\\D]*', 'i');\n inlineScriptSource = pageSource.replace(inlineScriptSourceRegExp, '$1').trim();\n }\n \n for (var i = 0; i < scripts.length; i++) {\n // If ready state is interactive, return the script tag\n if (scripts[i].readyState === 'interactive') {\n return scripts[i];\n }\n \n // If src matches, return the script tag\n if (scripts[i].src === scriptLocation) {\n return scripts[i];\n }\n \n // If inline source matches, return the script tag\n if (\n scriptLocation === currentLocation &&\n scripts[i].innerHTML &&\n scripts[i].innerHTML.trim() === inlineScriptSource\n ) {\n return scripts[i];\n }\n }\n \n // If no match, return null\n return null;\n }\n };\n\n return getCurrentScript\n}));\n\n\n/***/ }),\n\n/***/ \"8bbf\":\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"vue\");\n\n/***/ }),\n\n/***/ \"95e6\":\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"apexcharts\");\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (true) {\n var getCurrentScript = __webpack_require__(\"8875\")\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_require__.p = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}\nvar external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__(\"8bbf\");\n\n// EXTERNAL MODULE: external {\"root\":\"ApexCharts\",\"commonjs\":\"apexcharts\",\"commonjs2\":\"apexcharts\"}\nvar external_root_ApexCharts_commonjs_apexcharts_commonjs2_apexcharts_ = __webpack_require__(\"95e6\");\nvar external_root_ApexCharts_commonjs_apexcharts_commonjs2_apexcharts_default = /*#__PURE__*/__webpack_require__.n(external_root_ApexCharts_commonjs_apexcharts_commonjs2_apexcharts_);\n\n// CONCATENATED MODULE: ./src/vue3-apexcharts.js\n/* eslint-disable */\n\n\n\n// define all emitted events in order to better\n// document how the component should work\nconst events = [\n \"animationEnd\",\n \"beforeMount\",\n \"mounted\",\n \"updated\",\n \"click\",\n \"mouseMove\",\n \"legendClick\",\n \"markerClick\",\n \"selection\",\n \"dataPointSelection\",\n \"dataPointMouseEnter\",\n \"dataPointMouseLeave\",\n \"beforeZoom\",\n \"beforeResetZoom\",\n \"zoomed\",\n \"scrolled\",\n \"scrolled\"\n];\n\nconst vueApexcharts = Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"defineComponent\"])({\n name: \"apexchart\",\n props: {\n options: {\n type: Object\n },\n type: {\n type: String\n },\n series: {\n type: Array,\n required: true\n },\n width: {\n default: \"100%\"\n },\n height: {\n default: \"auto\"\n }\n },\n\n // events emitted by this component\n emits: events,\n\n setup(props, { emit }) {\n const __el = Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"ref\"])(null);\n const chart = Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"ref\"])(null);\n\n const isObject = item => {\n return item && typeof item === \"object\" && !Array.isArray(item) && item != null;\n };\n\n const extend = (target, source) => {\n if (typeof Object.assign !== \"function\") {\n (function() {\n Object.assign = function(target) {\n // We must check against these specific cases.\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n\n let output = Object(target);\n for (let index = 1; index < arguments.length; index++) {\n let source = arguments[index];\n if (source !== undefined && source !== null) {\n for (let nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n })();\n }\n\n let output = Object.assign({}, target);\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach(key => {\n if (isObject(source[key])) {\n if (!(key in target)) {\n Object.assign(output, {\n [key]: source[key]\n });\n } else {\n output[key] = extend(target[key], source[key]);\n }\n } else {\n Object.assign(output, {\n [key]: source[key]\n });\n }\n });\n }\n return output;\n };\n\n const init = async () => {\n await Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"nextTick\"])();\n\n const newOptions = {\n chart: {\n type: props.type || props.options.chart.type || \"line\",\n height: props.height,\n width: props.width,\n events: {}\n },\n series: props.series\n };\n\n // emit events to the parent component\n // to allow for two-way data binding\n events.forEach(event => {\n let callback = (...args) => emit(event, ...args); // args => chartContext, options\n newOptions.chart.events[event] = callback;\n });\n\n const config = extend(props.options, newOptions);\n chart.value = new external_root_ApexCharts_commonjs_apexcharts_commonjs2_apexcharts_default.a(__el.value, config);\n return chart.value.render();\n };\n\n const refresh = () => {\n destroy();\n return init();\n };\n\n const destroy = () => {\n chart.value.destroy();\n };\n\n const updateSeries = (newSeries, animate) => {\n return chart.value.updateSeries(newSeries, animate);\n };\n\n const updateOptions = (newOptions, redrawPaths, animate, updateSyncedCharts) => {\n return chart.value.updateOptions(newOptions, redrawPaths, animate, updateSyncedCharts);\n };\n\n const toggleSeries = seriesName => {\n return chart.value.toggleSeries(seriesName);\n };\n\n const showSeries = seriesName => {\n chart.value.showSeries(seriesName);\n };\n\n const hideSeries = seriesName => {\n chart.value.hideSeries(seriesName);\n };\n\n const appendSeries = (newSeries, animate) => {\n return chart.value.appendSeries(newSeries, animate);\n };\n\n const resetSeries = () => {\n chart.value.resetSeries();\n };\n\n const toggleDataPointSelection = (seriesIndex, dataPointIndex) => {\n chart.value.toggleDataPointSelection(seriesIndex, dataPointIndex);\n };\n\n const appendData = newData => {\n return chart.value.appendData(newData);\n };\n\n const zoomX = (start, end) => {\n return chart.value.zoomX(start, end);\n };\n\n const dataURI = () => {\n return chart.value.dataURI();\n };\n\n const setLocale = localeName => {\n return chart.value.setLocale(localeName);\n };\n\n const addXaxisAnnotation = (options, pushToMemory) => {\n chart.value.addXaxisAnnotation(options, pushToMemory);\n };\n\n const addYaxisAnnotation = (options, pushToMemory) => {\n chart.value.addYaxisAnnotation(options, pushToMemory);\n };\n\n const addPointAnnotation = (options, pushToMemory) => {\n chart.value.addPointAnnotation(options, pushToMemory);\n };\n\n const removeAnnotation = (id, options) => {\n chart.value.removeAnnotation(id, options);\n };\n\n const clearAnnotations = () => {\n chart.value.clearAnnotations();\n };\n\n Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"onBeforeMount\"])(() => {\n window.ApexCharts = external_root_ApexCharts_commonjs_apexcharts_commonjs2_apexcharts_default.a;\n });\n\n Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"onMounted\"])(() => {\n __el.value = Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"getCurrentInstance\"])().proxy.$el;\n init();\n });\n\n Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"onBeforeUnmount\"])(() => {\n if (!chart.value) {\n return;\n }\n destroy();\n });\n\n const reactiveProps = Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"toRefs\"])(props);\n Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"watch\"])(reactiveProps.options, () => {\n if (!chart.value && props.options) {\n init();\n } else {\n chart.value.updateOptions(props.options);\n }\n });\n\n Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"watch\"])(\n reactiveProps.series,\n () => {\n if (!chart.value && props.series) {\n init();\n } else {\n chart.value.updateSeries(props.series);\n }\n },\n { deep: true }\n );\n\n Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"watch\"])(reactiveProps.type, () => {\n refresh();\n });\n\n Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"watch\"])(reactiveProps.width, () => {\n refresh();\n });\n\n Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"watch\"])(reactiveProps.height, () => {\n refresh();\n });\n\n return {\n chart,\n init,\n refresh,\n destroy,\n updateOptions,\n updateSeries,\n toggleSeries,\n showSeries,\n hideSeries,\n resetSeries,\n zoomX,\n toggleDataPointSelection,\n appendData,\n appendSeries,\n addXaxisAnnotation,\n addYaxisAnnotation,\n addPointAnnotation,\n removeAnnotation,\n clearAnnotations,\n dataURI\n };\n },\n\n render() {\n return Object(external_commonjs_vue_commonjs2_vue_root_Vue_[\"h\"])(\"div\", {\n class: \"vue-apexcharts\",\n });\n }\n});\n\n/* harmony default export */ var vue3_apexcharts = (vueApexcharts);\n\n// CONCATENATED MODULE: ./src/index.js\n/* eslint-disable */\n\n\nconst install = app => {\n app.component(vue3_apexcharts.name, vue3_apexcharts);\n};\n\nvue3_apexcharts.install = install;\n\n/* harmony default export */ var src_0 = (vue3_apexcharts);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (src_0);\n\n\n\n/***/ })\n\n/******/ });\n//# sourceMappingURL=vue3-apexcharts.common.js.map","<template>\n <KpiChart :chart-options=\"chartOptions\" :chart-series=\"series\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport type { ApexOptions } from \"apexcharts\";\nimport { PIE_DONUTS_COLORS } from \"@/models/questionKpi\";\nimport KpiChart from \"@/views/admin/ai-assistant/components/kpis/KpiChart.vue\";\n\ninterface Props {\n series: number[];\n seriesPercentage: number[];\n labels: string[];\n}\n\nconst props = defineProps<Props>();\n\nconst chartOptions: ApexOptions = {\n labels: props.labels,\n chart: {\n type: \"donut\",\n selection: {\n enabled: false,\n },\n },\n states: {\n active: {\n filter: {\n type: \"none\",\n },\n },\n hover: {\n filter: {\n type: \"none\",\n },\n },\n normal: {\n filter: {\n type: \"none\",\n },\n },\n },\n colors: PIE_DONUTS_COLORS,\n plotOptions: {\n pie: {\n donut: {\n background: \"transparent\",\n labels: {\n show: false,\n },\n },\n expandOnClick: false,\n },\n },\n dataLabels: {\n enabled: false,\n },\n fill: {\n type: \"solid\",\n },\n legend: {\n show: true,\n position: \"right\",\n },\n tooltip: {\n enabled: true,\n fillSeriesColor: false,\n marker: {\n show: false,\n },\n style: {\n fontSize: \"11px\",\n },\n y: {\n formatter: function (_value, { seriesIndex }) {\n return props.seriesPercentage[seriesIndex] + \"%\";\n },\n },\n },\n};\n</script>\n","<template>\n <KpiChart :chart-options=\"chartOptions\" :chart-series=\"series\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport type { ApexOptions } from \"apexcharts\";\nimport { PIE_DONUTS_COLORS } from \"@/models/questionKpi\";\nimport KpiChart from \"@/views/admin/ai-assistant/components/kpis/KpiChart.vue\";\nimport { formatNumber } from \"@/utils/numberUtils\";\n\ninterface Props {\n series: number[];\n seriesPercentage: number[];\n labels: string[];\n}\nconst props = defineProps<Props>();\n\nconst chartOptions: ApexOptions = {\n labels: props.labels,\n chart: {\n type: \"pie\",\n selection: {\n enabled: false,\n },\n },\n stroke: {\n colors: [\"#fff\"],\n },\n states: {\n active: {\n filter: {\n type: \"none\",\n },\n },\n hover: {\n filter: {\n type: \"none\",\n },\n },\n normal: {\n filter: {\n type: \"none\",\n },\n },\n },\n colors: PIE_DONUTS_COLORS,\n dataLabels: {\n enabled: false,\n },\n fill: {\n opacity: 0.8,\n },\n legend: {\n show: true,\n position: \"right\",\n },\n tooltip: {\n enabled: true,\n fillSeriesColor: false,\n marker: {\n show: false,\n },\n style: {\n fontSize: \"11px\",\n },\n y: {\n formatter: (_value, { seriesIndex }) => `${formatNumber(props.seriesPercentage[seriesIndex])} %`,\n },\n },\n};\n</script>\n","<template>\n <KpiChart :chart-options=\"chartOptions\" :chart-series=\"superSeries\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport type { ApexOptions } from \"apexcharts\";\nimport i18n from \"@/i18n\";\nimport KpiChart from \"@/views/admin/ai-assistant/components/kpis/KpiChart.vue\";\nimport { formatNumber } from \"@/utils/numberUtils\";\n\ninterface Props {\n series: number[];\n seriesPercentage: number[];\n}\n\nconst props = defineProps<Props>();\nconst labels = [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\"];\nconst data = props.series.map((value: number, index: number) => {\n return {\n x: labels[index],\n y: value,\n };\n});\nconst superSeries = [{ data }];\nconst chartColors = [\"#1E9AC6\"];\nconst chartOptions: ApexOptions = {\n chart: {\n type: \"bar\",\n toolbar: {\n show: false,\n },\n selection: {\n enabled: false,\n },\n },\n grid: {\n show: true,\n xaxis: {\n lines: {\n show: true,\n },\n },\n yaxis: {\n lines: {\n show: false,\n },\n },\n },\n plotOptions: {\n bar: {\n borderRadius: 0,\n horizontal: true,\n distributed: true,\n },\n },\n states: {\n active: {\n filter: {\n type: \"none\",\n },\n },\n hover: {\n filter: {\n type: \"none\",\n },\n },\n normal: {\n filter: {\n type: \"none\",\n },\n },\n },\n colors: chartColors,\n dataLabels: {\n enabled: false,\n },\n fill: {\n opacity: 0.8,\n },\n legend: {\n show: false,\n },\n tooltip: {\n enabled: true,\n fillSeriesColor: false,\n marker: {\n show: false,\n },\n style: {\n fontSize: \"11px\",\n },\n y: {\n title: {\n formatter(): string {\n return \"\";\n },\n },\n formatter: (_value, { dataPointIndex }) => `${formatNumber(props.seriesPercentage[dataPointIndex])} %`,\n },\n },\n xaxis: {\n categories: labels,\n title: {\n text: i18n.global.t(\"level_KPI.x.title\"),\n },\n },\n};\n</script>\n","<template>\n <KpiChart :chart-options=\"chartOptions\" :chart-series=\"superSeries\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport KpiChart from \"@/views/admin/ai-assistant/components/kpis/KpiChart.vue\";\nimport type { ApexOptions } from \"apexcharts\";\nimport { formatNumber } from \"@/utils/numberUtils\";\n\ninterface Props {\n series: number[];\n seriesPercentage: number[];\n labels: string[];\n}\n\nconst props = defineProps<Props>();\n\nconst data = props.series.map((value: number, index: number) => {\n return {\n x: props.labels[index],\n y: value,\n };\n});\nconst superSeries = [{ data }];\nconst chartColors = [\n \"#1E9AC6\",\n \"#272728\",\n \"#3B3B3C\",\n \"#4E4F50\",\n \"#626264\",\n \"#767678\",\n \"#898A8C\",\n \"#9D9DA0\",\n \"#B0B1B4\",\n \"#C4C5C8\",\n \"#D7D8DC\",\n];\nconst chartOptions: ApexOptions = {\n labels: props.labels,\n chart: {\n type: \"treemap\",\n toolbar: {\n show: false,\n },\n selection: {\n enabled: false,\n },\n },\n stroke: {\n colors: [\"#fff\"],\n },\n plotOptions: {\n treemap: {\n distributed: true,\n enableShades: false,\n },\n },\n states: {\n active: {\n filter: {\n type: \"none\",\n },\n },\n hover: {\n filter: {\n type: \"none\",\n },\n },\n normal: {\n filter: {\n type: \"none\",\n },\n },\n },\n colors: chartColors,\n dataLabels: {\n enabled: true,\n },\n fill: {\n opacity: 0.8,\n },\n legend: {\n show: false,\n },\n tooltip: {\n enabled: true,\n fillSeriesColor: false,\n marker: {\n show: false,\n },\n style: {\n fontSize: \"11px\",\n },\n y: {\n formatter: (_value, { dataPointIndex }) => `${formatNumber(props.seriesPercentage[dataPointIndex])} %`,\n },\n },\n};\n</script>\n","<template>\n <div data-cy=\"tags-preview\">\n <AppInputTags v-model=\"sampleTags\" :readonly=\"true\" :label=\"item.title\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport i18n from \"@/i18n\";\n\nimport type { Question } from \"@/models/question\";\nimport AppInputTags from \"@/components/AppInputTags.vue\";\n\ninterface Props {\n item: Question;\n}\ndefineProps<Props>();\n\nconst sampleTags = ref<string[]>([\n i18n.global.t(\"pages.admin.ai_assistant.create_new_survey_form.preview.tag_samples.sample1\"),\n i18n.global.t(\"pages.admin.ai_assistant.create_new_survey_form.preview.tag_samples.sample2\"),\n]);\n</script>\n","<template>\n <div data-cy=\"level-preview\">\n <h2 class=\"margin-b--m text--l\">{{ item.title }}</h2>\n <AppInputRange v-model=\"sampleValue\" :available-values=\"levels\" :min=\"1\" :max=\"3\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport AppInputRange from \"@/components/AppInputRange.vue\";\nimport type { Question } from \"@/models/question\";\n\ninterface Props {\n item: Question;\n}\nconst props = defineProps<Props>();\n\nconst sampleValue = ref<number>(2);\nconst levels: string[] = props.item.levels\n ? [props.item.levels.lowLevelText, props.item.levels.mediumLevelText, props.item.levels.highLevelText]\n : [];\n</script>\n","<template>\n <div data-cy=\"multiple-selection-preview\">\n <h2 class=\"margin-b--m text--l\">{{ item.title }}</h2>\n <AppCheckbox v-for=\"option in item.options\" :key=\"option.optionId\" v-model=\"sampleOption\" :text=\"option.title\" class=\"margin-b--xs\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\n\nimport type { Question } from \"@/models/question\";\nimport AppCheckbox from \"@/components/AppCheckbox.vue\";\n\ninterface Props {\n item: Question;\n}\n\ndefineProps<Props>();\n\nconst sampleOption = ref<boolean>(false);\n</script>\n","<template>\n <div data-cy=\"single-selection-preview\">\n <h2 class=\"margin-b--m text--l\">{{ item.title }}</h2>\n <AppRadioButtonList v-model=\"sampleOption\" :options=\"item.options\" :no-gap=\"true\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport AppRadioButtonList from \"@/components/AppRadioButtonList.vue\";\nimport type { Question } from \"@/models/question\";\nimport type { QuestionOption } from \"@/models/questionOption\";\n\ninterface Props {\n item: Question;\n}\ndefineProps<Props>();\n\nconst sampleOption = ref<QuestionOption>();\n</script>\n","import type { Component } from \"vue\";\nimport type { Question } from \"@/models/question\";\nimport { QuestionType } from \"@/models/questionType\";\nimport AIAssistantAnswerLevel from \"@/views/app/ai-assistant/components/AIAssistantAnswerLevel.vue\";\nimport AIAssistantAnswerLongText from \"@/views/app/ai-assistant/components/AIAssistantAnswerLongText.vue\";\nimport AIAssistantAnswerMultipleSelection from \"@/views/app/ai-assistant/components/AIAssistantAnswerMultipleSelection.vue\";\nimport AIAssistantAnswerShortText from \"@/views/app/ai-assistant/components/AIAssistantAnswerShortText.vue\";\nimport AIAssistantAnswerSingleSelection from \"@/views/app/ai-assistant/components/AIAssistantAnswerSingleSelection.vue\";\nimport AIAssistantAnswerTags from \"@/views/app/ai-assistant/components/AIAssistantAnswerTags.vue\";\nimport SingleChoiceKPI from \"@/views/admin/ai-assistant/components/kpis/SingleChoiceKPI.vue\";\nimport MultipleChoiceKPI from \"@/views/admin/ai-assistant/components/kpis/MultipleChoiceKPI.vue\";\nimport LevelKPI from \"@/views/admin/ai-assistant/components/kpis/LevelKPI.vue\";\nimport TagsKPI from \"@/views/admin/ai-assistant/components/kpis/TagsKPI.vue\";\nimport QuestionShortTextPreview from \"@/views/admin/ai-assistant/components/wizard/previews/QuestionShortTextPreview.vue\";\nimport QuestionLongTextPreview from \"@/views/admin/ai-assistant/components/wizard/previews/QuestionLongTextPreview.vue\";\nimport QuestionTagsPreview from \"@/views/admin/ai-assistant/components/wizard/previews/QuestionTagsPreview.vue\";\nimport QuestionLevelPreview from \"@/views/admin/ai-assistant/components/wizard/previews/QuestionLevelPreview.vue\";\nimport QuestionMultipleSelectionPreview from \"@/views/admin/ai-assistant/components/wizard/previews/QuestionMultipleSelectionPreview.vue\";\nimport QuestionSingleSelectionPreview from \"@/views/admin/ai-assistant/components/wizard/previews/QuestionSingleSelectionPreview.vue\";\n\nconst editors: Map<QuestionType, Component> = new Map<QuestionType, Component>([\n [QuestionType.Level, AIAssistantAnswerLevel],\n [QuestionType.LongText, AIAssistantAnswerLongText],\n [QuestionType.MultipleSelection, AIAssistantAnswerMultipleSelection],\n [QuestionType.ShortText, AIAssistantAnswerShortText],\n [QuestionType.SingleSelection, AIAssistantAnswerSingleSelection],\n [QuestionType.Tags, AIAssistantAnswerTags],\n]);\nexport const getQuestionComponentFor = (question: Question): Component => editors.get(question.type) ?? AIAssistantAnswerShortText;\n\nconst kpiComponents = new Map<QuestionType, Component>([\n [QuestionType.Level, LevelKPI],\n [QuestionType.MultipleSelection, MultipleChoiceKPI],\n [QuestionType.SingleSelection, SingleChoiceKPI],\n [QuestionType.Tags, TagsKPI],\n]);\n\nexport const getQuestionKPIComponentFor = (questionType: QuestionType): Component => kpiComponents.get(questionType) ?? LevelKPI;\n\nconst previewers: Map<QuestionType, Component> = new Map<QuestionType, Component>([\n [QuestionType.Level, QuestionLevelPreview],\n [QuestionType.LongText, QuestionLongTextPreview],\n [QuestionType.MultipleSelection, QuestionMultipleSelectionPreview],\n [QuestionType.ShortText, QuestionShortTextPreview],\n [QuestionType.SingleSelection, QuestionSingleSelectionPreview],\n [QuestionType.Tags, QuestionTagsPreview],\n]);\nexport const getPreviewerComponentFor = (questionType: QuestionType): Component => previewers.get(questionType) ?? QuestionShortTextPreview;\n","<template>\n <Component :is=\"questionComponent\" class=\"answer\" :question=\"item\" :answer-enabled=\"answerEnabled\" @edited=\"edited\" />\n</template>\n\n<script setup lang=\"ts\">\nimport type { Question } from \"@/models/question\";\nimport { getQuestionComponentFor } from \"@/views/app/ai-assistant/utils/questionHelper\";\n\ninterface Props {\n item: Question;\n answerEnabled: boolean;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"edited\", newQuestionState: Question) => void>();\n\nconst questionComponent = getQuestionComponentFor(props.item);\nconst edited = (newQuestionState: Question) => emit(\"edited\", newQuestionState);\n</script>\n<style lang=\"scss\" scoped>\n.answer {\n display: flex;\n flex-direction: row;\n gap: var(--space-s);\n align-items: center;\n justify-content: space-between;\n}\n</style>\n","<template>\n <div class=\"question\">\n <div class=\"question__order text text--bold\">{{ order }}</div>\n <div class=\"question__title text text--bold\">{{ item.title }}</div>\n <div class=\"question__answer\">\n <AIAssistantAnswer :item=\"item\" :answer-enabled=\"answerEnabled\" @edited=\"edited\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AIAssistantAnswer from \"@/views/app/ai-assistant/components/AIAssistantAnswer.vue\";\nimport type { Question } from \"@/models/question\";\n\ninterface Props {\n item: Question;\n order: number;\n answerEnabled: boolean;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"edited\", newQuestionState: Question) => void>();\n\nconst edited = (newQuestionState: Question): void => emit(\"edited\", newQuestionState);\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n\n.question {\n display: flex;\n flex-direction: row;\n gap: var(--space-s);\n align-items: center;\n padding: 0 var(--space-m);\n flex-wrap: wrap;\n\n &__order {\n width: 24px;\n }\n\n &__title {\n flex: 1;\n\n @media only screen and (min-width: $medium-screen-breakpoint) {\n width: 30%;\n }\n }\n\n &__answer {\n width: 100%;\n\n @media only screen and (min-width: $medium-screen-breakpoint) {\n flex-grow: 1;\n width: 30%;\n }\n }\n}\n</style>\n","import type { Question } from \"@/models/question\";\nimport type { Ref } from \"vue\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\n\nconst BASE_URL = \"/api/me/questions\";\nconst { get, loading } = useHttpClient();\n\ninterface UseMeQuestionsServiceReturn {\n getQuestions: () => Promise<Question[]>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseMeQuestionsServiceReturn => {\n const getQuestions = (): Promise<Question[]> => get(BASE_URL);\n\n return { getQuestions, loading };\n};\n","<template>\n <LayoutPage :title=\"$t('pages.ai_assistant.title')\">\n <AppPanel :padding-content=\"false\" class=\"padding-b--0\">\n <template #header>\n <AppTip\n icon=\"document\"\n :title=\"$t('pages.ai_assistant.header.title')\"\n :content=\"$t('pages.ai_assistant.header.subtitle')\"\n no-margin\n data-cy=\"ai-assistant-tip\" />\n </template>\n <template #default>\n <div v-if=\"questionsInView.length > 0\">\n <div v-for=\"(item, index) in questionsInView\" :key=\"item.order\" class=\"row\" data-cy=\"ai-assistant-row\">\n <AIAssistantQuestion :answer-enabled=\"true\" :item=\"item\" :order=\"index + 1 + (currentPage - 1) * pageSize\" @edited=\"edited\" />\n </div>\n </div>\n <div v-else class=\"no-content\">\n <AppNoContentYet :text=\"$t('pages.ai_assistant.no.questions')\" />\n </div>\n </template>\n <template v-if=\"questionsInView.length > 0 && totalPages > 1\" #footer>\n <div class=\"navigation\">\n <AppButton\n :text=\"$t('buttons.previous')\"\n variant=\"secondary\"\n size=\"m\"\n :disabled=\"currentPage === 1\"\n data-cy=\"ai-assistant-prev\"\n @onclick=\"previousPage()\" />\n <AppTag :main-text=\"`${currentPage} / ${totalPages}`\" type=\"presence\" data-cy=\"ai-assistant-page\" :limited-size=\"true\" />\n <AppButton\n :text=\"$t('buttons.next')\"\n variant=\"secondary\"\n size=\"m\"\n :disabled=\"currentPage * pageSize >= totalItemsCount\"\n data-cy=\"ai-assistant-next\"\n @onclick=\"nextPage()\" />\n </div>\n </template>\n </AppPanel>\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref, type Ref } from \"vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport AppTip from \"@/components/AppTip.vue\";\nimport AIAssistantQuestion from \"@/views/app/ai-assistant/components/AIAssistantQuestion.vue\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport type { Question } from \"@/models/question\";\nimport useMeQuestionsService from \"@/services/useMeQuestionsService\";\n\nconst pageSize = 10;\nconst currentPage: Ref<number> = ref<number>(0);\nconst totalPages: Ref<number> = ref<number>(0);\nconst totalItemsCount: Ref<number> = ref<number>(0);\nconst questionsInView: Ref<Question[]> = ref<Question[]>([]);\nconst questions: Ref<Question[]> = ref<Question[]>([]);\n\nconst { getQuestions } = useMeQuestionsService();\n\nconst previousPage = (): void => {\n if (currentPage.value > 1) {\n setCurrentPage(currentPage.value - 1);\n }\n};\nconst nextPage = (): void => {\n if (currentPage.value <= totalPages.value) {\n setCurrentPage(currentPage.value + 1);\n }\n};\nconst setCurrentPage = (newCurrentPage: number) => {\n currentPage.value = newCurrentPage;\n refreshQuestionsInView();\n};\n\nconst edited = (newQuestionState: Question): void => {\n const index: number = questions.value.findIndex((question) => question.id === newQuestionState.id);\n questions.value[index] = newQuestionState;\n refreshQuestionsInView();\n};\n\nonMounted(async () => {\n questions.value = await getQuestions();\n totalItemsCount.value = questions.value.length;\n setCurrentPage(1);\n totalPages.value = Math.ceil(totalItemsCount.value / pageSize);\n});\n\nconst refreshQuestionsInView = (): void => {\n const initialItem = (currentPage.value - 1) * pageSize;\n const finalItem = initialItem + pageSize;\n questionsInView.value = questions.value.slice(initialItem, finalItem) || [];\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.header {\n display: flex;\n flex-direction: row;\n gap: 30px;\n padding: var(--space-m);\n padding-bottom: 0;\n background-color: var(--color-ai-assistant-header-background);\n border-radius: var(--space-xs);\n\n &__text {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n}\n\n.row {\n padding: var(--space-s) 0 var(--space-s) 0;\n border-bottom: 1px solid var(--color-border);\n\n &:last-child {\n border-bottom: none;\n }\n}\n\n.no-content {\n padding: 0 var(--space-m) var(--space-m) var(--space-m);\n}\n\n.navigation {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n</style>\n","import type { Skill } from \"@/models/skill\";\nimport { SkillType } from \"@/models/skillType\";\nimport type { SkillWithProgression } from \"@/models/skillWithProgression\";\n\nexport const getGeneralSkills = function <Type extends Skill>(skills: Type[]): Type[] {\n return skills.filter((skill: Skill) => skill.type === SkillType.General);\n};\n\nexport const getLanguageSkills = (skills: SkillWithProgression[]): SkillWithProgression[] => {\n return skills.filter((skill: Skill) => skill.type === SkillType.Language);\n};\n\nexport type PartiallyRequired<T, K extends keyof T> = Partial<T> & Required<Pick<T, K>>;\n","import type { FileAttachment } from \"@/models/fileAttachment\";\nimport type { SkillWithProgression } from \"@/models/skillWithProgression\";\n\nexport interface JobExperience {\n id: number;\n title: string;\n description: string;\n attachment?: FileAttachment;\n company: string;\n location: string;\n fromDate: Date;\n toDate?: Date;\n}\n\nexport interface CurrentJobExperience extends JobExperience {\n skills: SkillWithProgression[];\n}\n\nexport enum JobExperienceType {\n JobExperience = \"JobExperience\",\n CurrentJobExperience = \"CurrentJobExperience\",\n}\n","<template>\n <div class=\"about-me\">\n <AppNoContentYet v-if=\"!aboutMeRead\" />\n <p v-if=\"aboutMeRead\" class=\"text\" :class=\"{ 'text--line-clamp-3': truncateText }\" v-html=\"toHtml(aboutMeRead)\"></p>\n <AppLinkButton\n v-if=\"formMode !== 'view'\"\n :class=\"{ 'margin-l--xs': !aboutMeRead }\"\n :text=\"$t('buttons.edit')\"\n @click=\"openModal(panelName)\" />\n\n <AppModal :name=\"panelName\" :disable-key-enter=\"true\">\n <AppForm>\n <AppInputTextArea\n v-model=\"aboutMe\"\n :label=\"$t('pages.current_experience.form.about.me.fields.name.label')\"\n :placeholder=\"$t('pages.current_experience.form.about.me.fields.name.placeholder')\"\n :maxlength=\"largeTextLength\"\n :error=\"aboutMeError\" />\n </AppForm>\n </AppModal>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport { useForm, useField } from \"vee-validate\";\nimport i18n from \"@/i18n\";\nimport AppInputTextArea from \"@/components/AppInputTextArea.vue\";\nimport AppModal from \"@/components/modal/AppModal.vue\";\nimport { largeTextLength } from \"@/constants/restrictions\";\nimport useModal from \"@/components/modal/useModal\";\nimport useMeService from \"@/services/useMeService\";\nimport { toHtml } from \"@/utils/stringUtils\";\n\nimport type { FormMode } from \"@/models/formMode\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport AppForm from \"@/components/AppForm.vue\";\nimport useFormValidator from \"@/services/useFormValidator\";\nimport AppLinkButton from \"@/components/AppLinkButton.vue\";\nimport useFormSchema from \"@/services/useFormSchema\";\n\nconst { updateAboutMe } = useMeService();\nconst { openComponentModal } = useModal();\nconst { getFormCallbackHandler } = useFormValidator();\nconst { yupObject, stringSchema } = useFormSchema();\n\nconst panelName = \"aboutMe\";\n\ninterface Props {\n input?: string;\n formMode?: FormMode;\n truncateText?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), { formMode: \"edit\" });\n\nconst resourceSchema = yupObject({\n aboutMe: stringSchema({ maxLength: largeTextLength }),\n});\nconst aboutMeRead = ref<string | undefined>(props.input);\n\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: aboutMe, errorMessage: aboutMeError } = useField<string | undefined>(\"aboutMe\");\n\nonMounted(() => (aboutMe.value = props.input));\n\nconst save = async (): Promise<boolean> => {\n if (!aboutMe.value) {\n return false;\n }\n await updateAboutMe(aboutMe.value);\n aboutMeRead.value = aboutMe.value;\n return true;\n};\n\nconst close = () => {\n form.resetForm();\n aboutMe.value = aboutMeRead.value;\n};\n\nconst openModal = (componentId: string): void => {\n openComponentModal(componentId, {\n title: i18n.global.t(\"pages.current_experience.edit.about.me\"),\n confirmText: i18n.global.t(\"buttons.save\"),\n variant: \"floating\",\n showCancelToClose: true,\n confirmCallback: getFormCallbackHandler(form, save),\n closeCallback: close,\n });\n};\n</script>\n\n<style scoped lang=\"scss\">\n.about-me {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--space-s);\n}\n</style>\n","<template>\n <AppAutomaticModalOpener :modal-config=\"modalConfig\">\n <div class=\"app-current-experience-profile-importer\">\n <AppPanel :dark=\"true\" :border=\"false\">\n <div class=\"instructions\">\n <div class=\"icon-container\">\n <span class=\"icon icon-linkedin margin-r--s\"></span>\n </div>\n {{ $t(\"pages.current_experience.linkedin.content.instructions.title\") }}\n </div>\n </AppPanel>\n <ol class=\"steps\">\n <li class=\"steps__item\">\n <span v-html=\"$t('pages.current_experience.linkedin.content.instructions.step.1')\"></span>\n <a class=\"text text--link\" href=\"https://www.linkedin.com/mypreferences/d/download-my-data\" target=\"_blank\">\n https://www.linkedin.com/mypreferences/d/download-my-data\n </a>\n </li>\n <li class=\"steps__item\" v-html=\"$t('pages.current_experience.linkedin.content.instructions.step.2')\"></li>\n <li class=\"steps__item\" v-html=\"$t('pages.current_experience.linkedin.content.instructions.step.3')\"></li>\n <li class=\"steps__item\" v-html=\"$t('pages.current_experience.linkedin.content.instructions.step.4')\"></li>\n <li class=\"steps__item\" v-html=\"$t('pages.current_experience.linkedin.content.instructions.step.5')\"></li>\n <li class=\"steps__item\" v-html=\"$t('pages.current_experience.linkedin.content.instructions.step.6')\"></li>\n <li class=\"steps__item\" v-html=\"$t('pages.current_experience.linkedin.content.instructions.step.7')\"></li>\n </ol>\n <AppUploadDocument\n v-model=\"attachment\"\n :label=\"$t('shared.attachment.label')\"\n :accept=\"acceptedExtensions.join()\"\n :maximum-size=\"maxFileSizeInMB\"\n :error=\"attachmentError\" />\n <AppTip :title=\"$t('shared.reminder.title')\" :content=\"$t('pages.current_experience.linkedin.reminder.content')\" />\n </div>\n </AppAutomaticModalOpener>\n</template>\n\n<script setup lang=\"ts\">\nimport { useField, useForm } from \"vee-validate\";\nimport i18n from \"@/i18n\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport AppTip from \"@/components/AppTip.vue\";\nimport AppUploadDocument from \"@/components/uploadDocument/AppUploadDocument.vue\";\nimport type { FileAttachment } from \"@/models/fileAttachment\";\nimport type { ModalBase } from \"@/components/modal/models\";\nimport useFormSchema from \"@/services/useFormSchema\";\nimport useMeService from \"@/services/useMeService\";\nimport useToaster from \"@/components/toaster/useToaster\";\nimport { maxFileSizeInMB } from \"@/utils/fileUtils\";\nimport useFormValidator from \"@/services/useFormValidator\";\n\nconst acceptedExtensions: string[] = [\".zip\"];\n\nconst { importProfile } = useMeService();\nconst { openToaster } = useToaster();\nconst { attachmentSchema, yupObject } = useFormSchema();\nconst { getFormCallbackHandler } = useFormValidator();\n\nconst resourceSchema = yupObject({\n attachment: attachmentSchema(acceptedExtensions, maxFileSizeInMB),\n});\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: attachment, errorMessage: attachmentError } = useField<FileAttachment | undefined>(\"attachment\");\n\nconst emit = defineEmits<{\n (e: \"closed\"): void;\n (e: \"imported\"): void;\n}>();\n\nconst save = async (): Promise<boolean> => {\n if (!attachment.value) {\n return false;\n }\n\n try {\n await importProfile(attachment.value);\n openToaster(\"success\", i18n.global.t(\"pages.current_experience.linkedin.successfully_imported_profile\"));\n emit(\"imported\");\n } catch {\n emit(\"closed\");\n }\n return true;\n};\n\nconst modalConfig: ModalBase = {\n title: i18n.global.t(\"pages.current_experience.linkedin.title\"),\n variant: \"floating\",\n confirmText: i18n.global.t(\"buttons.save\"),\n showCancelToClose: true,\n confirmCallback: getFormCallbackHandler(form, save),\n closeCallback: () => emit(\"closed\"),\n};\n</script>\n\n<style scoped lang=\"scss\">\n.app-current-experience-profile-importer {\n display: flex;\n flex-direction: column;\n gap: var(--size-m);\n}\n\n.instructions {\n display: flex;\n align-items: center;\n}\n\n.steps {\n list-style: auto;\n padding-left: var(--size-s);\n\n &__item {\n padding-left: var(--size-s);\n }\n\n &__item:not(:last-child) {\n margin-bottom: var(--size-s);\n }\n}\n\n.icon-container {\n font-size: var(--size-m);\n}\n</style>\n","import type { CompanyGoal, CompanyGoalWithEmployees } from \"@/models/companyGoal\";\nimport {\n isBiggerThanToday,\n isEqualOrSmallerThanToday,\n compareDates,\n isEqualOrBiggerThanToday,\n isSmallerThanToday,\n} from \"@/utils/dateUtils\";\n\nexport const goalsSorter = (a: CompanyGoal, b: CompanyGoal): number => {\n // 1. The goals that are in progress, the one that has the nearest end first\n if (isInProgress(a) && isInProgress(b)) {\n return 2 * compareDates(a.end, b.end, true);\n }\n if (isInProgress(a)) {\n return -1;\n }\n if (isInProgress(b)) {\n return 1;\n }\n // 2. The goals that are not started\n if (isNotStarted(a)) {\n return -1;\n }\n if (isNotStarted(b)) {\n return 1;\n }\n // 3. The goals that are finished, the one that has the nearest end first\n return compareDates(a.end, b.end, false);\n};\n\nexport const hasResult = (goal: CompanyGoal): boolean => {\n return goal.isSuccessful !== undefined;\n};\n\nexport const meetsVisibilityFilter = (goal: CompanyGoal, selectedOption: string | undefined): boolean => {\n if (selectedOption === \"all\") {\n return true;\n }\n\n if (selectedOption === \"private\") {\n return isPrivate(goal);\n }\n\n if (selectedOption === \"public\") {\n return isPublic(goal);\n }\n\n return false;\n};\n\nexport const meetsApplicationPhaseFilter = (goal: CompanyGoal, selectedOption: string | undefined): boolean => {\n if (selectedOption === \"all\") {\n return true;\n }\n\n if (selectedOption === \"open\") {\n return isApplicationPhaseOpen(goal);\n }\n\n if (selectedOption === \"closed\") {\n return isApplicationPhaseClosed(goal);\n }\n\n return false;\n};\n\nexport const meetsStatusFilter = (goal: CompanyGoal, selectedOption: string | undefined): boolean => {\n if (selectedOption === \"all\") {\n return true;\n }\n\n if (selectedOption === \"draft\") {\n return isDraft(goal);\n }\n\n if (selectedOption === \"published\") {\n return isPublished(goal);\n }\n\n if (selectedOption === \"finished\") {\n return isFinished(goal);\n }\n\n if (selectedOption === \"launched\") {\n return goal.isLaunched;\n }\n\n return false;\n};\n\nexport const isPublished = (goal: CompanyGoal): boolean => {\n return goal.isPublished;\n};\n\nexport const isFinished = (goal: CompanyGoal): boolean => {\n return goal.isLaunched && isSmallerThanToday(goal.end);\n};\n\nexport const isNotStarted = (goal: CompanyGoal): boolean => {\n return !goal.isLaunched || (goal.isLaunched && isBiggerThanToday(goal.start));\n};\n\nexport const isDraft = (goal: CompanyGoal): boolean => {\n return !goal.isPublished;\n};\n\nexport const isApplicationPhaseOpen = (goal: CompanyGoal): boolean => {\n return goal.isPublished && goal.isPublic && goal.applicationClosing !== undefined && isBiggerThanToday(goal.applicationClosing);\n};\n\nexport const isApplicationPhaseClosed = (goal: CompanyGoal): boolean => {\n return goal.isPublished && goal.isPublic && goal.applicationClosing !== undefined && !isBiggerThanToday(goal.applicationClosing);\n};\n\nexport const isPublic = (goal: CompanyGoal): boolean => {\n return goal.isPublic;\n};\n\nexport const isPrivate = (goal: CompanyGoal): boolean => {\n return !goal.isPublic;\n};\n\nexport const isEditable = (goal: CompanyGoal): boolean => {\n return isBiggerThanToday(goal.end) || !goal.isLaunched;\n};\n\nexport const isStartDateEditable = (goal: CompanyGoal): boolean => !goal.isLaunched || isBiggerThanToday(goal.start);\n\nexport const isApplicationClosingDateEditable = (goal: CompanyGoal): boolean =>\n goal.isPublic && (!goal.isLaunched || (goal.applicationClosing !== undefined && isBiggerThanToday(goal.applicationClosing)));\n\nexport const isDeletable = (goal: CompanyGoal): boolean => {\n return goal !== undefined;\n};\n\nexport const isInProgress = (goal: CompanyGoal): boolean => {\n return goal.isLaunched && isEqualOrBiggerThanToday(goal.end) && isEqualOrSmallerThanToday(goal.start);\n};\n\nexport const isSuccessful = (goal: CompanyGoal): boolean => {\n return isFinished(goal) && hasResult(goal) && goal.isSuccessful === true;\n};\n\nexport const isFailure = (goal: CompanyGoal): boolean => {\n return isFinished(goal) && hasResult(goal) && goal.isSuccessful !== true;\n};\n\nexport const canBeLaunched = (goal: CompanyGoal): boolean => {\n return goal.isPublished && !goal.isLaunched && (isPrivate(goal) || (isPublic(goal) && isApplicationPhaseClosed(goal)));\n};\n\nexport const canAddEmployees = (goal: CompanyGoalWithEmployees): boolean => {\n if (isDraft(goal) || isFinished(goal) || isApplicationPhaseOpen(goal)) {\n return false;\n }\n return goal.numberOfPeopleNeeded > goal.assignedEmployees.length;\n};\n\nexport const isTeamBuilt = (goal: CompanyGoalWithEmployees): boolean => {\n return goal.assignedEmployees.length === goal.numberOfPeopleNeeded;\n};\n","<template>\n <progress :class=\"progressColor\" :value=\"modelValueString\" max=\"100\"></progress>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\ninterface Props {\n value?: number;\n}\nconst props = withDefaults(defineProps<Props>(), { value: 0 });\n\nconst modelValueString = computed<string>(() => props.value.toString());\n\nconst progressColor = computed<string>(() => {\n if (props.value <= 30) {\n return \"progress--minor30\";\n }\n if (props.value <= 60) {\n return \"progress--minor60\";\n }\n return \"progress--major60\";\n});\n</script>\n\n<style scoped lang=\"scss\">\n@mixin progress {\n height: var(--space-xs);\n width: 100%;\n border-radius: var(--default-border-radius);\n\n &::-webkit-progress-value {\n border-radius: var(--default-border-radius);\n }\n &::-webkit-progress-bar {\n background: var(--color-progress-bar-background);\n border-radius: var(--default-border-radius);\n }\n\n &::-moz-progress-bar {\n border-radius: var(--default-border-radius);\n }\n}\n\n.progress--major60 {\n @include progress;\n\n &::-webkit-progress-value {\n background: var(--color-progress-bar-major60);\n }\n}\n\n.progress--minor60 {\n @include progress;\n\n &::-webkit-progress-value {\n background: var(--color-progress-bar-minor60);\n }\n}\n\n.progress--minor30 {\n @include progress;\n\n &::-webkit-progress-value {\n background: var(--color-progress-bar-minor30);\n }\n}\n</style>\n","<template>\n <div class=\"card\" :class=\"className\">\n <div class=\"content\">\n <p class=\"text text--l text--bold text--ellipsis text--link margin-v--s content__title\" @click=\"click\">{{ goal.title }}</p>\n <p class=\"text margin-b--s text--line-clamp-3\" v-html=\"toHtml(goal.description)\"></p>\n <p class=\"text text--link\" @click=\"click\">{{ $t(\"pages.admin.company_goals.detail_goals.more_information\") }}</p>\n </div>\n <div class=\"progress\" :class=\"{ 'progress--success': isSuccessful(goal), 'progress--failure': isFailure(goal) }\">\n <div v-if=\"isInProgress(goal)\">\n <div class=\"progress__in-progress\">\n <div class=\"text text--xs\">{{ $t(\"pages.goals_challenges.my.progress\") }}</div>\n <div class=\"text text--xs text--bold\">\n {{ $t(\"pages.goals_challenges.my.progress_amount\", { progress: Math.round(goal.progression ?? 0) }) }}\n </div>\n </div>\n <div>\n <AppProgressBar :value=\"goal.progression\" />\n </div>\n </div>\n <div v-if=\"isNotStarted(goal)\" class=\"progress__not-in-progress\">\n <span class=\"icon icon-calendar text text--xl\"></span> {{ $t(\"entities.goals_challenges.has_not_started\") }}\n </div>\n <div v-if=\"isFinished(goal)\" class=\"progress__not-in-progress\">\n <div v-if=\"isSuccessful(goal)\">\n {{ $t(\"pages.admin.company_goals.goal_detail.result_succeeded\") }}\n </div>\n <div v-else-if=\"isFailure(goal)\">\n {{ $t(\"pages.admin.company_goals.goal_detail.result_failed\") }}\n </div>\n <div v-else>\n {{ $t(\"entities.goals_challenges.has_finished\") }}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport type { CompanyGoal } from \"@/models/companyGoal\";\nimport { isInProgress, isNotStarted, isFinished, isSuccessful, isFailure } from \"@/services/modelServices/companyGoalService\";\nimport AppProgressBar from \"@/components/AppProgressBar.vue\";\nimport { toHtml } from \"@/utils/stringUtils\";\n\ninterface Props {\n goal: CompanyGoal;\n className?: string;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"click\", value: CompanyGoal) => void>();\n\nconst click = () => emit(\"click\", props.goal);\n</script>\n<style lang=\"scss\" scoped>\n.card {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 240px;\n margin: var(--size-xs) 0 var(--size-s) var(--size-s);\n box-shadow: var(--size-xs) var(--size-xs) var(--size-s) rgb(26 26 26 / 0.06);\n}\n\n.content {\n background-color: var(--color-neutral-100);\n border-top: var(--space-xxs) solid var(--color-primary-accent1);\n border-bottom: 0;\n border-radius: var(--size-xs) var(--size-xs) 0 0;\n padding: var(--space-s);\n min-height: 170px;\n\n &__title {\n color: var(--color-primary-accent1);\n }\n}\n\n.progress {\n flex: 0 0 75px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: var(--space-s);\n background-color: var(--color-neutral-200);\n border-top: 0;\n border-radius: 0 0 12px 12px;\n\n &__in-progress {\n display: flex;\n justify-content: space-between;\n }\n\n &__not-in-progress {\n display: flex;\n align-items: center;\n gap: var(--space-s);\n }\n\n &--success {\n background-color: var(--color-system-success);\n color: var(--color-neutral-100);\n }\n\n &--failure {\n background-color: var(--color-system-error);\n color: var(--color-neutral-100);\n }\n}\n</style>\n","import i18n from \"@/i18n\";\n\nexport const booleanToYesNoString = (value: boolean | undefined): string => {\n return value ? i18n.global.t(\"shared.yes\") : i18n.global.t(\"shared.no\");\n};\n","import useHttpClient from \"@/services/shared/useHttpClient\";\nimport type { Ref } from \"vue\";\nimport type { CompanyGoal, CompanyGoalWithParticipation } from \"@/models/companyGoal\";\nimport type { MeGoalDetails } from \"@/models/meGoalDetails\";\n\nconst BASE_URL = \"/api/me/goals\";\nconst { get, post, loading, appBaseUrl } = useHttpClient();\n\ninterface UseMeGoalsServiceReturn {\n getFeaturedGoals: () => Promise<CompanyGoalWithParticipation[]>;\n getMyCurrentGoals: () => Promise<CompanyGoal[]>;\n getMyGoals: () => Promise<CompanyGoal[]>;\n getMyGoalDetails: (goalId: number) => Promise<MeGoalDetails>;\n participateInMyGoal: (goalId: number) => Promise<boolean>;\n getGoalPictureUrl: (goalId: number) => string;\n searchCompanyGoals: (searchTerm: string) => Promise<CompanyGoalWithParticipation[]>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseMeGoalsServiceReturn => {\n const getFeaturedGoals = (): Promise<CompanyGoalWithParticipation[]> => get(`${BASE_URL}/featured`);\n const getMyCurrentGoals = (): Promise<CompanyGoal[]> => get(`${BASE_URL}/current`);\n const getMyGoals = (): Promise<CompanyGoal[]> => get(BASE_URL);\n const getMyGoalDetails = (goalId: number): Promise<MeGoalDetails> => get(`${BASE_URL}/${goalId}`);\n const participateInMyGoal = (goalId: number) => post<boolean>(`${BASE_URL}/${goalId}/participate`);\n const getGoalPictureUrl = (goalId: number): string => `${appBaseUrl}${BASE_URL}/${goalId}/picture`;\n const searchCompanyGoals = (searchTerm: string, numberOfItems = 50): Promise<CompanyGoalWithParticipation[]> =>\n get(`${BASE_URL}/search?searchTerm=${searchTerm}&numberOfItems=${numberOfItems}`);\n\n return {\n getFeaturedGoals,\n getMyCurrentGoals,\n getMyGoals,\n getMyGoalDetails,\n participateInMyGoal,\n getGoalPictureUrl,\n searchCompanyGoals,\n loading,\n };\n};\n","<template>\n <AppButton size=\"m\" :variant=\"participateButtonVariant()\" :text=\"participateButtonText()\" @onclick=\"switchParticipationHandler\" />\n</template>\n<script lang=\"ts\" setup>\nimport i18n from \"@/i18n\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport useMeGoalsService from \"@/services/useMeGoalsService\";\n\ninterface Props {\n goalId: number;\n variant?: \"shortReject\" | \"largeReject\";\n modelValue?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), { variant: \"shortReject\" });\n\nconst emit = defineEmits<(e: \"update:modelValue\", participating: boolean) => void>();\n\nconst { participateInMyGoal } = useMeGoalsService();\n\nconst switchParticipationHandler = async (): Promise<void> => {\n const success = await participateInMyGoal(props.goalId);\n if (success) {\n emit(\"update:modelValue\", !props.modelValue);\n }\n};\n\nconst participateButtonVariant = (): \"primary\" | \"secondary\" => (!props.modelValue ? \"primary\" : \"secondary\");\n\nconst participateButtonText = (): string => {\n if (!props.modelValue) {\n return i18n.global.t(\"pages.goals_challenges.details.participate\");\n }\n return props.variant === \"shortReject\"\n ? i18n.global.t(\"pages.goals_challenges.details.reject\")\n : i18n.global.t(\"pages.goals_challenges.details.reject_application\");\n};\n</script>\n","<template>\n <div v-if=\"goalDetails\" class=\"goal-details\">\n <div class=\"goal-details__title text--xl text--bold\" data-cy=\"goal-details-title\">{{ goalDetails.title }}</div>\n <div class=\"goal-details__info\">\n <div class=\"goal-details__info--item\">\n <p class=\"text--bold\">{{ $t(\"pages.goals_challenges.details.is_open.label\") }}</p>\n <p>{{ booleanToYesNoString(goalDetails.isPublic) }}</p>\n </div>\n <div class=\"goal-details__info--item\">\n <p class=\"text--bold\">{{ $t(\"pages.goals_challenges.details.people_needed.label\") }}</p>\n <p>{{ goalDetails.numberOfPeopleNeeded }}</p>\n </div>\n <div class=\"goal-details__info--item\">\n <p class=\"text--bold\">{{ $t(\"pages.goals_challenges.details.country.label\") }}</p>\n <p>{{ goalDetails.country }}</p>\n </div>\n <div class=\"goal-details__info--item\">\n <p class=\"text--bold\">{{ $t(\"pages.goals_challenges.details.city.label\") }}</p>\n <p>{{ goalDetails.city }}</p>\n </div>\n </div>\n <div class=\"goal-details__dates\">\n <div class=\"goal-details__dates--item\">\n <p class=\"text--l text--bold\">{{ $t(\"pages.goals_challenges.details.start_date.label\") }}</p>\n <p class=\"text--xl\">{{ parseDateToMonthLongDate(goalDetails.start) }}</p>\n </div>\n <div class=\"goal-details__dates--item\">\n <p class=\"text--l text--bold\">{{ $t(\"pages.goals_challenges.details.end_date.label\") }}</p>\n <p class=\"text--xl\">{{ parseDateToMonthLongDate(goalDetails.end) }}</p>\n </div>\n </div>\n <div class=\"goal-details__description\">\n <p v-html=\"toHtml(goalDetails.description)\"></p>\n </div>\n <div v-if=\"isInProgress(goalDetails)\" class=\"goal-details__progress\">\n <div class=\"goal-details__progress-container\">\n <div class=\"goal-details__progress--label\">\n <p>{{ $t(\"pages.goals_challenges.details.my_progress.label\") }}</p>\n <p class=\"text--bold\">{{ $n((goalDetails.progression ?? 0) / 100, \"percent\") }}</p>\n </div>\n <ProgressBar :value=\"goalDetails.progression\" />\n </div>\n </div>\n <div v-if=\"isNotStarted(goalDetails)\" class=\"goal-details__progress\">\n <span class=\"icon icon-calendar text text--xl\"></span> {{ $t(\"entities.goals_challenges.has_not_started\") }}\n </div>\n <div\n v-if=\"isFinished(goalDetails)\"\n class=\"goal-details__progress\"\n :class=\"{ 'goal-details__progress--success': isSuccessful(goalDetails), 'goal-details__progress--failure': isFailure(goalDetails) }\">\n <div v-if=\"isSuccessful(goalDetails)\">\n {{ $t(\"pages.admin.company_goals.goal_detail.result_succeeded\") }}\n </div>\n <div v-else-if=\"isFailure(goalDetails)\">\n {{ $t(\"pages.admin.company_goals.goal_detail.result_failed\") }}\n </div>\n <div v-else>\n {{ $t(\"entities.goals_challenges.has_finished\") }}\n </div>\n </div>\n <div v-if=\"goalDetails.coworkersWithThisGoal > 0\" class=\"goal-details__coworkers\">\n <div class=\"avatar-counter\">\n <span class=\"text--bold\" data-cy=\"coworkers\">{{ goalDetails.coworkersWithThisGoal }}</span>\n </div>\n <p class=\"text--bold\">{{ $t(\"pages.goals_challenges.details.coworkers_with_this_goal.label\", goalDetails.coworkersWithThisGoal) }}</p>\n </div>\n <ParticipateButton\n v-if=\"goalDetails.canParticipate\"\n v-model=\"value\"\n :goal-id=\"goalDetails.id\"\n variant=\"largeReject\"\n data-cy=\"participate\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { MeGoalDetails } from \"@/models/meGoalDetails\";\nimport { booleanToYesNoString } from \"@/utils/booleanUtils\";\nimport { parseDateToMonthLongDate } from \"@/utils/dateUtils\";\nimport { toHtml } from \"@/utils/stringUtils\";\nimport ProgressBar from \"@/components/AppProgressBar.vue\";\nimport useMeGoalsService from \"@/services/useMeGoalsService\";\nimport { onMounted, ref, computed } from \"vue\";\nimport ParticipateButton from \"@/views/app/goals-challenges/components/ParticipateButton.vue\";\nimport { isNotStarted, isFinished, isSuccessful, isFailure, isInProgress } from \"@/services/modelServices/companyGoalService\";\n\ninterface Props {\n goalId: number;\n}\n\nconst props = defineProps<Props>();\nconst emit = defineEmits<(e: \"update:participating\", goalId: number, participating: boolean) => void>();\n\nconst value = computed({\n get: () => {\n return goalDetails.value?.alreadyParticipant;\n },\n set: (val) => {\n if (goalDetails.value) {\n goalDetails.value.alreadyParticipant = !!val;\n emit(\"update:participating\", goalDetails.value.id, !!val);\n }\n },\n});\n\nconst { getMyGoalDetails } = useMeGoalsService();\nconst goalDetails = ref<MeGoalDetails>();\n\nonMounted(async () => {\n goalDetails.value = await getMyGoalDetails(props.goalId);\n});\n</script>\n\n<style scoped lang=\"scss\">\n.goal-details {\n display: flex;\n flex-direction: column;\n row-gap: var(--size-m);\n\n &__info {\n display: flex;\n justify-content: space-between;\n\n &--item {\n display: flex;\n flex-direction: column;\n row-gap: var(--size-xs);\n }\n }\n\n &__dates {\n display: flex;\n column-gap: var(--size-m);\n\n &--item {\n display: flex;\n flex-direction: column;\n row-gap: var(--size-xs);\n padding: var(--size-m);\n width: 100%;\n border-radius: var(--default-border-radius);\n background: var(--color-neutral-200);\n }\n }\n\n &__progress-container {\n display: flex;\n flex-direction: column;\n gap: var(--space-m);\n width: 100%;\n }\n\n &__progress {\n display: flex;\n gap: var(--space-s);\n align-items: center;\n padding: var(--size-s);\n border-radius: var(--default-border-radius);\n background-color: var(--color-neutral-200);\n\n &--success {\n background-color: var(--color-system-success);\n color: var(--color-neutral-100);\n }\n\n &--failure {\n background-color: var(--color-system-error);\n color: var(--color-neutral-100);\n }\n\n &--label {\n display: flex;\n justify-content: space-between;\n }\n }\n\n &__coworkers {\n display: flex;\n align-items: center;\n column-gap: var(--size-xs);\n }\n}\n\n.avatar {\n border: var(--space-xxs) solid var(--color-avatar-border);\n}\n\n.avatar-counter {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--size-xl);\n height: var(--size-xl);\n border-radius: var(--space-s);\n background-color: var(--color-avatar-default);\n border: var(--space-xxs) solid var(--color-avatar-border);\n}\n</style>\n","<template>\n <div class=\"carousel__navigation\">\n <span\n class=\"carousel__navigation__action icon icon-arrow-forward\"\n :class=\"{ 'carousel__navigation__action--disabled': currentPage >= pageCount }\"\n data-cy=\"next\"\n @click=\"nextPage\"></span>\n <span\n class=\"carousel__navigation__action icon icon-arrow-back\"\n :class=\"{ 'carousel__navigation__action--disabled': currentPage === 1 }\"\n data-cy=\"previous\"\n @click=\"previousPage\"></span>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\ninterface Props {\n currentPage: number;\n pageCount: number;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<{\n (e: \"nextPage\"): void;\n (e: \"previousPage\"): void;\n}>();\n\nconst nextPage = () => emit(\"nextPage\");\nconst previousPage = () => emit(\"previousPage\");\n</script>\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n.carousel__navigation {\n align-self: center;\n display: flex;\n flex-direction: column;\n row-gap: var(--size-l);\n\n &__action {\n border-radius: 50%;\n height: var(--size-xl);\n width: var(--size-xl);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--size-m);\n cursor: pointer;\n\n color: var(--color-button-secondary-text);\n background-color: rgba(0, 0, 0, 0);\n border: 1px solid var(--color-button-secondary-text);\n\n &:hover {\n background-color: var(--color-button-secondary--hover);\n }\n\n &:focus-visible,\n &:active {\n background-color: var(--color-button-secondary--pressed);\n }\n\n &--disabled {\n color: var(--color-button-secondary-text--disabled);\n border-color: var(--color-button-secondary-text--disabled);\n\n &:hover {\n background-color: rgba(0, 0, 0, 0);\n }\n }\n }\n\n @media only screen and (max-width: $medium-screen-breakpoint) {\n flex-direction: row-reverse;\n align-items: unset;\n justify-content: space-between;\n width: 100%;\n margin-top: calc(var(--size-l) * -1);\n }\n}\n</style>\n","<template>\n <div class=\"actions\">\n <div\n v-for=\"page in pages\"\n :key=\"page\"\n class=\"actions__item\"\n :class=\"{ 'actions__item--active': currentPage === page }\"\n :data-cy=\"`carousel-action-${page}`\"\n @click=\"pageClick(page)\"></div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport { createArray } from \"@/utils/numberUtils\";\n\ninterface Props {\n currentPage: number;\n pageCount: number;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"pageClick\", pageIndex: number) => void>();\n\nconst pages = computed(() => createArray(props.pageCount));\nconst pageClick = (pageIndex: number) => emit(\"pageClick\", pageIndex);\n</script>\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n.actions {\n display: flex;\n justify-content: center;\n gap: var(--space-xs);\n\n @media only screen and (max-width: $medium-screen-breakpoint) {\n margin-left: var(--size-xxl);\n }\n &__item {\n border-radius: 50%;\n height: 10px;\n width: 10px;\n border: 1px solid var(--color-primary-accent1);\n cursor: pointer;\n\n &--active,\n &:hover {\n background-color: var(--color-primary-accent1);\n }\n }\n}\n</style>\n","import { onUnmounted } from \"vue\";\n\ninterface UseDebounceReturn {\n after: (milliseconds: number, action: () => unknown) => void;\n}\n\nexport const useDebounce = (): UseDebounceReturn => {\n let timeoutId: number | undefined;\n\n const after = (milliseconds: number, action: () => unknown): void => {\n window.clearTimeout(timeoutId);\n timeoutId = window.setTimeout(action, milliseconds);\n };\n\n onUnmounted(() => window.clearTimeout(timeoutId));\n\n return { after };\n};\n","import config from \"@/styles/utils/responsive.export.module.scss\";\n\nexport const mediaQueries = {\n medium: +config.medium,\n big: +config.big,\n large: +config.large,\n};\n","import { ref, type Ref, onUnmounted, onMounted } from \"vue\";\nimport { mediaQueries } from \"@/utils/responsiveUtils\";\nimport { AppCarouselItemsVisible } from \"@/components/carousel/appCarouselItemsVisible\";\n\ninterface UseCarouselReturn {\n numberOfItemsToShow: Ref<AppCarouselItemsVisible>;\n}\n\nexport default (numberOfItemsVisible: AppCarouselItemsVisible | undefined): UseCarouselReturn => {\n const numberOfItemsToShow = ref<AppCarouselItemsVisible>(numberOfItemsVisible ?? 4);\n\n const setNumberOfItems = () => {\n if (window.innerWidth < mediaQueries.medium) {\n numberOfItemsToShow.value = 1;\n return;\n }\n if (window.innerWidth < mediaQueries.big) {\n numberOfItemsToShow.value = 2;\n return;\n }\n if (window.innerWidth < mediaQueries.large) {\n numberOfItemsToShow.value = 3;\n return;\n }\n numberOfItemsToShow.value = 4;\n };\n onMounted(() => {\n if (numberOfItemsVisible) {\n return;\n }\n window.addEventListener(\"resize\", setNumberOfItems);\n setNumberOfItems();\n });\n onUnmounted(() => {\n window.removeEventListener(\"resize\", setNumberOfItems);\n });\n return { numberOfItemsToShow };\n};\n","<template>\n <div class=\"carousel\">\n <div class=\"carousel__container\" data-cy=\"carousel-container\" @wheel=\"wheelHandle\">\n <div class=\"wrapper\">\n <div v-for=\"item in numberOfItems\" :key=\"item\" class=\"wrapper__item\">\n <slot :name=\"`item_${item}`\"> </slot>\n </div>\n </div>\n <AppCarouselActions :current-page=\"currentPage\" :page-count=\"pageCount\" @page-click=\"setPage\" />\n </div>\n <AppCarouselNavigation :current-page=\"currentPage\" :page-count=\"pageCount\" @next-page=\"nextPage\" @previous-page=\"previousPage\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from \"vue\";\nimport AppCarouselNavigation from \"@/components/carousel/AppCarouselNavigation.vue\";\nimport AppCarouselActions from \"@/components/carousel/AppCarouselActions.vue\";\nimport { useDebounce } from \"@/services/useDebounce\";\nimport useCarousel from \"@/components/carousel/useCarousel\";\nimport type { AppCarouselItemsVisible } from \"@/components/carousel/appCarouselItemsVisible\";\n\ninterface Props {\n numberOfItemsVisible?: AppCarouselItemsVisible;\n numberOfItems: number;\n}\nconst props = defineProps<Props>();\n\nconst { after } = useDebounce();\nconst { numberOfItemsToShow } = useCarousel(props.numberOfItemsVisible);\n\nconst currentPage = ref<number>(1);\nconst wheeling = ref<boolean>(false);\nconst itemWidthAdjustment = computed<number>(() => (numberOfItemsToShow.value === 4 ? 16 : 0));\nconst wheelHandle = (eventArgs: WheelEvent) => {\n if (wheeling.value || !eventArgs.deltaX || eventArgs.deltaY || eventArgs.deltaZ) {\n return;\n }\n wheeling.value = true;\n eventArgs.preventDefault();\n\n eventArgs.deltaX < 0 ? nextPage() : previousPage();\n after(150, () => (wheeling.value = false));\n};\nwatch(\n () => numberOfItemsToShow.value,\n () => setPage(1)\n);\n\nconst itemPercentageWidth = computed(() => 100 / props.numberOfItems);\nconst pageCount = computed(() => Math.ceil(props.numberOfItems / numberOfItemsToShow.value));\nconst itemWidthStyle = computed(() => `calc(${itemPercentageWidth.value}% - var(--carousel-gap-half) - ${itemWidthAdjustment.value}px)`);\nconst carouselWidth = computed(() => Math.ceil((props.numberOfItems * 100) / numberOfItemsToShow.value) + \"%\");\nconst carouselTranslate = computed(() => -(currentPage.value - 1) * (100 / props.numberOfItems) * numberOfItemsToShow.value + \"%\");\n\nconst nextPage = () => {\n if (currentPage.value >= pageCount.value) {\n return;\n }\n currentPage.value++;\n};\nconst previousPage = () => {\n if (currentPage.value === 1) {\n return;\n }\n currentPage.value--;\n};\nconst setPage = (pageIndex: number) => (currentPage.value = pageIndex);\n</script>\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n.carousel {\n --carousel-gap: var(--size-l);\n --carousel-gap-half: calc(var(--carousel-gap) / 2);\n\n width: 100%;\n display: flex;\n gap: var(--size-xs);\n\n @media only screen and (max-width: $medium-screen-breakpoint) {\n flex-direction: column;\n }\n\n &__container {\n display: flex;\n flex-direction: column;\n gap: 3rem;\n width: 100%;\n overflow-x: hidden;\n transform: translateX(calc(var(--size-l) * -1));\n @media only screen and (max-width: $medium-screen-breakpoint) {\n margin-left: var(--space-xs);\n }\n }\n}\n\n.wrapper {\n display: flex;\n position: relative;\n height: 100%;\n width: v-bind(carouselWidth);\n overflow: hidden;\n transform: translateX(v-bind(carouselTranslate));\n transition: transform 1s ease-in-out;\n\n &__item {\n height: 100%;\n margin-right: var(--carousel-gap-half);\n margin-left: var(--carousel-gap-half);\n width: v-bind(itemWidthStyle);\n\n @media only screen and (max-width: $medium-screen-breakpoint) {\n margin-left: var(--size-xxl);\n }\n }\n}\n</style>\n","<template>\n <div>\n <h2 class=\"margin-v--m\">{{ $t(\"pages.current_experience.goals_challenges.title\") }}</h2>\n <AppCarousel v-if=\"orderedGoals.length\" :number-of-items=\"orderedGoals.length\" data-cy=\"goals\">\n <template v-for=\"(goal, index) in orderedGoals\" :key=\"index\" #[`item_${index+1}`]>\n <AppGoalsChallengeCurrentCard\n :goal=\"goal\"\n :class-name=\"index ? 'margin-l--0' : 'margin-l--s'\"\n data-cy=\"goal\"\n @click=\"goalClick(goal.id)\" />\n </template>\n </AppCarousel>\n <AppNoContentYet v-else :text=\"noGoalsText\" data-cy=\"goals\" />\n <AppModal name=\"goal-detail\">\n <AppGoalDetails v-if=\"selectedGoalId\" :goal-id=\"selectedGoalId\" />\n </AppModal>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, type Ref } from \"vue\";\nimport i18n from \"@/i18n\";\n\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport AppGoalsChallengeCurrentCard from \"@/views/shared/challenges-goals/AppGoalsChallengeCurrentCard.vue\";\nimport AppModal from \"@/components/modal/AppModal.vue\";\nimport AppGoalDetails from \"@/views/app/goals-challenges/AppGoalDetails.vue\";\nimport AppCarousel from \"@/components/carousel/AppCarousel.vue\";\n\nimport type { CompanyGoal } from \"@/models/companyGoal\";\nimport useModal from \"@/components/modal/useModal\";\nimport { goalsSorter } from \"@/services/modelServices/companyGoalService\";\n\ninterface Props {\n goals?: CompanyGoal[];\n noGoalsText: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), { goals: () => [] as CompanyGoal[] });\n\nconst selectedGoalId: Ref<number | undefined> = ref<number | undefined>();\nconst orderedGoals: CompanyGoal[] = [...props.goals].sort(goalsSorter);\nconst { openComponentModal } = useModal();\n\nconst goalClick = (goalId: number): void => {\n selectedGoalId.value = goalId;\n openComponentModal(\"goal-detail\", {\n title: i18n.global.t(\"pages.goals_challenges.my.title\"),\n variant: \"floating\",\n showCancelToClose: true,\n closeCallback: () => {\n selectedGoalId.value = undefined;\n },\n });\n};\n</script>\n","<template>\n <AppPanel :dark=\"true\">\n <div class=\"app-upload-document-inline\">\n <div v-if=\"formMode !== 'view'\" class=\"button\" @click=\"upload\">\n <span class=\"icon icon-attach-file-alt text text--link\"></span>\n <span class=\"text text--link text--bold\">{{ label }}</span>\n </div>\n <div v-else>\n <span class=\"text text--bold\">{{ label }}</span>\n </div>\n <span class=\"text\">|</span>\n <span v-if=\"!modelValue?.fileName\" class=\"text\">{{ $t(\"inputs.upload_document.no_document_uploaded\") }}</span>\n <div v-if=\"modelValue?.fileName\" class=\"container\">\n <span v-if=\"disableDownload\" class=\"text\">{{ modelValue?.fileName }}</span>\n <a\n v-else-if=\"downloadUrl\"\n :href=\"downloadUrl\"\n target=\"_blank\"\n class=\"text text--ellipsis text--link\"\n :title=\"$t('buttons.download')\"\n >{{ modelValue?.fileName }}</a\n >\n <AppIconOnlyButton v-if=\"formMode !== 'view'\" icon=\"delete\" :title=\"$t('buttons.delete')\" @click=\"deleteDocumentClick\" />\n </div>\n <input ref=\"fileInput\" type=\"file\" :accept=\"accept\" class=\"not-displayed\" @change=\"fileInputChanged\" />\n </div>\n <AppInputError v-if=\"error\" :error=\"error\" />\n </AppPanel>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport AppIconOnlyButton from \"@/components/AppIconOnlyButton.vue\";\nimport AppInputError from \"@/components/AppInputError.vue\";\nimport type { FileAttachment } from \"@/models/fileAttachment\";\nimport type { FormMode } from \"@/models/formMode\";\nimport { maxFileSizeInMB } from \"@/utils/fileUtils\";\nimport { useUploadDocument } from \"@/components/uploadDocument/useUploadDocument\";\n\ninterface Props {\n downloadUrl?: string;\n label: string;\n modelValue?: FileAttachment;\n accept?: string;\n maximumSize?: number;\n error?: string;\n formMode?: FormMode;\n disableDownload?: boolean;\n withoutModal?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), {\n formMode: \"edit\",\n maximumSize: maxFileSizeInMB,\n disableDownload: false,\n withoutModal: false,\n});\n\nconst emit = defineEmits<(e: \"change\", document: FileAttachment | undefined) => void>();\n\nconst fileInput = ref<HTMLInputElement>();\n\nconst { upload, clearFileSelector, deleteDocument, getFileFromInputAndClear } = useUploadDocument(fileInput, props);\n\nconst resetFileSelector = () => {\n clearFileSelector();\n emit(\"change\", undefined);\n};\n\nconst deleteDocumentClick = () => deleteDocument(resetFileSelector);\n\nconst fileInputChanged = async () => {\n const file = await getFileFromInputAndClear();\n if (file) {\n emit(\"change\", file);\n }\n};\n</script>\n\n<style scoped lang=\"scss\">\n.app-upload-document-inline {\n display: grid;\n grid-template-columns: auto auto 1fr;\n gap: var(--space-s);\n align-items: center;\n}\n.container {\n display: grid;\n grid-template-columns: 1fr 1rem;\n column-gap: 1rem;\n justify-content: space-between;\n}\n.icon {\n margin-right: var(--space-xs);\n font-size: 2rem;\n}\n.button {\n display: flex;\n}\n</style>\n","<template>\n <AppUploadDocumentInline\n v-model=\"curriculum\"\n :label=\"$t('pages.current_experience.form.curriculum.upload')\"\n :download-url=\"getCurriculumUrl()\"\n button-variant=\"secondary\"\n :accept=\"allowedExtensions.join()\"\n :error=\"curriculumError\"\n :disable-download=\"!!form.errors.value.curriculum\"\n :without-modal=\"!!form.errors.value.curriculum\"\n data-cy=\"curriculum-uploader\"\n @change=\"curriculumFileChanged\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, watch } from \"vue\";\nimport { useField, useForm } from \"vee-validate\";\nimport AppUploadDocumentInline from \"@/components/uploadDocument/AppUploadDocumentInline.vue\";\nimport { FileAttachment } from \"@/models/fileAttachment\";\nimport { ProfileInformation } from \"@/models/profileInformation\";\nimport { allowedExtensions, maxFileSizeInMB } from \"@/utils/fileUtils\";\nimport useFormSchema from \"@/services/useFormSchema\";\nimport useMeService from \"@/services/useMeService\";\n\ninterface Props {\n profileInfo: ProfileInformation;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"curriculumSet\", fileName: string | null) => void>();\n\nconst { attachmentSchema, yupObject } = useFormSchema();\nconst { getCurriculumUrl, deleteCurriculum, saveCurriculum } = useMeService();\n\nconst resourceSchema = yupObject({\n curriculum: attachmentSchema(allowedExtensions, maxFileSizeInMB),\n});\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: curriculum, errorMessage: curriculumError } = useField<FileAttachment | undefined>(\"curriculum\");\n\nconst curriculumFileChanged = async (value: FileAttachment | undefined): Promise<void> => {\n if (value) {\n await uploadCurriculumFile(value);\n return;\n }\n await deleteCurriculumFile();\n};\n\nconst uploadCurriculumFile = async (value: FileAttachment) => {\n curriculum.value = value;\n const validationResult = await form.validate();\n\n if (!validationResult.valid) {\n return;\n }\n await saveCurriculum(value);\n emit(\"curriculumSet\", value.fileName);\n};\n\nconst deleteCurriculumFile = async () => {\n if (curriculumIsDirty.value) {\n setFormFields();\n return;\n }\n await deleteCurriculum();\n emit(\"curriculumSet\", null);\n};\n\nconst setFormFields = () =>\n (curriculum.value = props.profileInfo.curriculumName ? { fileName: props.profileInfo.curriculumName } : undefined);\nconst curriculumIsDirty = computed(() => (curriculum.value?.fileName ?? \"\") !== (props.profileInfo.curriculumName ?? \"\"));\n\nonMounted(setFormFields);\nwatch(() => props.profileInfo.curriculumName, setFormFields);\n</script>\n","<template>\n <label class=\"app-toggle\">\n <div class=\"toggle\" :class=\"{ 'toggle--checked': modelValue }\"></div>\n <span class=\"text\" data-cy=\"label\">{{ text }}</span>\n <input type=\"checkbox\" :checked=\"modelValue\" @change=\"change\" />\n </label>\n</template>\n\n<script setup lang=\"ts\">\ninterface Props {\n modelValue?: boolean;\n text: string;\n}\nwithDefaults(defineProps<Props>(), { modelValue: false });\n\nconst emit = defineEmits<(e: \"update:modelValue\", checked: boolean) => void>();\n\nconst change = (event: Event) => {\n const checkbox: HTMLInputElement = event.target as HTMLInputElement;\n emit(\"update:modelValue\", checkbox.checked);\n};\n</script>\n\n<style scoped lang=\"scss\">\n.app-toggle {\n display: flex;\n flex-direction: row;\n gap: 10px;\n align-items: center;\n width: fit-content;\n\n input {\n display: none;\n }\n}\n\n.toggle {\n --circle-size: 20px;\n position: relative;\n flex-shrink: 38;\n min-width: 38px;\n height: var(--size-s);\n text-align: right;\n background-color: var(--color-toggle-background);\n border-radius: 10px;\n display: flex;\n place-items: center;\n transition: background-color ease 0.3s;\n\n &:before {\n content: \"\";\n position: absolute;\n left: 0;\n display: block;\n width: var(--circle-size);\n height: var(--circle-size);\n background-color: var(--color-toggle-label-background);\n border-color: #afafaf;\n border-radius: 50%;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n transition: left 0.3s, background-color 0.3s;\n }\n &--checked {\n background-color: var(--color-toggle-background--checked);\n\n &:before {\n left: calc(100% - var(--circle-size));\n background-color: var(--color-toggle-label-background--checked);\n }\n }\n}\n</style>\n","<template>\n <div data-cy=\"education-mode\">\n <p class=\"margin-b--xs\">{{ $t(\"inputs.educationMode.label\") }}</p>\n <AppRadioButtonList v-model=\"value\" :options=\"modeOptions\" :in-row=\"inRow\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppRadioButtonList, { type RadioButtonOption } from \"@/components/AppRadioButtonList.vue\";\nimport { EducationMode } from \"@/models/educationMode\";\n\ninterface Props {\n modelValue: EducationMode;\n inRow?: boolean;\n}\nconst props = defineProps<Props>();\n\nconst modeOptions: RadioButtonOption[] = Object.keys(EducationMode).map((mode, index) => ({\n optionId: index,\n title: i18n.global.t(`inputs.educationMode.${mode.toLocaleLowerCase()}.label`),\n}));\n\nconst emit = defineEmits<(e: \"update:modelValue\", option: EducationMode | undefined) => void>();\n\nconst value = computed({\n get: () => getModeOption(props.modelValue),\n set: (val) => emit(\"update:modelValue\", Object.keys(EducationMode)[val?.optionId] as EducationMode),\n});\n\nconst getModeOption = (mode: EducationMode): RadioButtonOption => {\n if (!mode) {\n return modeOptions[0];\n }\n const indexOfE = Object.values(EducationMode).indexOf(mode);\n return modeOptions[indexOfE];\n};\n</script>\n","<template>\n <div class=\"user-info-item\">\n <div>\n <h3 :class=\"{ 'text--ellipsis': truncateText }\">{{ title }}</h3>\n <a\n v-if=\"attachmentUrl && !subtitle\"\n :href=\"attachmentUrl\"\n target=\"_blank\"\n class=\"icon icon-attachment margin-h--s text text--link\"\n :title=\"$t('buttons.download')\"></a>\n </div>\n\n <div v-if=\"subtitle\" class=\"subtitle-container\">\n <span class=\"text text--secondary\">{{ subtitle }}</span>\n <a\n v-if=\"attachmentUrl\"\n data-cy=\"user-info-item-attachment\"\n :href=\"attachmentUrl\"\n target=\"_blank\"\n class=\"icon icon-attachment margin-h--s text text--link\"\n :title=\"$t('buttons.download')\"></a>\n </div>\n <div\n class=\"text text--secondary\"\n :class=\"{ 'text--line-clamp-3': truncatedContent }\"\n :title=\"titleHtml\"\n @click=\"toggle\"\n v-html=\"contentHtml\"></div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\nimport { toHtml, toTitleHtml } from \"@/utils/stringUtils\";\n\ninterface Props {\n title?: string;\n subtitle?: string;\n attachmentUrl?: string;\n content?: string;\n truncateText?: boolean;\n}\nconst props = defineProps<Props>();\n\nconst titleHtml = computed(() => toTitleHtml(props.content));\nconst contentHtml = computed(() => toHtml(props.content));\nconst truncatedContent = ref<boolean>(props.truncateText);\n\nconst toggle = () => {\n if (!props.truncateText) {\n return;\n }\n\n truncatedContent.value = !truncatedContent.value;\n};\n</script>\n\n<style scoped lang=\"scss\">\n.user-info-item {\n display: flex;\n flex-direction: column;\n gap: var(--space-xs);\n}\n</style>\n","<template>\n <div class=\"education-editor\">\n <UserInfoItem\n v-if=\"formMode === 'edit' || formMode === 'view'\"\n data-cy=\"current-experience-education\"\n :title=\"titleRead\"\n :subtitle=\"parseEducationSubtitle(institutionRead, locationRead, fromDateRead, toDateRead)\"\n :content=\"descriptionRead\"\n :attachment-url=\"attachmentRead && input ? getEducationAttachmentUrl(employeeId, input.id) : undefined\"\n :truncate-text=\"truncateText\" />\n\n <AppLinkButton v-if=\"formMode === 'create'\" :text=\"` + ${$t('pages.current_experience.form.education.create')}`\" @click=\"openPanel()\" />\n <div v-if=\"formMode === 'edit'\" class=\"education-editor__actions\">\n <AppLinkButton :text=\"$t('buttons.edit')\" @click=\"openPanel()\" />\n <AppLinkButton :bold=\"false\" :text=\"$t('buttons.delete')\" @click=\"remove()\" />\n </div>\n\n <AppModal :name=\"panelName\" :disable-key-enter=\"true\">\n <AppForm>\n <AppInputText\n v-model=\"title\"\n :label=\"$t('pages.current_experience.form.education.fields.title.label')\"\n :placeholder=\"$t('pages.current_experience.form.education.fields.title.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"nameError\" />\n <AppInputText\n v-model=\"institution\"\n :label=\"$t('pages.current_experience.form.education.fields.institution.label')\"\n :placeholder=\"$t('pages.current_experience.form.education.fields.institution.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"institutionError\" />\n <AppEducationMode v-model=\"selectedModeOption\" class=\"margin-b--s\" in-row />\n <AppInputText\n v-if=\"selectedModeOption === EducationMode.Presence\"\n v-model=\"location\"\n :label=\"$t('pages.current_experience.form.education.fields.location.label')\"\n :placeholder=\"$t('pages.current_experience.form.education.fields.location.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"locationError\" />\n <div class=\"grid grid--two-columns\">\n <AppInputDate\n v-model=\"fromDate\"\n :label=\"$t('pages.current_experience.form.education.fields.fromDate.label')\"\n :error=\"fromDateError\" />\n <AppInputDate\n v-model=\"toDate\"\n :label=\"$t('pages.current_experience.form.education.fields.toDate.label')\"\n :error=\"toDateError\"\n :disabled=\"inProgressEducation\" />\n </div>\n <AppCheckbox\n v-model=\"inProgressEducation\"\n class=\"margin-b--m\"\n :text=\"$t('pages.current_experience.form.education.fields.inProgressEducation.label')\"\n @change=\"inProgressEducationHandler\" />\n <AppInputTextArea\n v-model=\"description\"\n :label=\"$t('pages.current_experience.form.education.fields.description.label')\"\n :placeholder=\"$t('pages.current_experience.form.education.fields.description.placeholder')\"\n :maxlength=\"xLargeTextLength\"\n :error=\"descriptionError\" />\n <AppUploadDocument\n v-model=\"attachment\"\n :label=\"$t('shared.attachment.label')\"\n :download-url=\"formMode === 'create' || input === undefined ? undefined : getEducationAttachmentUrl(employeeId, input.id)\"\n :name=\"input?.attachment\"\n :accept=\"allowedExtensions.join()\"\n :error=\"attachmentError\"\n :maximum-size=\"maxFileSizeInMB\" />\n </AppForm>\n </AppModal>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport i18n from \"@/i18n\";\nimport { ref, onMounted, watch } from \"vue\";\nimport { useField, useForm } from \"vee-validate\";\nimport { mixed as yupMixed, string as yupString, date as yupDate, boolean as yupBoolean } from \"yup\";\nimport AppCheckbox from \"@/components/AppCheckbox.vue\";\nimport AppInputDate from \"@/components/AppInputDate.vue\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppInputTextArea from \"@/components/AppInputTextArea.vue\";\nimport AppModal from \"@/components/modal/AppModal.vue\";\nimport AppEducationMode from \"@/components/AppEducationMode.vue\";\nimport AppUploadDocument from \"@/components/uploadDocument/AppUploadDocument.vue\";\nimport AppLinkButton from \"@/components/AppLinkButton.vue\";\nimport AppForm from \"@/components/AppForm.vue\";\nimport UserInfoItem from \"@/views/shared/current-experience/UserInfoItem.vue\";\nimport type { Education } from \"@/models/education\";\nimport type { FileAttachment } from \"@/models/fileAttachment\";\nimport type { FormMode } from \"@/models/formMode\";\nimport useModal from \"@/components/modal/useModal\";\nimport { allowedExtensions, maxFileSizeInMB } from \"@/utils/fileUtils\";\nimport { EducationMode } from \"@/models/educationMode\";\nimport { mediumTextLength, xLargeTextLength } from \"@/constants/restrictions\";\nimport useFormSchema from \"@/services/useFormSchema\";\nimport useFormValidator from \"@/services/useFormValidator\";\nimport useMeEducationService from \"@/services/useMeEducationService\";\nimport useEmployeeService from \"@/services/useEmployeeService\";\n\nconst { createEducation, updateEducation, deleteEducation } = useMeEducationService();\nconst { getEducationAttachmentUrl } = useEmployeeService();\nconst { openTextModal, openComponentModal } = useModal();\nconst { yupObject, stringSchema, attachmentSchema, inputRequiredText } = useFormSchema();\nconst { getFormCallbackHandler } = useFormValidator();\n\ninterface Props {\n employeeId: number;\n input?: Education;\n formMode?: FormMode;\n truncateText?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), { formMode: \"edit\" });\n\nconst emit = defineEmits<{\n (e: \"deleted\", item: Education): void;\n (e: \"created\", item: Education): void;\n (e: \"updated\", item: Education): void;\n}>();\n\nconst panelName = \"Education\" + (props.input?.id ?? \"Create\");\n\nconst titleRead = ref<string | undefined>(props.input?.title);\nconst institutionRead = ref<string | undefined>(props.input?.institution);\nconst descriptionRead = ref<string | undefined>(props.input?.description);\nconst locationRead = ref<string | undefined>(props.input?.location);\nconst fromDateRead = ref<Date | undefined>(props.input?.fromDate);\nconst toDateRead = ref<Date | undefined>(props.input?.toDate);\nconst attachmentRead = ref<FileAttachment | undefined>(props.input?.attachment ? { fileName: props.input.attachment.fileName } : undefined);\n\nconst resourceSchema = yupObject({\n title: stringSchema(),\n institution: stringSchema(),\n selectedModeOption: yupMixed<EducationMode>().oneOf(Object.values(EducationMode)),\n description: yupString().optional().max(xLargeTextLength),\n location: yupString()\n .max(mediumTextLength)\n .when(\"selectedModeOption\", {\n is: EducationMode.Presence,\n then: (schema) => schema.required(inputRequiredText()),\n }),\n fromDate: yupDate().required(inputRequiredText()).max(new Date(), i18n.global.t(\"inputs.date_less_than_or_equal_to_today\")),\n toDate: yupDate()\n .optional()\n .max(new Date(), i18n.global.t(\"inputs.date_less_than_or_equal_to_today\"))\n .when(\"fromDate\", ([fromDate], schema) => {\n if (fromDate) {\n const millisecondsInDay = 86400000;\n const dayAfter = new Date(fromDate.getTime() + millisecondsInDay);\n return schema.min(dayAfter, i18n.global.t(\"inputs.to_date_has_to_be_after_from_date\"));\n }\n\n return schema;\n }),\n attachment: attachmentSchema(allowedExtensions, maxFileSizeInMB),\n inProgressEducation: yupBoolean().optional(),\n});\n\nconst form = useForm({ validationSchema: resourceSchema, initialValues: { selectedModeOption: EducationMode.Online } });\nconst { value: title, errorMessage: nameError } = useField<string>(\"title\");\nconst { value: institution, errorMessage: institutionError } = useField<string>(\"institution\");\nconst { value: description, errorMessage: descriptionError } = useField<string | undefined>(\"description\");\nconst { value: location, errorMessage: locationError } = useField<string | undefined>(\"location\");\nconst { value: fromDate, errorMessage: fromDateError } = useField<Date>(\"fromDate\");\nconst { value: toDate, errorMessage: toDateError } = useField<Date | undefined>(\"toDate\");\nconst { value: selectedModeOption } = useField<EducationMode>(\"selectedModeOption\");\nconst { value: attachment, errorMessage: attachmentError } = useField<FileAttachment | undefined>(\"attachment\");\nconst { value: inProgressEducation } = useField<boolean>(\"inProgressEducation\");\n\nconst parseEducationSubtitle = (institution?: string, location?: string, fromDate?: Date, toDate?: Date): string => {\n const fromDateFormatted = fromDate?.getFullYear();\n const toDateFormatted = toDate === undefined ? i18n.global.t(\"pages.current_experience.present\") : toDate.getFullYear();\n return location !== undefined\n ? `${institution} | ${location} | ${fromDateFormatted} - ${toDateFormatted}`\n : `${institution} | ${fromDateFormatted} - ${toDateFormatted}`;\n};\n\nonMounted(() => setFormValues());\n\nconst setFormValues = (): void => {\n if (props.input === undefined) {\n return;\n }\n\n title.value = props.input.title;\n institution.value = props.input.institution;\n description.value = props.input.description;\n institution.value = props.input.institution;\n location.value = props.input.location;\n fromDate.value = props.input.fromDate;\n toDate.value = props.input.toDate;\n attachment.value = props.input.attachment ? { fileName: props.input.attachment.fileName } : undefined;\n inProgressEducation.value = props.formMode === \"create\" ? false : !props.input.toDate;\n selectedModeOption.value = props.input.mode;\n};\n\nconst save = async () => {\n const education: Education = {\n id: props.input?.id ?? 0,\n title: title.value,\n institution: institution.value,\n description: description.value,\n location: location.value,\n fromDate: fromDate.value,\n toDate: toDate.value,\n mode: selectedModeOption.value,\n attachment: attachment.value,\n };\n\n const result = props.formMode === \"create\" ? await createEducation(education) : await updateEducation(education);\n\n titleRead.value = result.title;\n institutionRead.value = result.institution;\n descriptionRead.value = result.description;\n locationRead.value = result.location;\n fromDateRead.value = result.fromDate;\n toDateRead.value = result.toDate;\n attachmentRead.value = attachment.value;\n\n if (props.formMode === \"create\") {\n education.id = result.id;\n emit(\"created\", education);\n form.resetForm();\n } else {\n emit(\"updated\", education);\n }\n};\n\nconst remove = (): void => {\n openTextModal({\n title: i18n.global.t(\"pages.current_experience.form.education.delete.title\"),\n contentText: i18n.global.t(\"pages.current_experience.form.education.delete.content\"),\n showCancelToClose: true,\n confirmCallback: async () => {\n if (props.input === undefined) {\n return false;\n }\n await deleteEducation(props.input.id);\n emit(\"deleted\", props.input);\n return true;\n },\n });\n};\n\nconst openPanel = (): void => {\n openComponentModal(panelName, {\n title: i18n.global.t(`pages.current_experience.form.education.${props.formMode}`),\n confirmText: i18n.global.t(\"buttons.save\"),\n showCancelToClose: true,\n variant: \"floating\",\n confirmCallback: getFormCallbackHandler(form, save),\n closeCallback: () => {\n if (props.formMode === \"create\") {\n form.resetForm();\n } else {\n setFormValues();\n }\n },\n });\n};\n\nconst inProgressEducationHandler = (event: Event): void => {\n const input: HTMLInputElement = event.target as HTMLInputElement;\n if (input.value) {\n toDate.value = undefined;\n }\n};\n\nwatch([selectedModeOption], () => {\n if (selectedModeOption.value === EducationMode.Online) {\n location.value = undefined;\n }\n});\n</script>\n<style scoped lang=\"scss\">\n.education-editor {\n display: flex;\n flex-direction: column;\n gap: var(--space-m);\n &__actions {\n display: flex;\n flex-direction: row;\n gap: var(--space-m);\n }\n}\n</style>\n","import type { JobExperience } from \"@/models/jobExperience\";\nimport type { SkillUpdateRequest } from \"@/models/requests/skillUpdateRequest\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\nimport type { Ref } from \"vue\";\n\nconst BASE_URL = \"/api/me/job-experience\";\nconst { put, post, httpDelete, loading } = useHttpClient();\n\ninterface UseMeJobExperienceServiceReturn {\n createJobExperience: (jobExperience: JobExperience) => Promise<JobExperience>;\n updateJobExperience: (jobExperience: JobExperience) => Promise<JobExperience>;\n deleteJobExperience: (jobExperienceId: number) => Promise<void>;\n setCurrentJobExperience: (jobExperience: JobExperience) => Promise<JobExperience>;\n updateCurrentJobExperienceSkills: (skillUpdateRequest: SkillUpdateRequest) => Promise<void>;\n loading: Ref<boolean>;\n}\nexport default (): UseMeJobExperienceServiceReturn => {\n const createJobExperience = (jobExperience: JobExperience): Promise<JobExperience> => post(BASE_URL, jobExperience);\n const updateJobExperience = (jobExperience: JobExperience): Promise<JobExperience> =>\n put(`${BASE_URL}/${jobExperience.id}`, jobExperience);\n const deleteJobExperience = (jobExperienceId: number): Promise<void> => httpDelete(`${BASE_URL}/${jobExperienceId}`);\n const setCurrentJobExperience = (jobExperience: JobExperience): Promise<JobExperience> => post(`${BASE_URL}/current`, jobExperience);\n const updateCurrentJobExperienceSkills = (skillUpdateRequest: SkillUpdateRequest): Promise<void> =>\n put(`${BASE_URL}/current/skills`, skillUpdateRequest);\n\n return {\n createJobExperience,\n deleteJobExperience,\n setCurrentJobExperience,\n updateCurrentJobExperienceSkills,\n updateJobExperience,\n loading,\n };\n};\n","<template>\n <div>\n <UserInfoItem\n v-if=\"formMode === 'edit' || formMode === 'view'\"\n data-cy=\"current-experience-experiences\"\n :title=\"titleRead\"\n :subtitle=\"parseJobSubtitle(companyRead, locationRead, fromDateRead, toDateRead)\"\n :content=\"descriptionRead\"\n :attachment-url=\"attachmentRead && input ? getJobExperienceAttachmentUrl(employeeId, input.id) : undefined\"\n class=\"margin-b--xs\"\n :truncate-text=\"truncateText\" />\n\n <AppLinkButton v-if=\"formMode === 'create'\" data-cy=\"create-job-experience\" :text=\"addCurrentJobText\" @click=\"openModal(panelName)\" />\n <div v-if=\"formMode === 'edit'\" class=\"job-editor\">\n <AppLinkButton :text=\"$t('buttons.edit')\" @click=\"openModal(panelName)\" />\n <AppLinkButton\n v-if=\"jobExperienceType === JobExperienceType.JobExperience\"\n :bold=\"false\"\n :text=\"$t('buttons.delete')\"\n @click=\"remove()\" />\n </div>\n\n <AppModal :name=\"panelName\" :disable-key-enter=\"true\">\n <AppForm>\n <AppInputText\n v-model=\"title\"\n data-cy=\"title\"\n :label=\"$t('pages.current_experience.form.experience.fields.title.label')\"\n :placeholder=\"$t('pages.current_experience.form.experience.fields.title.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"titleError\" />\n <div class=\"grid--two-columns\">\n <AppInputText\n v-model=\"company\"\n data-cy=\"company\"\n :label=\"$t('pages.current_experience.form.experience.fields.company.label')\"\n :placeholder=\"$t('pages.current_experience.form.experience.fields.company.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"companyError\" />\n <AppInputText\n v-model=\"location\"\n data-cy=\"location\"\n :label=\"$t('pages.current_experience.form.experience.fields.location.label')\"\n :placeholder=\"$t('pages.current_experience.form.experience.fields.location.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"locationError\" />\n </div>\n <div class=\"grid--two-columns margin-b--xs\">\n <AppInputDate\n v-model=\"fromDate\"\n data-cy=\"fromDate\"\n :label=\"$t('pages.current_experience.form.experience.fields.fromDate.label')\"\n :error=\"fromDateError\" />\n <AppInputDate\n v-if=\"jobExperienceType === JobExperienceType.JobExperience\"\n v-model=\"toDate\"\n data-cy=\"toDate\"\n :label=\"$t('pages.current_experience.form.experience.fields.toDate.label')\"\n :error=\"toDateError\"\n :disabled=\"currentJob\" />\n </div>\n\n <AppInputTextArea\n v-model=\"description\"\n data-cy=\"description\"\n :label=\"$t('pages.current_experience.form.experience.fields.description.label')\"\n :maxlength=\"xLargeTextLength\"\n :error=\"descriptionError\" />\n <AppUploadDocument\n v-model=\"attachment\"\n data-cy=\"attachment\"\n :label=\"$t('shared.attachment.label')\"\n :download-url=\"formMode === 'create' || input === undefined ? undefined : getJobExperienceAttachmentUrl(employeeId, input.id)\"\n :name=\"input?.attachment\"\n button-variant=\"secondary\"\n :accept=\"allowedExtensions.join()\"\n :maximum-size=\"maxFileSizeInMB\"\n :error=\"attachmentError\" />\n </AppForm>\n </AppModal>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from \"vue\";\nimport { useField, useForm } from \"vee-validate\";\nimport { object as yupObject, date as yupDate } from \"yup\";\nimport i18n from \"@/i18n\";\nimport AppModal from \"@/components/modal/AppModal.vue\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppInputTextArea from \"@/components/AppInputTextArea.vue\";\nimport AppInputDate from \"@/components/AppInputDate.vue\";\nimport AppUploadDocument from \"@/components/uploadDocument/AppUploadDocument.vue\";\nimport { mediumTextLength, xLargeTextLength } from \"@/constants/restrictions\";\nimport { type JobExperience, JobExperienceType } from \"@/models/jobExperience\";\nimport useModal from \"@/components/modal/useModal\";\nimport type { FileAttachment } from \"@/models/fileAttachment\";\nimport { allowedExtensions, maxFileSizeInMB } from \"@/utils/fileUtils\";\nimport type { FormMode } from \"@/models/formMode\";\nimport UserInfoItem from \"@/views/shared/current-experience/UserInfoItem.vue\";\nimport useFormSchema from \"@/services/useFormSchema\";\nimport AppForm from \"@/components/AppForm.vue\";\nimport useFormValidator from \"@/services/useFormValidator\";\nimport useMeJobExperienceService from \"@/services/useMeJobExperienceService\";\nimport useEmployeeService from \"@/services/useEmployeeService\";\nimport AppLinkButton from \"@/components/AppLinkButton.vue\";\n\nconst { deleteJobExperience, updateJobExperience, createJobExperience, setCurrentJobExperience } = useMeJobExperienceService();\nconst { getJobExperienceAttachmentUrl } = useEmployeeService();\nconst { openTextModal, openComponentModal } = useModal();\nconst { stringSchema, inputRequiredText, attachmentSchema } = useFormSchema();\nconst { getFormCallbackHandler } = useFormValidator();\n\ninterface Props {\n employeeId: number;\n input?: JobExperience;\n formMode?: FormMode;\n jobExperienceType?: JobExperienceType;\n truncateText?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), { formMode: \"edit\", jobExperienceType: JobExperienceType.JobExperience });\n\nconst emit = defineEmits<{\n (e: \"deleted\", item: JobExperience): void;\n (e: \"created\", item: JobExperience): void;\n (e: \"updated\", item: JobExperience): void;\n}>();\n\nconst panelName = `JobExperience_${props.jobExperienceType}_${props.input?.id ?? \"Create\"}`;\n\nconst addCurrentJobText = computed(() => {\n const translateKeySuffix = props.jobExperienceType === JobExperienceType.CurrentJobExperience ? \"create_current\" : \"create_other\";\n const translateKey = `pages.current_experience.form.experience.${translateKeySuffix}`;\n return `+ ${i18n.global.t(translateKey)}`;\n});\n\nconst titleRead = ref<string | undefined>(props.input?.title);\nconst descriptionRead = ref<string | undefined>(props.input?.description);\nconst companyRead = ref<string | undefined>(props.input?.company);\nconst locationRead = ref<string | undefined>(props.input?.location);\nconst fromDateRead = ref<Date | undefined>(props.input?.fromDate);\nconst toDateRead = ref<Date | undefined>(props.input?.toDate);\nconst attachmentRead = ref<FileAttachment | undefined>(props.input?.attachment ? { fileName: props.input.attachment.fileName } : undefined);\nconst currentJob = ref<boolean>(false);\n\nconst toDateSchema =\n props.jobExperienceType === JobExperienceType.CurrentJobExperience\n ? yupDate().optional()\n : yupDate()\n .required(inputRequiredText())\n .max(new Date(), i18n.global.t(\"inputs.date_less_than_or_equal_to_today\"))\n .when(\"fromDate\", ([fromDate], schema) => {\n if (fromDate) {\n const millisecondsInDay = 86400000;\n const dayAfter = new Date(fromDate.getTime() + millisecondsInDay);\n\n return schema.min(dayAfter, i18n.global.t(\"inputs.to_date_has_to_be_after_from_date\"));\n }\n\n return schema;\n });\n\nconst resourceSchema = yupObject({\n title: stringSchema(),\n description: stringSchema({ maxLength: xLargeTextLength }),\n company: stringSchema(),\n location: stringSchema(),\n fromDate: yupDate().required(inputRequiredText()).max(new Date(), i18n.global.t(\"inputs.date_less_than_or_equal_to_today\")),\n toDate: toDateSchema,\n attachment: attachmentSchema(allowedExtensions, maxFileSizeInMB),\n});\n\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: title, errorMessage: titleError } = useField<string>(\"title\");\nconst { value: description, errorMessage: descriptionError } = useField<string>(\"description\");\nconst { value: company, errorMessage: companyError } = useField<string>(\"company\");\nconst { value: location, errorMessage: locationError } = useField<string>(\"location\");\nconst { value: fromDate, errorMessage: fromDateError } = useField<Date>(\"fromDate\");\nconst { value: toDate, errorMessage: toDateError } = useField<Date | undefined>(\"toDate\");\nconst { value: attachment, errorMessage: attachmentError } = useField<FileAttachment | undefined>(\"attachment\");\n\nconst parseJobSubtitle = (company?: string, location?: string, fromDate?: Date, toDate?: Date): string => {\n const dates = `${fromDate?.getFullYear()} - ${\n toDate === undefined ? i18n.global.t(\"pages.current_experience.present\") : toDate.getFullYear()\n }`;\n\n return (location && `${company} | ${location} | ${dates}`) || `${company} | ${dates}`;\n};\n\nonMounted(() => setFormValues());\n\nconst setFormValues = (): void => {\n if (props.input === undefined) {\n return;\n }\n\n title.value = props.input.title;\n description.value = props.input.description;\n company.value = props.input.company;\n location.value = props.input.location;\n fromDate.value = props.input.fromDate;\n toDate.value = props.input.toDate;\n attachment.value = props.input.attachment ? { fileName: props.input.attachment.fileName } : undefined;\n currentJob.value = props.formMode === \"create\" ? false : !props.input.toDate;\n};\n\nconst save = async () => {\n const jobExperience: JobExperience = {\n id: props.input?.id ?? 0,\n title: title.value,\n description: description.value,\n company: company.value,\n location: location.value,\n fromDate: fromDate.value,\n toDate: toDate.value,\n attachment: attachment.value,\n };\n let result: JobExperience;\n\n if (props.jobExperienceType === JobExperienceType.CurrentJobExperience) {\n result = await setCurrentJobExperience(jobExperience);\n } else if (props.formMode === \"create\") {\n result = await createJobExperience(jobExperience);\n } else {\n result = await updateJobExperience(jobExperience);\n }\n\n titleRead.value = result.title;\n descriptionRead.value = result.description;\n companyRead.value = result.company;\n locationRead.value = result.location;\n fromDateRead.value = result.fromDate;\n toDateRead.value = result.toDate;\n attachmentRead.value = attachment.value;\n\n if (props.formMode === \"create\") {\n jobExperience.id = result.id;\n emit(\"created\", jobExperience);\n form.resetForm();\n } else {\n emit(\"updated\", jobExperience);\n }\n};\n\nconst remove = (): void => {\n openTextModal({\n title: i18n.global.t(\"pages.current_experience.form.experience.delete.title\"),\n contentText: i18n.global.t(\"pages.current_experience.form.experience.delete.content\"),\n showCancelToClose: true,\n confirmCallback: async () => {\n if (props.input === undefined) {\n return false;\n }\n await deleteJobExperience(props.input.id);\n emit(\"deleted\", props.input);\n return true;\n },\n });\n};\n\nconst openModal = (componentId: string): void => {\n const title =\n props.jobExperienceType === JobExperienceType.CurrentJobExperience\n ? i18n.global.t(`pages.current_experience.form.experience.${props.formMode}_current`)\n : i18n.global.t(`pages.current_experience.form.experience.${props.formMode}_other`);\n\n openComponentModal(componentId, {\n title,\n showCancelToClose: true,\n confirmText: i18n.global.t(\"buttons.save\"),\n variant: \"floating\",\n confirmCallback: getFormCallbackHandler(form, save),\n closeCallback: () => {\n if (props.formMode === \"create\") {\n form.resetForm();\n } else {\n setFormValues();\n }\n },\n });\n};\n</script>\n<style scoped lang=\"scss\">\n.job-editor {\n display: flex;\n flex-direction: row;\n gap: var(--space-m);\n}\n</style>\n","import type { Skill } from \"@/models/skill\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\nimport type { Ref } from \"vue\";\n\nconst BASE_URL = \"/api/skills\";\nconst { post, put, get, httpDelete, loading } = useHttpClient();\n\ninterface UseSkillServiceReturn {\n createSkill: (skill: Partial<Skill>) => Promise<void>;\n getSkills: () => Promise<Skill[]>;\n updateSkill: (skill: Partial<Skill>) => Promise<void>;\n deleteSkill: (skillId: number) => Promise<void>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseSkillServiceReturn => {\n const createSkill = (skill: Partial<Skill>): Promise<void> => post(BASE_URL, skill);\n const getSkills = (): Promise<Skill[]> => get(BASE_URL);\n const updateSkill = async (skill: Partial<Skill>): Promise<void> => {\n const postData: Partial<Skill> = { ...skill };\n postData.id = undefined;\n await put(`${BASE_URL}/${skill.id}`, postData);\n };\n const deleteSkill = (skillId: number): Promise<void> => httpDelete(`${BASE_URL}/${skillId}`);\n\n return { createSkill, getSkills, updateSkill, deleteSkill, loading };\n};\n","<template>\n <AppAutomaticModalOpener :modal-config=\"modalConfig\">\n <AppForm data-cy=\"skill-creator\">\n <AppSelect\n v-if=\"!props.skillType\"\n v-model=\"selectedSkillType\"\n :items=\"skillTypes\"\n :label=\"$t('shared.skillCreator.form.skill_type_label')\"\n data-cy=\"skill-creator-skill-type\" />\n <AppInformationMessage v-if=\"props.skillType\" :message=\"$t(calculateHRMessage())\" class=\"margin-b--m\" />\n <AppInputText\n v-model=\"skillName\"\n :label=\"$t('shared.skillCreator.form.name')\"\n :error=\"skillNameError\"\n :maxlength=\"mediumTextLength\"\n data-cy=\"skill-creator-skill-name\" />\n <AppInputTextArea\n v-model=\"skillDescription\"\n :label=\"$t('shared.skillCreator.form.description')\"\n :error=\"skillDescriptionError\"\n :maxlength=\"largeTextLength\"\n data-cy=\"skill-creator-skill-description\" />\n </AppForm>\n </AppAutomaticModalOpener>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\nimport { useField, useForm } from \"vee-validate\";\nimport i18n from \"@/i18n\";\nimport AppForm from \"@/components/AppForm.vue\";\nimport AppInputTextArea from \"@/components/AppInputTextArea.vue\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport AppInformationMessage from \"@/components/AppInformationMessage.vue\";\nimport AppSelect from \"@/components/AppSelect.vue\";\nimport { largeTextLength, mediumTextLength } from \"@/constants/restrictions\";\nimport { SkillType } from \"@/models/skillType\";\nimport type { ModalBase } from \"@/components/modal/models\";\nimport useSkillService from \"@/services/useSkillService\";\nimport useFormSchema from \"@/services/useFormSchema\";\nimport useFormValidator from \"@/services/useFormValidator\";\n\nconst { createSkill } = useSkillService();\nconst { yupObject, stringSchema } = useFormSchema();\nconst { getFormCallbackHandler } = useFormValidator();\n\ninterface Props {\n skillType?: SkillType;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n (e: \"skill-created\", skillName?: string): void;\n (e: \"closed\"): void;\n}>();\n\nconst skillTypes = Object.keys(SkillType).map((skillType) => ({\n value: skillType,\n text: i18n.global.t(`pages.admin.skill_management.filters.type.${skillType}`),\n}));\n\nconst selectedSkillType = ref<SkillType>(props.skillType ?? SkillType[skillTypes[0].value as keyof typeof SkillType]);\n\nconst resourceSchema = yupObject({\n skillName: stringSchema(),\n skillDescription: stringSchema({ maxLength: largeTextLength }),\n});\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: skillName, errorMessage: skillNameError } = useField<string | undefined>(\"skillName\");\nconst { value: skillDescription, errorMessage: skillDescriptionError } = useField<string | undefined>(\"skillDescription\");\n\nconst calculateHRMessage = (): string =>\n props.skillType !== SkillType.Language ? \"shared.skillCreator.skill.hrMessage\" : \"shared.skillCreator.language.hrMessage\";\n\nconst skillTypeText = computed<string>(() => (props.skillType === SkillType.Language ? \"language\" : \"skill\"));\nconst saveSkill = async () => {\n await createSkill({\n name: skillName.value,\n description: skillDescription.value,\n type: selectedSkillType.value,\n });\n emit(\"skill-created\", skillName.value);\n};\nconst modalConfig: ModalBase = {\n title: i18n.global.t(`shared.skillCreator.${skillTypeText.value}.title`),\n variant: \"floating\",\n confirmText: i18n.global.t(`shared.skillCreator.form.${skillTypeText.value}.createButton`),\n showCancelToClose: true,\n confirmCallback: getFormCallbackHandler(form, saveSkill),\n onClosed: () => emit(\"closed\"),\n};\n</script>\n","<template>\n <div class=\"app-input-range\">\n <div v-if=\"label\" class=\"label-container\">\n <label :for=\"componentId\" class=\"text text--secondary text--bold\">{{ label }}</label>\n </div>\n <div class=\"input-container\">\n <AppInputRange :id=\"componentId\" v-model=\"rangeValue\" :min=\"1\" :max=\"3\" :available-values=\"levels\" @change=\"valueChange\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppInputRange from \"@/components/AppInputRange.vue\";\nimport { SkillProgression } from \"@/models/skillProgression\";\nimport { getRandomId } from \"@/utils/randomUtils\";\n\ninterface Props {\n modelValue?: SkillProgression;\n label?: string;\n levels?: string[];\n}\nconst props = withDefaults(defineProps<Props>(), {\n required: false,\n modelValue: SkillProgression.Low,\n levels: () => [\n i18n.global.t(\"skill_range.skill_names.low\"),\n i18n.global.t(\"skill_range.skill_names.medium\"),\n i18n.global.t(\"skill_range.skill_names.high\"),\n ],\n});\n\nconst emit = defineEmits<(e: \"update:modelValue\", value: string) => void>();\n\nconst componentId: string = getRandomId();\n\nconst rangeValue = ref(0);\n\nconst valueChange = (): void => {\n const value: SkillProgression = convertToSkillProgression(rangeValue.value);\n emit(\"update:modelValue\", value);\n};\n\nconst convertFromSkillProgression = (value: SkillProgression): number => {\n switch (value) {\n case SkillProgression.High:\n return 3;\n case SkillProgression.Medium:\n return 2;\n default:\n return 1;\n }\n};\n\nconst convertToSkillProgression = (value: number): SkillProgression => {\n switch (value) {\n case 3:\n return SkillProgression.High;\n case 2:\n return SkillProgression.Medium;\n default:\n return SkillProgression.Low;\n }\n};\n\nrangeValue.value = convertFromSkillProgression(props.modelValue);\n</script>\n\n<style scoped lang=\"scss\">\n.label-container {\n flex: 1;\n margin-top: var(--space-s);\n}\n\n.input-container {\n flex: 4;\n padding-top: var(--space-s);\n padding-bottom: var(--space-xs);\n\n &__input {\n width: 100%;\n border: 1px solid var(--color-input-border);\n\n &:hover,\n &:focus,\n &:active {\n border: 1px solid var(--color-input-border--focus);\n }\n }\n}\n</style>\n","<template>\n <div v-if=\"availableSkills\">\n <div class=\"skills-editor margin-b--m\">\n <AppAutocomplete\n :placeholder=\"$t(`shared.skillEditor.${skillTypeText}.search`)\"\n :items=\"autoCompleteItems\"\n :maxlength=\"15\"\n :self-filtering=\"true\"\n @click=\"handleSkillSelected\" />\n </div>\n <AppPanel :dark=\"true\" :border=\"false\">\n <div class=\"skills-editor--new-skill\">\n <span class=\"text text--s text--bold\">{{ $t(`shared.skillEditor.newSkill.${skillTypeText}.title`) }}</span>\n <AppButton\n data-cy=\"create-new-skill-button\"\n size=\"m\"\n :text=\"$t(`shared.skillEditor.newSkill.${skillTypeText}.addNewButton`)\"\n @click=\"creating = true\" />\n </div>\n </AppPanel>\n <div v-if=\"checkedSkills.length\" class=\"padding-v--s\" data-cy=\"skill-editor-skills\">\n <div v-for=\"skill in checkedSkills\" :key=\"skill.name\">\n <span data-cy=\"remove-skill\" class=\"icon icon-close skills-editor--delete-skill\" @click=\"handleRemoveSkill(skill.id)\"></span>\n <AppSkillRange v-model=\"skill.progression\" data-cy=\"appSkillRange\" :label=\"skill.name\" />\n <AppSeparator />\n </div>\n </div>\n <AppSkillCreator v-if=\"creating\" :skill-type=\"skillsType\" @skill-created=\"handleSkillCreated\" @closed=\"creating = false\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref, watch } from \"vue\";\nimport AppAutocomplete from \"@/components/AppAutocomplete.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppSeparator from \"@/components/AppSeparator.vue\";\nimport AppSkillCreator from \"@/components/AppSkillCreator.vue\";\nimport AppSkillRange from \"@/components/AppSkillRange.vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport type { AutocompleteItem } from \"@/models/autocompleteItem\";\nimport type { Skill } from \"@/models/skill\";\nimport { SkillProgression } from \"@/models/skillProgression\";\nimport { SkillType } from \"@/models/skillType\";\nimport type { CheckableSkill, SkillWithProgression } from \"@/models/skillWithProgression\";\nimport useMeSkillsService from \"@/services/useMeSkillsService\";\n\nconst { getAvailableSkills } = useMeSkillsService();\n\ninterface Props {\n input: SkillWithProgression[];\n skillsType: SkillType;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"updated\", skills: SkillWithProgression[] | undefined, needsToNotify: boolean) => void>();\n\nconst availableSkills = ref<CheckableSkill[]>([]);\nconst creating = ref<boolean>(false);\nconst needsToNotify = ref<boolean>(false);\nconst skillTypeText = computed<string>(() => (props.skillsType === SkillType.Language ? \"language\" : \"skill\"));\nconst checkedSkills = computed(() => availableSkills.value.filter((l) => l.checked));\n\nonMounted(() => setFormValues());\n\nconst setFormValues = async (checkedSkills?: SkillWithProgression[]): Promise<void> => {\n const input = checkedSkills ?? props.input;\n const skills = await getAvailableSkills(props.skillsType);\n availableSkills.value = skills.map((skill) => ({\n ...skill,\n checked: input.some((l) => l.id === skill.id),\n progression: input.find((l) => l.id === skill.id)?.progression ?? SkillProgression.Low,\n }));\n};\n\nconst searchSkillById = (skill1: Skill | AutocompleteItem): ((skill: Skill) => boolean) => {\n return (skill2: Skill) => skill1.id === skill2.id;\n};\n\nconst checkSkill = (skillToBeChecked: CheckableSkill): void => {\n skillToBeChecked.checked = true;\n};\n\nconst checkSkillAndCopyProgression = (skill: CheckableSkill): ((skill: CheckableSkill) => void) => {\n return (skill2: CheckableSkill) => {\n checkSkill(skill2);\n skill2.progression = skill.progression;\n };\n};\n\nconst handleSkillCreated = async (skillName?: string): Promise<void> => {\n const previousSelectedSkills = [...checkedSkills.value];\n await setFormValues(checkedSkills.value);\n checkSkillSelected((skill) => skill.name === skillName, checkSkill);\n previousSelectedSkills.forEach((s) => {\n checkSkillSelected(searchSkillById(s), checkSkillAndCopyProgression(s));\n });\n};\n\nconst handleSkillSelected = (item: AutocompleteItem): void => {\n checkSkillSelected(searchSkillById(item), checkSkill);\n};\n\nconst checkSkillSelected = (searchFunction: (skill: Skill) => boolean, applyFunction: (skill: CheckableSkill) => void): void => {\n const skillFound = availableSkills.value?.find(searchFunction);\n if (skillFound) {\n applyFunction(skillFound);\n }\n};\n\nconst autoCompleteItems = computed<AutocompleteItem[]>(() => {\n return !availableSkills.value\n ? []\n : availableSkills.value\n .filter((s) => !s.checked)\n .map((skill) => ({\n id: skill.id,\n text: skill.name,\n }));\n});\n\nconst handleRemoveSkill = (skillId: number): void => {\n const foundSkill = availableSkills.value?.find((skill: Skill) => skill.id === skillId);\n if (foundSkill) {\n foundSkill.checked = false;\n const skillFromSelection = props.input.find((skill: Skill) => skill.id === skillId);\n if (skillFromSelection?.usedOnPerformanceGraph) {\n needsToNotify.value = true;\n }\n }\n};\n\nwatch([checkedSkills], () => {\n emit(\"updated\", [...checkedSkills.value], needsToNotify.value);\n});\n</script>\n\n<style scoped lang=\"scss\">\n.skills-editor {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &--new-skill {\n display: flex;\n gap: var(--space-l);\n align-items: center;\n justify-content: space-between;\n }\n &--delete-skill {\n float: right;\n }\n}\n</style>\n","import useHttpClient from \"@/services/shared/useHttpClient\";\nimport type { Ref } from \"vue\";\nimport type { IdealJob, IdealJobBase } from \"@/models/idealJob\";\nimport type { SkillUpdateRequest } from \"@/models/requests/skillUpdateRequest\";\n\nconst BASE_URL = \"/api/me/ideal-job\";\nconst { get, post, loading } = useHttpClient();\n\ninterface UseMeIdealJobServiceReturn {\n getMyIdealJob: () => Promise<IdealJob>;\n setIdealJob: (idealJob: IdealJobBase) => Promise<void>;\n setIdealJobSkills: (request: SkillUpdateRequest) => Promise<void>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseMeIdealJobServiceReturn => {\n const getMyIdealJob = (): Promise<IdealJob> => get(BASE_URL);\n const setIdealJob = (idealJob: IdealJobBase) => post<void>(BASE_URL, idealJob);\n const setIdealJobSkills = (request: SkillUpdateRequest) => post<void>(`${BASE_URL}/skills`, request);\n\n return { getMyIdealJob, setIdealJob, setIdealJobSkills, loading };\n};\n","<template>\n <div class=\"skills-list\">\n <div>\n <AppTag\n v-for=\"skill of input\"\n :key=\"skill.name\"\n class=\"margin-b--xs margin-r--xs\"\n data-cy=\"current-experience-skills\"\n :main-text=\"skill.name\"\n :secondary-text=\"$t(`skill_range.skill_names.${skill.progression.toLowerCase()}`)\"\n type=\"skill\" />\n </div>\n <AppLinkButton\n v-if=\"formMode !== 'view'\"\n data-cy=\"skill-editor-edit-skill-button\"\n :text=\"$t(calculateButtonText)\"\n @click=\"creatingSkill = true\" />\n\n <AppAutomaticModalOpener v-if=\"creatingSkill\" :modal-config=\"modalConfig\">\n <AppSkillEditor :input=\"input\" :skills-type=\"skillsType\" @updated=\"skillsUpdated\" />\n </AppAutomaticModalOpener>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, type Ref } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport type { SkillWithProgression } from \"@/models/skillWithProgression\";\nimport AppSkillEditor from \"@/components/AppSkillEditor.vue\";\nimport { SkillLocationType, SkillType } from \"@/models/skillType\";\nimport type { SkillUpdateRequest } from \"@/models/requests/skillUpdateRequest\";\nimport type { FormMode } from \"@/models/formMode\";\nimport useMeIdealJobService from \"@/services/useMeIdealJobService\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport type { ModalBase } from \"@/components/modal/models\";\nimport useModal from \"@/components/modal/useModal\";\nimport useMeJobExperienceService from \"@/services/useMeJobExperienceService\";\nimport useMeSkillsService from \"@/services/useMeSkillsService\";\nimport AppLinkButton from \"@/components/AppLinkButton.vue\";\n\ninterface Props {\n input: SkillWithProgression[];\n skillsType: SkillType;\n formMode?: FormMode;\n skillLocation?: SkillLocationType;\n}\nconst props = withDefaults(defineProps<Props>(), { formMode: \"edit\", skillLocation: SkillLocationType.Employee });\n\nconst emit = defineEmits<(e: \"updated\", skills: SkillWithProgression[]) => void>();\n\nconst { updateSkills } = useMeSkillsService();\nconst { updateCurrentJobExperienceSkills } = useMeJobExperienceService();\nconst { setIdealJobSkills } = useMeIdealJobService();\nconst { openTextModal } = useModal();\n\nconst skills: Ref<SkillWithProgression[]> = ref<SkillWithProgression[]>([]);\nconst creatingSkill: Ref<boolean> = ref<boolean>(false);\nconst needsToNotify = ref<boolean>(false);\n\nconst skillsUpdated = (updatedSkills: SkillWithProgression[] | undefined, needsToNotifyParam: boolean): void => {\n skills.value = updatedSkills ? [...updatedSkills].sort(skillsSorter) : [];\n needsToNotify.value = needsToNotifyParam;\n};\n\nconst skillsSorter = (a: SkillWithProgression, b: SkillWithProgression) => a.name.localeCompare(b.name);\n\nconst modalConfig: ModalBase = {\n title: i18n.global.t(`pages.my_profile.dashboards.successful_skills.${props.skillsType.toLowerCase()}`),\n variant: \"floating\",\n confirmText: i18n.global.t(\"buttons.save\"),\n showCancelToClose: true,\n confirmCallback: () => createSkill(),\n onClosed: () => (creatingSkill.value = false),\n};\n\nconst updateSelectedSkills = async () => {\n const request: SkillUpdateRequest = {\n type: props.skillsType,\n skills: skills.value,\n };\n const saveMethods: Record<SkillLocationType, (request: SkillUpdateRequest) => Promise<void>> = {\n CurrentJob: updateCurrentJobExperienceSkills,\n IdealJob: setIdealJobSkills,\n Employee: updateSkills,\n };\n await saveMethods[props.skillLocation](request);\n emit(\"updated\", skills.value);\n};\n\nconst createSkill = async (): Promise<void | boolean> => {\n if (!needsToNotify.value) {\n return updateSelectedSkills();\n }\n return new Promise((resolve, _reject) => {\n openTextModal({\n title: i18n.global.t(\"pages.current_experience.confirm-delete-on-graph.title\"),\n contentText: i18n.global.t(\"pages.current_experience.confirm-delete-on-graph.message\"),\n showCancelToClose: true,\n confirmCallback: async () => {\n await updateSelectedSkills();\n resolve(true);\n },\n cancelCallback: () => resolve(false),\n });\n });\n};\n\nconst calculateButtonText = computed(() =>\n props.skillsType === SkillType.Language ? \"pages.current_experience.language.edit\" : \"pages.current_experience.skills.edit\"\n);\n</script>\n\n<style scoped lang=\"scss\">\n.skills-list {\n display: flex;\n flex-direction: column;\n gap: var(--size-xs);\n}\n</style>\n","import type { Ref } from \"vue\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\n\nconst BASE_URL = \"/api/me/agreements\";\nconst { put, loading } = useHttpClient();\n\ninterface UseMeAgreementsServiceReturn {\n updateAgreeShareExperience: (agree: boolean) => Promise<void>;\n updateAgreeShareIdealJob: (agree: boolean) => Promise<void>;\n updateAgreeShareInterests: (agree: boolean) => Promise<void>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseMeAgreementsServiceReturn => {\n const updateAgreeShareExperience = (agree: boolean): Promise<void> => put(`${BASE_URL}/experience`, { agree });\n const updateAgreeShareIdealJob = (agree: boolean): Promise<void> => put(`${BASE_URL}/ideal-job`, { agree });\n const updateAgreeShareInterests = (agree: boolean): Promise<void> => put(`${BASE_URL}/interests`, { agree });\n\n return {\n updateAgreeShareExperience,\n updateAgreeShareIdealJob,\n updateAgreeShareInterests,\n loading,\n };\n};\n","import { SkillProgression } from \"@/models/skillProgression\";\nimport type { SkillWithProgression } from \"@/models/skillWithProgression\";\n\nexport const sortByProgressionName = (a: SkillWithProgression, b: SkillWithProgression): number => {\n if (a.progression === b.progression) {\n return a.name.localeCompare(b.name);\n }\n if (a.progression === SkillProgression.High) {\n return -1;\n }\n if (b.progression === SkillProgression.High) {\n return 1;\n }\n if (a.progression === SkillProgression.Medium) {\n return -1;\n }\n if (b.progression === SkillProgression.Medium) {\n return 1;\n }\n return 0;\n};\n","<template>\n <LayoutPage :title=\"$t('pages.current_experience.title')\">\n <AppTip unique-name=\"app-current-experience\" :content=\"$t('pages.current_experience.tip.content')\" />\n <div v-if=\"loaded && profileInfo\">\n <h2 class=\"margin-b--m\" data-cy=\"current-experience-title\">\n {{ $t(\"pages.current_experience.about_me\") }}\n </h2>\n <div class=\"grid--two-columns@medium\">\n <AboutMeEditor :key=\"aboutMeKey\" :input=\"profileInfo.aboutMe\" truncate-text />\n <EmployeeCurriculumUploader :profile-info=\"profileInfo\" @curriculum-set=\"curriculumSet\" />\n </div>\n <AppSeparator class=\"margin-v--m\" />\n <div class=\"current-job\">\n <h2 class=\"margin-b--m\">{{ $t(\"pages.current_experience.current_experience.title\") }}</h2>\n <div class=\"grid--two-columns@medium\">\n <div>\n <AppNoContentYet v-if=\"!currentJobExperience\" class=\"margin-b--m\" />\n <JobExperienceEditor\n v-if=\"currentJobExperience\"\n :key=\"JSON.stringify(currentJobExperience)\"\n :employee-id=\"profileInfo.id\"\n form-mode=\"edit\"\n :job-experience-type=\"JobExperienceType.CurrentJobExperience\"\n :input=\"currentJobExperience\"\n truncate-text\n @updated=\"currentJobExperienceUpdated\" />\n <JobExperienceEditor\n v-else\n form-mode=\"create\"\n :employee-id=\"profileInfo.id\"\n :job-experience-type=\"JobExperienceType.CurrentJobExperience\"\n :input=\"currentJobExperience\"\n @created=\"currentJobExperienceUpdated\" />\n </div>\n <div v-if=\"currentJobExperience\">\n <h3 class=\"margin-b--m\">{{ $t(\"pages.current_experience.current_experience.general_skills\") }}</h3>\n <SkillEditor\n :input=\"currentJobExperienceGeneralSkills\"\n :skills-type=\"SkillType.General\"\n :skill-location=\"SkillLocationType.CurrentJob\"\n @updated=\"currentJobExperienceGeneralSkillsUpdated\" />\n <h3 class=\"margin-v--m\">{{ $t(\"pages.current_experience.current_experience.language_skills\") }}</h3>\n <SkillEditor\n :input=\"currentJobExperienceLanguageSkills\"\n :skills-type=\"SkillType.Language\"\n :skill-location=\"SkillLocationType.CurrentJob\"\n @updated=\"currentJobExperienceLanguageSkillsUpdated\" />\n </div>\n </div>\n </div>\n <AppSeparator class=\"margin-v--m\" />\n <div class=\"grid--two-columns@medium\">\n <div>\n <h2 class=\"margin-b--m\">{{ $t(\"pages.current_experience.experience\") }}</h2>\n <AppNoContentYet v-if=\"jobExperiences.length === 0\" />\n <div v-for=\"jobExperience in jobExperiences\" :key=\"jobExperience.id\" class=\"margin-b--m\">\n <JobExperienceEditor\n :employee-id=\"profileInfo.id\"\n form-mode=\"edit\"\n truncate-text\n :input=\"jobExperience\"\n @deleted=\"jobExperienceDeleted\"\n @updated=\"jobExperienceUpdated\" />\n </div>\n <JobExperienceEditor :employee-id=\"profileInfo.id\" class=\"margin-v--m\" form-mode=\"create\" @created=\"jobExperienceCreated\" />\n </div>\n <div>\n <h2 class=\"margin-b--m\">{{ $t(\"pages.current_experience.education\") }}</h2>\n <AppNoContentYet v-if=\"educations.length === 0\" />\n <div v-for=\"education in educations\" :key=\"education.id\" class=\"margin-b--m\">\n <EducationEditor\n :employee-id=\"profileInfo.id\"\n form-mode=\"edit\"\n truncate-text\n :input=\"education\"\n @deleted=\"educationDeleted\"\n @updated=\"educationUpdated\" />\n </div>\n <EducationEditor :employee-id=\"profileInfo.id\" class=\"margin-v--m\" form-mode=\"create\" @created=\"educationCreated\" />\n </div>\n </div>\n <AppSeparator class=\"margin-v--m\" />\n <h2 class=\"margin-b--m\">{{ $t(\"pages.current_experience.skills\") }}</h2>\n <div class=\"grid--two-columns@medium\">\n <div>\n <h5 class=\"margin-b--m\">{{ $t(\"pages.current_experience.skills.general\") }}</h5>\n <AppNoContentYet v-if=\"generalSkills.length === 0\" class=\"margin-b--xs\" data-cy=\"current-experience-general-skills-no-content\" />\n <SkillEditor :input=\"generalSkills\" :skills-type=\"SkillType.General\" @updated=\"generalSkillsUpdated\" />\n </div>\n <div>\n <h5 class=\"margin-b--m\">{{ $t(\"pages.current_experience.languages\") }}</h5>\n <AppNoContentYet v-if=\"languages.length === 0\" class=\"margin-b--xs\" />\n <SkillEditor :input=\"languages\" :skills-type=\"SkillType.Language\" @updated=\"languagesUpdated\" />\n </div>\n </div>\n <div class=\"margin-t--m margin-b--m\">\n <AppPanel :dark=\"true\" :border=\"false\">\n <AppToggle\n v-model=\"profileInfo.agreeShareExperience\"\n :text=\"$t('shared.agree_share_information')\"\n data-cy=\"current-experience-agree-share-experience\"\n @update:model-value=\"agreeShareExperienceUpdated\" />\n </AppPanel>\n </div>\n <AppEmployeeCurrentExperienceGoals v-if=\"!loading\" :goals=\"myGoals\" :no-goals-text=\"$t('entities.goals_challenges.no_goals_yet')\" />\n <AppCurrentExperienceProfileImporter v-if=\"showProfileImporter\" @closed=\"showProfileImporter = false\" @imported=\"profileImported\" />\n </div>\n <template #element>\n <AppButton\n :text=\"$t('pages.current_experience.linkedin.import')\"\n size=\"m\"\n variant=\"primary\"\n data-cy=\"import-profile\"\n @onclick=\"showProfileImporter = true\" />\n </template>\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport { compareDates } from \"@/utils/dateUtils\";\nimport { getLanguageSkills, getGeneralSkills } from \"@/utils/models\";\nimport { SkillType, SkillLocationType } from \"@/models/skillType\";\nimport { type CurrentJobExperience, type JobExperience, JobExperienceType } from \"@/models/jobExperience\";\nimport AboutMeEditor from \"@/views/shared/current-experience/AboutMeEditor.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppCurrentExperienceProfileImporter from \"@/views/app/current-experience/components/AppCurrentExperienceProfileImporter.vue\";\nimport AppEmployeeCurrentExperienceGoals from \"@/views/shared/current-experience/AppEmployeeCurrentExperienceGoals.vue\";\nimport EmployeeCurriculumUploader from \"@/views/app/current-experience/components/EmployeeCurriculumUploader.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport AppSeparator from \"@/components/AppSeparator.vue\";\nimport AppTip from \"@/components/AppTip.vue\";\nimport AppToggle from \"@/components/AppToggle.vue\";\nimport EducationEditor from \"@/views/shared/current-experience/EducationEditor.vue\";\nimport JobExperienceEditor from \"@/views/shared/current-experience/JobExperienceEditor.vue\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport SkillEditor from \"@/views/shared/current-experience/FloatingPanelSkillEditor.vue\";\nimport type { CompanyGoal } from \"@/models/companyGoal\";\nimport type { Education } from \"@/models/education\";\nimport type { ProfileInformation } from \"@/models/profileInformation\";\nimport type { SkillWithProgression } from \"@/models/skillWithProgression\";\nimport useMeAgreementsService from \"@/services/useMeAgreementsService\";\nimport useMeGoalsService from \"@/services/useMeGoalsService\";\nimport useMeService from \"@/services/useMeService\";\nimport { sortByProgressionName } from \"@/services/modelServices/skillService\";\n\nconst { getProfileInformation } = useMeService();\nconst { updateAgreeShareExperience } = useMeAgreementsService();\nconst { getMyGoals } = useMeGoalsService();\n\nconst profileInfo = ref<ProfileInformation>();\nconst loaded = ref<boolean>(false);\nconst generalSkills = ref<SkillWithProgression[]>([]);\nconst languages = ref<SkillWithProgression[]>([]);\nconst currentJobExperience = ref<CurrentJobExperience | undefined>();\nconst currentJobExperienceGeneralSkills = ref<SkillWithProgression[]>([]);\nconst currentJobExperienceLanguageSkills = ref<SkillWithProgression[]>([]);\nconst jobExperiences = ref<JobExperience[]>([]);\nconst educations = ref<Education[]>([]);\nconst myGoals = ref<CompanyGoal[]>([]);\nconst loading = ref<boolean>(true);\nconst showProfileImporter = ref<boolean>(false);\nconst aboutMeKey = ref<number>(0);\n\nonMounted(async () => {\n await getCurrentExperience();\n myGoals.value = await getMyGoals();\n loading.value = false;\n loaded.value = true;\n});\n\nconst agreeShareExperienceUpdated = async () => {\n if (profileInfo.value) {\n await updateAgreeShareExperience(profileInfo.value.agreeShareExperience);\n }\n};\n\nconst getCurrentExperience = async () => {\n const result = await getProfileInformation();\n if (result) {\n profileInfo.value = result;\n languages.value = getLanguageSkills([...profileInfo.value.skills]).sort(sortByProgressionName);\n filterSkills(profileInfo.value.skills);\n jobExperiences.value = [...profileInfo.value.jobExperiences].sort((a, b) => compareDates(a.fromDate, b.fromDate, false));\n currentJobExperience.value = profileInfo.value.currentJobExperience;\n currentJobExperienceGeneralSkills.value = [\n ...(profileInfo.value.currentJobExperience?.skills.filter((s) => s.type === SkillType.General) ?? []),\n ];\n currentJobExperienceLanguageSkills.value = [\n ...(profileInfo.value.currentJobExperience?.skills.filter((s) => s.type === SkillType.Language) ?? []),\n ];\n educations.value = [...profileInfo.value.educations].sort((a, b) => compareDates(a.fromDate, b.fromDate, false));\n aboutMeKey.value = aboutMeKey.value + 1;\n }\n};\n\nconst filterSkills = (updatedSkills: SkillWithProgression[]): void => {\n const skills = [...updatedSkills].sort(sortByProgressionName);\n generalSkillsUpdated(getGeneralSkills(skills));\n};\n\nconst generalSkillsUpdated = (updatedSkills: SkillWithProgression[]): void => {\n generalSkills.value = [...updatedSkills].sort(sortByProgressionName);\n};\n\nconst currentJobExperienceGeneralSkillsUpdated = (updatedSkills: SkillWithProgression[]): void => {\n currentJobExperienceGeneralSkills.value = updatedSkills;\n};\n\nconst currentJobExperienceLanguageSkillsUpdated = (updatedSkills: SkillWithProgression[]): void => {\n currentJobExperienceLanguageSkills.value = updatedSkills;\n};\n\nconst languagesUpdated = (updatedLanguages: SkillWithProgression[]): void => {\n languages.value = [...updatedLanguages].sort(sortByProgressionName);\n};\n\nconst jobExperienceDeleted = (jobExperience: JobExperience): void => {\n jobExperiences.value = jobExperiences.value.filter((j) => j.id !== jobExperience.id);\n};\n\nconst jobExperienceCreated = (jobExperience: JobExperience): void => {\n jobExperiences.value.push(jobExperience);\n};\n\nconst jobExperienceUpdated = (jobExperience: JobExperience): void => {\n jobExperiences.value = jobExperiences.value.filter((j) => j.id !== jobExperience.id);\n jobExperiences.value.push(jobExperience);\n jobExperiences.value = [...jobExperiences.value].sort((a, b) => compareDates(a.fromDate, b.fromDate, false));\n};\n\nconst currentJobExperienceUpdated = (jobExperience: JobExperience): void => {\n currentJobExperience.value = { ...jobExperience, skills: currentJobExperience.value?.skills ?? [] };\n};\n\nconst educationDeleted = (education: Education): void => {\n educations.value = educations.value.filter((j) => j.id !== education.id);\n};\n\nconst educationCreated = (education: Education): void => {\n educations.value.push(education);\n educations.value = [...educations.value].sort((a, b) => compareDates(a.fromDate, b.fromDate, false));\n};\n\nconst educationUpdated = (education: Education): void => {\n educations.value = educations.value.filter((j) => j.id !== education.id);\n educations.value.push(education);\n educations.value = [...educations.value].sort((a, b) => compareDates(a.fromDate, b.fromDate, false));\n};\n\nconst profileImported = async (): Promise<void> => {\n loading.value = true;\n await getCurrentExperience();\n showProfileImporter.value = false;\n loading.value = false;\n};\n\nconst curriculumSet = (newFileName: string | null) => {\n if (profileInfo.value) {\n profileInfo.value.curriculumName = newFileName;\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.current-job {\n border-radius: var(--size-xs);\n background-color: var(--color-neutral-100);\n box-shadow: 0 var(--space-xs) var(--space-m) rgba(26, 26, 26, 0.04);\n padding: var(--space-m);\n}\n</style>\n","<template>\n <img class=\"image\" :class=\"{ 'image--mini': miniSize }\" :src=\"imageSrc\" :alt=\"goal.title\" :title=\"goal.description\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { CompanyGoal } from \"@/models/companyGoal\";\nimport { imageDefaultForCourses } from \"@/constants/urls\";\nimport useMeGoalsService from \"@/services/useMeGoalsService\";\n\nconst { getGoalPictureUrl } = useMeGoalsService();\n\ninterface Props {\n goal: CompanyGoal;\n miniSize?: boolean;\n}\nconst props = defineProps<Props>();\n\nconst hasImage = computed<boolean>(() => props.goal.picture?.fileName !== undefined);\nconst imageSrc = computed<string>(() => (hasImage.value ? getGoalPictureUrl(props.goal.id) : imageDefaultForCourses));\n</script>\n\n<style lang=\"scss\" scoped>\n.image {\n height: 280px;\n width: 100%;\n object-fit: cover;\n &--mini {\n height: 252px;\n }\n}\n</style>\n","<template>\n <div class=\"card\">\n <GoalImage :goal=\"goal\" />\n <div class=\"information\">\n <div class=\"information__details\">\n <div>\n <p class=\"text text--l text--link text--bold margin-v--s\" data-cy=\"card-title\" @click=\"titleClick\">{{ goal.title }}</p>\n <p class=\"text margin-b--s information__description text--line-clamp-3\" v-html=\"toHtml(goal.description)\"></p>\n </div>\n <div class=\"text text--bold\">\n {{ $t(\"pages.goals_challenges.featured.dates\", { start: parseDateToString(goal.start), end: parseDateToString(goal.end) }) }}\n </div>\n </div>\n <div v-if=\"goal.canParticipate\" class=\"information__actions\">\n <ParticipateButton v-model=\"participating\" :goal-id=\"goal.id\" />\n <AppTag\n :main-text=\"$t('pages.goals_challenges.featured.vacant_positions', { vacantPositions: goal.numberOfPeopleNeeded })\"\n type=\"skill\" />\n <p class=\"text\">\n {{ $t(\"pages.goals_challenges.featured.days_left\", { days: daysBetweenDates(new Date(), goal.applicationClosing) }) }}\n </p>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport ParticipateButton from \"@/views/app/goals-challenges/components/ParticipateButton.vue\";\nimport GoalImage from \"@/views/app/goals-challenges/components/GoalImage.vue\";\nimport type { CompanyGoal, CompanyGoalWithParticipation } from \"@/models/companyGoal\";\nimport { daysBetweenDates, parseDateToString } from \"@/utils/dateUtils\";\nimport { toHtml } from \"@/utils/stringUtils\";\n\ninterface Props {\n goal: CompanyGoalWithParticipation;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n (e: \"titleClick\", value: CompanyGoal): void;\n (e: \"update:participating\", goalId: number, participating: boolean): void;\n}>();\n\nconst participating = computed({\n get: () => props.goal.participating,\n set: (val) => emit(\"update:participating\", props.goal.id, !!val),\n});\n\nconst titleClick = () => emit(\"titleClick\", props.goal);\n</script>\n<style lang=\"scss\" scoped>\n.card {\n height: calc(100% - 40px);\n margin: var(--space-s) 0 var(--space-s) var(--space-s);\n display: flex;\n flex-direction: column;\n background-color: var(--color-neutral-100);\n border-radius: 12px;\n box-shadow: var(--size-xs) var(--size-xs) var(--size-s) rgb(26 26 26 / 0.06);\n}\n\n.information {\n display: grid;\n grid-template-columns: 1fr auto;\n column-gap: var(--space-s);\n padding: var(--space-s);\n height: 100%;\n\n &__details {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n }\n\n &__description {\n min-height: 60px;\n }\n\n &__actions {\n flex: 0 0 160px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: var(--space-s) 0 var(--space-s) 0;\n }\n}\n</style>\n","<template>\n <div class=\"featured-card\">\n <GoalImage :goal=\"goal\" :mini-size=\"true\" />\n <p class=\"text text--m text--bold text--ellipsis text--link margin-v--s\" data-cy=\"featured-card-title\" @click=\"titleClick\">\n {{ goal.title }}\n </p>\n <div class=\"featured-card__description text--line-clamp-3\">\n <p class=\"text text--s margin-b--s\">{{ goal.description }}</p>\n </div>\n <div class=\"featured-card__registered\">\n <p class=\"text text--s\">{{ $t(\"pages.goals_challenges.details.colleagues_registered\", goal.colleaguesRegistered ?? 0) }}</p>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport type { CompanyGoal } from \"@/models/companyGoal\";\nimport GoalImage from \"@/views/app/goals-challenges/components/GoalImage.vue\";\n\ninterface Props {\n goal: CompanyGoal;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"titleClick\", value: CompanyGoal) => void>();\n\nconst titleClick = () => emit(\"titleClick\", props.goal);\n</script>\n<style lang=\"scss\" scoped>\n.featured-card {\n position: relative;\n height: 424px;\n margin: var(--space-s) 0 var(--space-s) var(--space-s);\n padding: var(--space-s);\n background-color: var(--color-neutral-100);\n border-radius: 12px;\n box-shadow: var(--size-xs) var(--size-xs) var(--size-s) rgb(26 26 26 / 0.06);\n\n &__description {\n min-height: 60px;\n }\n\n &__registered > p {\n position: absolute;\n bottom: var(--size-s);\n color: var(--color-neutral-500);\n }\n}\n</style>\n","<template>\n <div class=\"generic-filter\" :class=\"{ 'generic-filter--read-only': !addButtonText }\">\n <AppBasicText\n v-model=\"searchText\"\n :placeholder=\"placeholder\"\n :maxlength=\"mediumTextLength\"\n icon=\"magnify\"\n :bg-transparent=\"true\"\n data-cy=\"search\"\n :show-clean-option=\"true\"\n @update:model-value=\"filterChanged\" />\n <AppButton\n v-if=\"addButtonText\"\n :text=\"addButtonText\"\n size=\"m\"\n variant=\"primary\"\n data-cy=\"new-item\"\n @onclick=\"() => emit('createNew')\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppBasicText from \"@/components/AppBasicText.vue\";\nimport { DEBOUNCE_SEARCH_TIMEOUT } from \"@/constants/debounce\";\nimport { mediumTextLength } from \"@/constants/restrictions\";\nimport { useDebounce } from \"@/services/useDebounce\";\n\ninterface Props {\n placeholder: string;\n addButtonText?: string;\n}\ndefineProps<Props>();\n\ninterface Emits {\n (e: \"createNew\"): void;\n (e: \"filterChanged\", newFilter: string): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst { after } = useDebounce();\n\nconst searchText = ref<string>(\"\");\n\nconst filterChanged = () => after(DEBOUNCE_SEARCH_TIMEOUT, () => emit(\"filterChanged\", searchText.value));\n</script>\n\n<style lang=\"scss\" scoped>\n.generic-filter {\n display: grid;\n grid-template-columns: 1fr auto;\n column-gap: 2rem;\n align-items: center;\n\n &--read-only {\n grid-template-columns: 1fr;\n }\n}\n</style>\n","<template>\n <LayoutPage :title=\"$t('pages.goals_challenges.title')\">\n <AppGenericFilter :placeholder=\"$t('pages.goals_challenges.search.placeholder')\" class=\"margin-b--m\" @filter-changed=\"updateSearch\" />\n <div v-if=\"displaySearchCarousel\" class=\"search-carousel\" data-cy=\"search-carousel\">\n <span class=\"search-carousel__results text--l\" data-cy=\"searched-results\">{{ $t(\"shared.results\", allGoals.length) }}</span>\n <AppCarousel v-if=\"allGoals.length > 0\" :number-of-items=\"allGoals.length\" data-cy=\"searched-goals\">\n <template v-for=\"(goal, index) in allGoals\" :key=\"index\" #[`item_${index+1}`]>\n <AppGoalsFeaturedCard :goal=\"goal\" data-cy=\"searched-goal\" @title-click=\"goalClick(goal.id)\" />\n </template>\n </AppCarousel>\n </div>\n <h2 class=\"margin-v--m\">{{ $t(\"pages.goals_challenges.featured.title\") }}</h2>\n <AppCarousel v-if=\"featuredGoals.length\" :number-of-items=\"featuredGoals.length\" :number-of-items-visible=\"2\" data-cy=\"featured-goals\">\n <template v-for=\"(goal, index) in featuredGoals\" :key=\"index\" #[`item_${index+1}`]>\n <AppGoalsChallengeCard\n :goal=\"goal\"\n data-cy=\"featured-goal\"\n @title-click=\"goalClick(goal.id)\"\n @update:participating=\"updateParticipatingHandler\" />\n </template>\n </AppCarousel>\n <AppNoContentYet v-else :text=\"$t('pages.goals_challenges.no.goals')\" />\n <h2 class=\"margin-v--m\">{{ $t(\"pages.goals_challenges.my.title\") }}</h2>\n <AppCarousel v-if=\"myGoals.length\" :number-of-items=\"myGoals.length\" data-cy=\"my-goals\">\n <template v-for=\"(goal, index) in myGoals\" :key=\"index\" #[`item_${index+1}`]>\n <AppGoalsChallengeCurrentCard :goal=\"goal\" data-cy=\"my-goal\" @click=\"goalClick(goal.id)\" />\n </template>\n </AppCarousel>\n <AppNoContentYet v-else />\n\n <AppModal name=\"goal-detail\">\n <AppGoalDetails v-if=\"selectedGoalId\" :goal-id=\"selectedGoalId\" @update:participating=\"updateParticipatingHandler\" />\n </AppModal>\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport i18n from \"@/i18n\";\nimport { type Ref, ref, onMounted, computed } from \"vue\";\nimport AppCarousel from \"@/components/carousel/AppCarousel.vue\";\nimport AppGoalDetails from \"@/views/app/goals-challenges/AppGoalDetails.vue\";\nimport AppGoalsChallengeCard from \"@/views/app/goals-challenges/components/AppGoalsChallengeCard.vue\";\nimport AppGoalsChallengeCurrentCard from \"@/views/shared/challenges-goals/AppGoalsChallengeCurrentCard.vue\";\nimport AppGoalsFeaturedCard from \"@/views/app/goals-challenges/components/AppGoalsFeaturedCard.vue\";\nimport AppModal from \"@/components/modal/AppModal.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport AppGenericFilter from \"@/components/AppGenericFilter.vue\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport type { CompanyGoal, CompanyGoalWithParticipation } from \"@/models/companyGoal\";\nimport useMeGoalsService from \"@/services/useMeGoalsService\";\nimport useModal from \"@/components/modal/useModal\";\nimport { compareDates } from \"@/utils/dateUtils\";\nimport { isBlank } from \"@/utils/stringUtils\";\n\nconst { getFeaturedGoals, getMyCurrentGoals, searchCompanyGoals } = useMeGoalsService();\nconst { openComponentModal } = useModal();\n\nconst selectedGoalId: Ref<number | undefined> = ref<number | undefined>();\n\nconst featuredGoals: Ref<CompanyGoalWithParticipation[]> = ref<CompanyGoalWithParticipation[]>([]);\nconst myGoals: Ref<CompanyGoal[]> = ref<CompanyGoal[]>([]);\n\nconst searchText: Ref<string> = ref<string>(\"\");\nconst displaySearchCarousel = computed(() => searchText.value.length && !isBlank(searchText.value));\nconst allGoals: Ref<CompanyGoalWithParticipation[]> = ref<CompanyGoalWithParticipation[]>([]);\n\nonMounted(async () => {\n const goals = await getFeaturedGoals();\n goals.sort((a, b) => compareDates(a.start, b.start, true));\n featuredGoals.value = goals;\n myGoals.value = await getMyCurrentGoals();\n});\n\nconst goalClick = (goalId: number): void => {\n selectedGoalId.value = goalId;\n openComponentModal(\"goal-detail\", {\n title: i18n.global.t(\"pages.goals_challenges.my.title\"),\n variant: \"floating\",\n showCancelToClose: true,\n closeCallback: () => {\n selectedGoalId.value = undefined;\n },\n });\n};\n\nconst updateParticipatingHandler = (goalId: number, alreadyParticipant: boolean): void => {\n const goalToUpdate = featuredGoals.value.find((g) => g.id === goalId);\n\n if (!goalToUpdate) {\n return;\n }\n goalToUpdate.participating = alreadyParticipant;\n};\n\nconst updateSearch = async (searchTerm: string) => {\n searchText.value = searchTerm;\n allGoals.value = await searchCompanyGoals(searchTerm);\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.search-carousel {\n &__results {\n display: inline-block;\n padding-bottom: var(--size-m);\n }\n}\n</style>\n","<template>\n <AppTab :tabs=\"tabs\" :tab-id=\"$t('pages.learning.title')\" />\n</template>\n\n<script setup lang=\"ts\">\nimport i18n from \"@/i18n\";\nimport router from \"@/router/router\";\nimport AppTab, { type Tab } from \"@/components/AppTab.vue\";\n\ninterface Props {\n current: \"Learning\" | \"MyLearningPath\" | \"MyTraining\";\n}\nconst props = defineProps<Props>();\n\nconst tabs: Tab[] = [\n {\n text: i18n.global.t(\"pages.learning.learning.tab\"),\n action: () => router.push({ name: \"my-learning-learning\" }),\n isChecked: props.current === \"Learning\",\n dataCy: \"nav-learning\",\n },\n {\n text: i18n.global.t(\"pages.learning.my_learning_path.tab\"),\n action: () => router.push({ name: \"my-learning-path\" }),\n isChecked: props.current === \"MyLearningPath\",\n dataCy: \"nav-my-learning-path\",\n },\n {\n text: i18n.global.t(\"pages.learning.my_training.tab\"),\n action: () => router.push({ name: \"my-learning-training\" }),\n isChecked: props.current === \"MyTraining\",\n dataCy: \"nav-my-training\",\n },\n];\n</script>\n","<template>\n <div class=\"app-label\" :class=\"{ 'app-label--compress': compress }\">\n <label v-if=\"label\" :class=\"labelClasses\" class=\"text text--secondary\">{{ label }}</label>\n <label v-if=\"value && !link\" class=\"text text--bold\" :class=\"textClasses\" :title=\"compress ? text : ''\">{{ text }}</label>\n <a v-if=\"value && link\" class=\"text text--link\" :href=\"text\" target=\"_blank\">{{ text }}</a>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { parseDateToString } from \"@/utils/dateUtils\";\nimport { formatNumber } from \"@/utils/numberUtils\";\nimport { computed } from \"vue\";\n\ninterface Props {\n label?: string;\n value?: string | number | Date;\n formatting?: \"normal\" | \"bold\" | \"italic\";\n link?: boolean;\n transformation?: \"capitalize\" | \"uppercase\";\n compress?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), { formatting: \"normal\", link: false });\n\nconst labelClasses = computed(() => ({\n [`text--${props.formatting}`]: props.formatting !== \"normal\",\n}));\nconst textClasses = computed(() => ({\n [`text--${props.transformation}`]: props.transformation,\n [`text--ellipsis`]: props.compress,\n}));\n\nconst text = computed(() => {\n if (!props.value) {\n return \"\";\n }\n if (typeof props.value === \"number\") {\n return formatNumber(props.value);\n }\n if (props.value instanceof Date) {\n return parseDateToString(props.value);\n }\n return props.value;\n});\n</script>\n\n<style scoped lang=\"scss\">\n.app-label {\n display: flex;\n flex-direction: column;\n row-gap: var(--space-s);\n\n &--compress {\n row-gap: var(--space-xs);\n }\n}\n</style>\n","import type { PaginatedResult } from \"@/models/response/paginatedResult\";\n\nexport enum CourseType {\n CourseCoursera = \"CourseCoursera\",\n CourseEdX = \"CourseEdX\",\n CourseLinkedInLearning = \"CourseLinkedInLearning\",\n CourseIntefi = \"CourseIntefi\",\n CourseCompany = \"CourseCompany\",\n}\nexport enum CourseLevel {\n Beginner = 1,\n Advanced = 2,\n Expert = 3,\n}\nexport interface CompanyCourseInformation {\n startTime: string;\n endTime: string;\n country: string;\n city: string;\n address: string;\n floor: string;\n room: string;\n schedule: string;\n imageCoverName?: string;\n}\nexport interface CourseBase {\n id: number;\n title: string;\n description: string;\n level: string;\n topics: string;\n durationHours?: number;\n url: string;\n language: string;\n imageUrl?: string;\n courseType: CourseType;\n onLine: boolean;\n start: Date;\n end?: Date;\n companyCourseInformation?: CompanyCourseInformation;\n}\n\nexport interface RatedCourse extends CourseBase {\n averageRate: number;\n}\n\nexport interface EmployeeCourse extends RatedCourse {\n done: boolean;\n}\n\nexport type CourseBaseList = PaginatedResult<CourseBase>;\nexport type EmployeeCourseList = PaginatedResult<EmployeeCourse>;\n\nexport interface CourseModificationStatus {\n course: CourseBase;\n added: boolean;\n}\n","<template>\n <AppLabel :compress=\"true\" :label=\"$t('entities.learning.level')\" :value=\"convertLevelToDisplay(level)\" transformation=\"capitalize\" />\n</template>\n<script setup lang=\"ts\">\nimport i18n from \"@/i18n\";\nimport AppLabel from \"@/components/AppLabel.vue\";\nimport { CourseLevel } from \"@/models/course\";\n\ninterface Props {\n level?: string;\n}\ndefineProps<Props>();\n\nconst convertLevelToDisplay = (level?: string) => {\n if (!level) {\n return i18n.global.t(`entities.courses.level.empty`);\n }\n const courseLevel = CourseLevel[level as keyof typeof CourseLevel];\n return i18n.global.t(`entities.courses.level.${courseLevel}`);\n};\n</script>\n","<template>\n <AppTag :main-text=\"courseTypeDescription\" type=\"training\" :training-type=\"course.courseType\" :title=\"courseTypeDescription\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport i18n from \"@/i18n\";\nimport type { CourseBase } from \"@/models/course\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport { computed } from \"vue\";\n\ninterface Props {\n course: CourseBase;\n}\nconst props = defineProps<Props>();\n\nconst courseTypeDescription = computed(() => i18n.global.t(`pages.learning.filter.type.${props.course.courseType}`));\n</script>\n","<template>\n <div :class=\"{ 'course-mode-indicator': !inline }\">\n <AppTag\n :main-text=\"modeDescription\"\n type=\"training\"\n training-type=\"access-mode\"\n :access-mode-inline=\"inline\"\n :title=\"modeDescription\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport i18n from \"@/i18n\";\nimport type { CourseBase } from \"@/models/course\";\nimport AppTag from \"@/components/AppTag.vue\";\n\ninterface Props {\n course: CourseBase;\n inline?: boolean;\n}\nconst props = defineProps<Props>();\n\nconst modeDescription = computed<string>(() => i18n.global.t(`pages.learning.mode.${props.course.onLine ? \"online\" : \"onsite\"}`));\n</script>\n<style lang=\"scss\" scoped>\n.course-mode-indicator {\n position: absolute;\n top: 0.8rem;\n left: 0.8rem;\n}\n</style>\n","import useHttpClient from \"@/services/shared/useHttpClient\";\nimport type { LearningCourse } from \"@/models/learningCourse\";\nimport type { CourseBase } from \"@/models/course\";\nimport type { Ref } from \"vue\";\n\nconst BASE_URL = \"/api/company/course\";\nconst { post, put, httpDelete, get, appBaseUrl, loading } = useHttpClient();\n\ninterface UseCompanyCoursesServiceReturn {\n createLearningCourse: (learningCourse: LearningCourse) => Promise<number>;\n getLearningImageCoverUrl: (learningCourseId: number, imageName: string) => string;\n updateLearningCourse: (learningCourse: LearningCourse) => Promise<void>;\n deleteLearningCourse: (learningCourseId: number) => Promise<void>;\n getCourses: (searchTerm: string) => Promise<CourseBase[]>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseCompanyCoursesServiceReturn => {\n const createLearningCourse = (learningCourse: LearningCourse): Promise<number> => post(BASE_URL, learningCourse);\n const getLearningImageCoverUrl = (learningCourseId: number, imageName: string): string =>\n `${appBaseUrl}${BASE_URL}/${learningCourseId}/imageCover/?n=${imageName}`;\n const getCourses = (searchTerm: string): Promise<CourseBase[]> => get<CourseBase[]>(`${BASE_URL}/${searchTerm}`);\n const deleteLearningCourse = (learningCourseId: number): Promise<void> => httpDelete(`${BASE_URL}/${learningCourseId}`);\n const updateLearningCourse = (course: LearningCourse): Promise<void> => put(`${BASE_URL}/${course.id}`, course);\n\n return { createLearningCourse, getLearningImageCoverUrl, updateLearningCourse, deleteLearningCourse, getCourses, loading };\n};\n","<template>\n <img\n :key=\"imageKey\"\n class=\"course-image\"\n :class=\"{ 'course-image--list': list }\"\n :src=\"imageSrc\"\n :alt=\"course.title\"\n :title=\"course.title\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport type { CourseBase } from \"@/models/course\";\nimport useCompanyCoursesService from \"@/services/useCompanyCoursesService\";\nimport { imageDefaultForCourses } from \"@/constants/urls\";\nimport { computed } from \"vue\";\n\nconst { getLearningImageCoverUrl } = useCompanyCoursesService();\n\ninterface Props {\n course: CourseBase;\n list?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), { list: false });\n\nconst imageKey = computed<string>(\n () => `${props.course.id}-${props.course.companyCourseInformation?.imageCoverName ?? props.course.imageUrl ?? imageDefaultForCourses}`\n);\n\nconst imageSrc = computed<string>(() => {\n if (props.course.imageUrl) {\n return props.course.imageUrl;\n }\n if (props.course.companyCourseInformation?.imageCoverName) {\n return getLearningImageCoverUrl(props.course.id, imageKey.value);\n }\n\n return imageDefaultForCourses;\n});\n</script>\n\n<style lang=\"scss\" scoped>\n.course-image {\n object-fit: cover;\n height: 25rem;\n width: 100%;\n\n &--list {\n height: 100%;\n width: unset;\n max-width: 28rem;\n border-radius: 6px 0 0 6px;\n }\n}\n</style>\n","import i18n from \"@/i18n\";\n\nexport type Language = {\n isoCode: LanguagesCodes;\n displayName: string;\n};\n\nenum LanguagesCodes {\n \"en-US\" = \"english\",\n \"es-ES\" = \"spanish\",\n \"fr-FR\" = \"french\",\n \"de-DE\" = \"german\",\n \"it-IT\" = \"italian\",\n \"pt-PT\" = \"portuguese\",\n}\n\nconst languagesCodeMapped = new Map<string, string>();\nconst languageKeys = Object.keys(LanguagesCodes);\nconst languageValues = Object.values(LanguagesCodes);\n\nfor (let ixLanguage = 0; ixLanguage < languageKeys.length; ixLanguage++) {\n const isoCode = languageKeys[ixLanguage];\n const isoCodeTwoDigits = isoCode.split(\"-\")[0];\n const languageTranslateKey = languageValues[ixLanguage];\n languagesCodeMapped.set(isoCode, languageTranslateKey);\n languagesCodeMapped.set(languageTranslateKey, languageTranslateKey);\n languagesCodeMapped.set(isoCodeTwoDigits, languageTranslateKey);\n}\n\nexport const getLanguageName = (code: LanguagesCodes): string => decodeLanguage(code);\nexport const getLanguage = (code: LanguagesCodes): Language => ({\n isoCode: code,\n displayName: getLanguageName(code),\n});\nconst getDecodeLanguageCode = (possibleCodeLanguage: string): string | undefined => {\n if (possibleCodeLanguage in LanguagesCodes) {\n return possibleCodeLanguage;\n }\n const codeLowerCase = possibleCodeLanguage.toLocaleLowerCase();\n if (possibleCodeLanguage in LanguagesCodes) {\n return codeLowerCase;\n }\n const isoTwoCharsCode = codeLowerCase.split(\"-\")[0];\n if (isoTwoCharsCode in LanguagesCodes) {\n return isoTwoCharsCode;\n }\n};\nexport const decodeLanguage = (possibleCodeLanguage: string): string => {\n const mappedKey = getDecodeLanguageCode(possibleCodeLanguage);\n if (mappedKey) {\n return i18n.global.t(`shared.languages.${languagesCodeMapped.get(mappedKey)}`);\n }\n return possibleCodeLanguage;\n};\nexport const getLanguages = (): Language[] => languageKeys.map((code) => getLanguage(code as LanguagesCodes));\n","import i18n from \"@/i18n\";\nimport { formatNumber } from \"@/utils/numberUtils\";\n\nexport const getDurationStringFromHours = (duration?: number): string => {\n if (!duration) {\n return i18n.global.t(\"shared.time.hours\", { time: formatNumber(0) });\n }\n\n const minutesPart = duration - Math.floor(duration);\n const hours = Math.round(duration - minutesPart);\n const minutes = Math.round(minutesPart * 60);\n const minutesText = i18n.global.t(\"shared.time.minutes\", { time: formatNumber(minutes) });\n\n if (hours > 0) {\n const hoursText = i18n.global.t(\"shared.time.hours\", { time: formatNumber(hours) });\n return hoursText + (minutes > 0 ? \" \" + minutesText : \"\");\n }\n\n return minutesText;\n};\n","<template>\n <AppButton\n v-if=\"!course.done\"\n :text=\"$t('pages.learning.goToTheTraining')\"\n size=\"m\"\n :disabled=\"!course.url\"\n data-cy=\"goToTraining-Button\"\n @onclick=\"openTrainingUrl\" />\n <AppTag v-else type=\"status\" status-type=\"success\" class=\"training-complete-button\" :main-text=\"$t('pages.learning.trainingComplete')\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport type { EmployeeCourse } from \"@/models/course\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport { openUrl } from \"@/utils/urlHelper\";\n\ninterface Props {\n course: EmployeeCourse;\n}\nconst props = defineProps<Props>();\n\nconst openTrainingUrl = () => openUrl(props.course.url);\n</script>\n<style lang=\"scss\" scoped>\n.training-complete-button {\n padding: 10px 13px;\n border: 1px solid var(--color-neutral-100);\n}\n</style>\n","<template>\n <div class=\"certificate-reminder\" data-cy=\"certificate-reminder\">\n <span class=\"icon icon-verified text--xl\"></span>\n <div class=\"certificate-reminder__texts\">\n <div class=\"text text--l text--bold certificate-reminder__texts__header\">\n {{ $t(\"pages.learning.trainingComplete\") }}\n </div>\n <div class=\"text\">\n {{ $t(\"pages.learning.certificateReminder\") }}\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.certificate-reminder {\n display: grid;\n grid-template-columns: auto 1fr;\n background-color: var(--color-company-goals-start-background);\n padding: var(--space-m);\n column-gap: 1rem;\n border-radius: var(--default-border-radius);\n\n &__texts {\n display: flex;\n flex-direction: column;\n gap: var(--space-xs);\n &__header {\n color: var(--color-neutral-800);\n }\n }\n}\n</style>\n","<template>\n <AppIconOnlyButton\n :icon=\"iconName\"\n class=\"star\"\n size=\"xxl\"\n :as-link=\"false\"\n @click=\"handleClick\"\n @mouseover=\"hover\"\n @mouseleave=\"leave\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport AppIconOnlyButton from \"@/components/AppIconOnlyButton.vue\";\n\ninterface Props {\n valueRequired: number;\n value: number;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n (e: \"click\", value: number): void;\n (e: \"starHover\", value: number): void;\n (e: \"starLeave\"): void;\n}>();\n\nconst iconName = computed<string>(() => (props.value >= props.valueRequired ? \"star\" : \"star-outline\"));\n\nconst handleClick = () => emit(\"click\", props.valueRequired);\nconst hover = () => emit(\"starHover\", props.valueRequired);\nconst leave = () => emit(\"starLeave\");\n</script>\n\n<style scoped lang=\"scss\">\n.star {\n color: var(--color-system-warning);\n cursor: pointer;\n}\n</style>\n","<template>\n <div class=\"app-input-rating\">\n <label v-if=\"label\" class=\"text text--secondary\" :class=\"{ 'text--bold': bold }\">{{ label }}</label>\n <div class=\"app-input-rating__stars\">\n <AppRatingStar\n v-for=\"rateValue in ratings\"\n :key=\"rateValue\"\n :value-required=\"rateValue\"\n :value=\"hoverValue || modelValue || 0\"\n @click=\"clickHandler\"\n @star-hover=\"starHover\"\n @star-leave=\"starLeave\" />\n <AppInputError :error=\"error\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport AppRatingStar from \"@/components/rateInput/AppRatingStar.vue\";\nimport AppInputError from \"@/components/AppInputError.vue\";\nimport { createArray } from \"@/utils/numberUtils\";\n\ninterface Props {\n label?: string;\n modelValue?: number;\n error?: string;\n bold?: boolean;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"update:modelValue\", value: number) => void>();\n\nconst hoverValue = ref<number>();\nconst ratings = createArray(5);\n\nconst clickHandler = (newValue: number) => emit(\"update:modelValue\", newValue);\nconst starHover = (newValue: number) => (hoverValue.value = newValue);\nconst starLeave = () => (hoverValue.value = 0);\n</script>\n\n<style scoped lang=\"scss\">\n.app-input-rating {\n display: grid;\n grid-auto-flow: row;\n row-gap: 0.3rem;\n justify-items: left;\n align-items: center;\n\n &__stars {\n display: flex;\n flex-direction: row;\n }\n}\n</style>\n","import useHttpClient from \"@/services/shared/useHttpClient\";\nimport type { Ref } from \"vue\";\nimport type { EmployeeCourse, CourseType, EmployeeCourseList } from \"@/models/course\";\nimport type { CourseRate } from \"@/models/courseRate\";\nimport type { CourseEmployeeRate } from \"@/models/courseEmployeeRate\";\nimport type { LearningPath } from \"@/models/learningPath\";\n\nconst BASE_URL = \"/api/me/courses\";\nconst { get, put, loading } = useHttpClient();\n\ninterface UseMeCoursesServiceReturn {\n searchCourses: (searchTerm: string, pageIndex: number, courseType: CourseType | undefined) => Promise<EmployeeCourseList>;\n getFeaturedCourses: () => Promise<EmployeeCourse[]>;\n getCourseRate: (courseId: number) => Promise<CourseRate>;\n getEmployeeCourseInfo: (courseId: number) => Promise<CourseEmployeeRate>;\n setEmployeeCourseInfo: (courseId: number, rateInfo: CourseEmployeeRate) => Promise<void>;\n getEmployeeLearningPath: () => Promise<LearningPath>;\n getAlreadyDoneCourses: () => Promise<EmployeeCourse[]>;\n loading: Ref<boolean>;\n}\n\nconst getCourseRouteSegment = (courseType: CourseType | undefined): string => (courseType ? `/${courseType}` : \"\");\n\nexport default (): UseMeCoursesServiceReturn => {\n const getFeaturedCourses = (): Promise<EmployeeCourse[]> => get<EmployeeCourse[]>(`${BASE_URL}/featured`);\n const getEmployeeCourseInfo = (courseId: number): Promise<CourseEmployeeRate> =>\n get<CourseEmployeeRate>(`${BASE_URL}/${courseId}/employee-info`);\n const setEmployeeCourseInfo = (courseId: number, rateInfo: CourseEmployeeRate): Promise<void> =>\n put(`${BASE_URL}/${courseId}/employee-info`, rateInfo);\n const searchCourses = (searchTerm: string, pageIndex: number, courseType: CourseType | undefined): Promise<EmployeeCourseList> =>\n get(`${BASE_URL}/search${getCourseRouteSegment(courseType)}?searchTerm=${searchTerm}&pageIndex=${pageIndex}`);\n const getCourseRate = (courseId: number): Promise<CourseRate> => get<CourseRate>(`${BASE_URL}/${courseId}/rate`);\n const getEmployeeLearningPath = (): Promise<LearningPath> => get<LearningPath>(`${BASE_URL}/learning-path`);\n const getAlreadyDoneCourses = (): Promise<EmployeeCourse[]> => get<EmployeeCourse[]>(`${BASE_URL}/already-done`);\n\n return {\n getFeaturedCourses,\n searchCourses,\n getEmployeeCourseInfo,\n setEmployeeCourseInfo,\n getCourseRate,\n getEmployeeLearningPath,\n getAlreadyDoneCourses,\n loading,\n };\n};\n","<template>\n <AppAutomaticModalOpener :modal-config=\"modalConfig\" :disable-key-enter=\"true\">\n <div class=\"course-details\">\n <CourseDetailsMainData :course=\"course\" />\n <CourseOnSiteInformation\n v-if=\"!course.onLine && course.companyCourseInformation\"\n :course=\"course\"\n :information=\"course.companyCourseInformation\" />\n <div v-if=\"allowEdit\" class=\"course-editor\">\n <CourseGoToTrainingButton v-if=\"(course as EmployeeCourse).done === false\" :course=\"(course as EmployeeCourse)\" />\n <AppPanel v-if=\"(course as EmployeeCourse).done === false\" :dark=\"true\" :border=\"false\">\n <AppToggle v-model=\"courseDone\" :text=\"$t('pages.learning.trainingComplete')\" data-cy=\"input-courseDone\" />\n </AppPanel>\n <AppUploadDocument\n v-if=\"(course as EmployeeCourse).done === false && courseDone\"\n v-model=\"attachment\"\n :label=\"$t('pages.learning.attachment.label')\"\n :accept=\"allowedExtensions.join()\"\n :error=\"attachmentError\"\n :maximum-size=\"maxFileSizeInMB\" />\n <CertificateReminder v-if=\"(course as EmployeeCourse).done\" />\n <AppInputRating v-model=\"rateValue\" :label=\"$t('pages.learning.rateTitle')\" :bold=\"true\" />\n <AppLabel :label=\"$t('pages.learning.rateObservations.placeHolder')\" />\n </div>\n </div>\n <template v-if=\"!allowEdit\" #actions>\n <AppButton :text=\"$t('shared.close')\" size=\"m\" variant=\"secondary\" data-cy=\"confirm-modal\" @onclick=\"emit('closed')\" />\n <AppButton\n v-if=\"allowAssign\"\n :text=\"$t('pages.learning.sendTraining')\"\n size=\"m\"\n variant=\"primary\"\n data-cy=\"assign-training\"\n @onclick=\"assignCourse\" />\n </template>\n </AppAutomaticModalOpener>\n</template>\n\n<script setup lang=\"ts\">\nimport i18n from \"@/i18n\";\nimport { ref, onMounted } from \"vue\";\nimport AppLabel from \"@/components/AppLabel.vue\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport CourseDetailsMainData from \"@/views/shared/learning/CourseDetailsMainData.vue\";\nimport CourseGoToTrainingButton from \"@/views/shared/learning/CourseGoToTrainingButton.vue\";\nimport CertificateReminder from \"@/views/shared/learning/CertificateReminder.vue\";\nimport CourseOnSiteInformation from \"@/views/shared/learning/CourseOnSiteInformation.vue\";\nimport AppInputRating from \"@/components/rateInput/AppInputRating.vue\";\nimport AppToggle from \"@/components/AppToggle.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppUploadDocument from \"@/components/uploadDocument/AppUploadDocument.vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport useMeCoursesService from \"@/services/useMeCoursesService\";\nimport type { EmployeeCourse, CourseBase } from \"@/models/course\";\nimport type { CourseEmployeeRate } from \"@/models/courseEmployeeRate\";\nimport useModal from \"@/components/modal/useModal\";\nimport type { ModalBase } from \"@/components/modal/models\";\nimport type { FileAttachment } from \"@/models/fileAttachment\";\nimport { useField, useForm } from \"vee-validate\";\nimport useFormSchema from \"@/services/useFormSchema\";\nimport useFormValidator from \"@/services/useFormValidator\";\nimport { allowedExtensions, maxFileSizeInMB } from \"@/utils/fileUtils\";\n\ninterface Props {\n course: CourseBase;\n allowEdit?: boolean;\n allowAssign?: boolean;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"closed\"): void;\n (e: \"saved\", courseId: number): void;\n (e: \"assign\", course: CourseBase): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst { getEmployeeCourseInfo, setEmployeeCourseInfo } = useMeCoursesService();\nconst { openTextModal } = useModal();\nconst { attachmentSchema, yupObject } = useFormSchema();\nconst { getFormCallbackHandler } = useFormValidator();\n\nconst courseDone = ref<boolean>((props.course as EmployeeCourse).done);\nconst rateValue = ref<number>(0);\nconst resourceSchema = yupObject({\n attachment: attachmentSchema(allowedExtensions, maxFileSizeInMB),\n});\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: attachment, errorMessage: attachmentError } = useField<FileAttachment | undefined>(\"attachment\");\n\nconst initRate = async (): Promise<void> => {\n if (!props.allowEdit) {\n return;\n }\n const courseRate = await getEmployeeCourseInfo(props.course.id);\n rateValue.value = courseRate.rateValue;\n};\n\nconst confirmCallback = async (): Promise<boolean> => {\n if (isCourseDoneChange()) {\n const confirmed = await confirmSetAsDone();\n if (!confirmed) {\n return false;\n }\n }\n await saveData();\n emit(\"saved\", props.course.id);\n\n return true;\n};\n\nconst saveData = () => {\n const rateInfo: CourseEmployeeRate = {\n rateValue: rateValue.value,\n done: (props.course as EmployeeCourse).done || courseDone.value,\n attachment: attachment.value,\n };\n return setEmployeeCourseInfo(props.course.id, rateInfo);\n};\n\nconst confirmSetAsDone = (): Promise<boolean> => {\n return new Promise<boolean>((resolve) => {\n openTextModal({\n icon: { content: \"verified\", style: \"\" },\n title: i18n.global.t(\"pages.learning.confirmSetTrainingAsComplete.title\"),\n contentText: i18n.global.t(\"pages.learning.confirmSetTrainingAsComplete.text\"),\n showCancelToClose: true,\n confirmCallback: () => resolve(true),\n closeCallback: () => resolve(false),\n });\n });\n};\nconst isCourseDoneChange = (): boolean => (props.course as EmployeeCourse).done !== courseDone.value;\n\nconst modalConfig: ModalBase = {\n title: props.course.title,\n variant: \"floating\",\n showCancelToClose: true,\n confirmText: i18n.global.t(\"buttons.save\"),\n confirmCallback: props.allowEdit ? getFormCallbackHandler(form, confirmCallback) : undefined,\n onClosed: () => emit(\"closed\"),\n};\n\nconst assignCourse = () => {\n emit(\"closed\");\n emit(\"assign\", props.course);\n};\n\nonMounted(() => initRate());\n</script>\n\n<style scoped lang=\"scss\">\n.course-details,\n.course-editor {\n display: flex;\n flex-direction: column;\n row-gap: var(--size-s);\n height: 100%;\n}\n.course-details {\n &__done {\n background-color: var(--color-sidebar-menu-shadow);\n }\n}\n</style>\n","<template>\n <div class=\"course-card-header\">\n <span\n class=\"text text--s text--link text--line-clamp-2 text--bold course-card__title\"\n data-cy=\"card-title\"\n :title=\"course.title\"\n @click=\"handleClick\">\n {{ course.title }}\n </span>\n <CourseTypeIndicator :course=\"course\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport type { CourseBase } from \"@/models/course\";\nimport CourseTypeIndicator from \"@/views/shared/learning/CourseTypeIndicator.vue\";\n\ninterface Props {\n course: CourseBase;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"click\") => void>();\n\nconst handleClick = () => emit(\"click\");\n</script>\n<style lang=\"scss\" scoped>\n.course-card-header {\n display: grid;\n grid-template-columns: minmax(5rem, 1fr) auto;\n column-gap: 0.1rem;\n}\n</style>\n","<template>\n <div class=\"carousel-card course-card\" :class=\"{ 'course-card--admin': showAdminOptions }\" data-cy=\"course-card\">\n <CourseImage :course=\"course\" />\n <div class=\"course-card__information\" :class=\"{ 'course-card__information--large': !showAdminOptions }\">\n <CourseCardHeader :course=\"course\" @click=\"emit('click', course)\" />\n <CourseModeIndicator :course=\"course\" />\n <p class=\"text text--xs course-card__description text--line-clamp-3\" v-html=\"toHtml(course.description)\"></p>\n <div class=\"course-card__footer margin-t--auto\">\n <p class=\"text text--xs course-card__duration\" data-cy=\"course-duration\">\n {{ getDurationStringFromHours(course.durationHours) }}\n </p>\n <AppTag icon=\"star\" :main-text=\"!ratedCourse.averageRate ? '-' : formatNumber(ratedCourse.averageRate)\" type=\"like\" />\n </div>\n <div v-if=\"showAdminOptions\" class=\"course-card__actions\">\n <template v-if=\"!assignMode\">\n <AppIconOnlyButton v-if=\"!noEditable\" icon=\"pencil\" :title=\"$t('buttons.edit')\" @click=\"emit('edit', course)\" />\n <AppIconOnlyButton icon=\"delete\" :title=\"$t('buttons.delete')\" @click=\"emit('delete', course)\" />\n </template>\n </div>\n <CourseGoToTrainingButton v-else :course=\"(course as EmployeeCourse)\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport type { EmployeeCourse, CourseBase, RatedCourse } from \"@/models/course\";\nimport CourseImage from \"@/views/shared/learning/CourseImage.vue\";\nimport CourseCardHeader from \"@/views/shared/learning/CourseCardHeader.vue\";\nimport CourseModeIndicator from \"@/views/shared/learning/CourseModeIndicator.vue\";\nimport CourseGoToTrainingButton from \"@/views/shared/learning/CourseGoToTrainingButton.vue\";\nimport AppIconOnlyButton from \"@/components/AppIconOnlyButton.vue\";\nimport { getDurationStringFromHours } from \"@/utils/timeUtils\";\nimport { formatNumber } from \"@/utils/numberUtils\";\nimport { toHtml } from \"@/utils/stringUtils\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport { computed } from \"vue\";\n\ninterface Props {\n course: CourseBase;\n showAdminOptions?: boolean;\n noEditable?: boolean;\n assignMode?: boolean;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n (e: \"click\", value: CourseBase): void;\n (e: \"edit\", course: CourseBase): void;\n (e: \"delete\", course: CourseBase): void;\n}>();\n\nconst ratedCourse = computed<RatedCourse>(() => props.course as RatedCourse);\n</script>\n<style lang=\"scss\" scoped>\n.course-card {\n position: relative;\n border-radius: var(--default-border-radius);\n overflow: hidden;\n height: 50rem;\n display: grid;\n grid-template-rows: auto 1fr;\n\n &__information {\n padding: var(--space-s);\n display: flex;\n flex-direction: column;\n gap: var(--space-xs);\n width: 100%;\n }\n\n &__footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &__description {\n color: var(--color-neutral-600);\n }\n\n &__actions {\n display: flex;\n flex-direction: row;\n width: 100%;\n column-gap: var(--space-xs);\n }\n\n &--admin {\n margin: 0;\n }\n}\n</style>\n","<template>\n <div class=\"course-carousel\">\n <h2 v-if=\"title\">{{ title }}</h2>\n <AppCarousel v-if=\"courses.length > 0\" :number-of-items=\"courses.length\" data-cy=\"carousel-courses\">\n <template v-for=\"(course, index) in courses\" :key=\"course.id\" #[`item_${index+1}`]>\n <CourseCard\n :course=\"course\"\n :show-admin-options=\"showAdminOptions\"\n @click=\"selectCourse(course)\"\n @edit=\"editCourse(course)\"\n @delete=\"deleteCourse(course)\" />\n </template>\n </AppCarousel>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AppCarousel from \"@/components/carousel/AppCarousel.vue\";\nimport CourseCard from \"@/views/shared/learning/CourseCard.vue\";\nimport type { EmployeeCourse } from \"@/models/course\";\n\ninterface Props {\n courses: EmployeeCourse[];\n title?: string;\n showAdminOptions?: boolean;\n}\ndefineProps<Props>();\n\ninterface Emits {\n (e: \"courseSelected\", course: EmployeeCourse): void;\n (e: \"edit\", course: EmployeeCourse): void;\n (e: \"delete\", course: EmployeeCourse): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst selectCourse = (course: EmployeeCourse) => emit(\"courseSelected\", course);\nconst editCourse = (course: EmployeeCourse) => emit(\"edit\", course);\nconst deleteCourse = (course: EmployeeCourse) => emit(\"delete\", course);\n</script>\n\n<style scope lang=\"scss\">\n.course-carousel {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n padding-top: 1rem;\n}\n</style>\n","import type { EmployeeCourse } from \"@/models/course\";\nimport type { CourseRate } from \"@/models/courseRate\";\nimport useMeCoursesService from \"@/services/useMeCoursesService\";\n\nconst { getCourseRate } = useMeCoursesService();\n\ninterface UseCourseRateRefresherReturn {\n refreshCourseRateData: (courseId: number, courses: EmployeeCourse[]) => Promise<void>;\n}\n\nexport default (): UseCourseRateRefresherReturn => {\n const refreshCourseRateData = async (courseId: number, courses: EmployeeCourse[]): Promise<void> => {\n const course = courses.find((c) => c.id === courseId);\n if (!course) {\n return;\n }\n const info: CourseRate = await getCourseRate(courseId);\n course.averageRate = info.averageRate;\n course.done = info.done;\n };\n return { refreshCourseRateData };\n};\n","<template>\n <CourseCarousel\n v-if=\"featuredCourses.length > 0\"\n :courses=\"featuredCourses\"\n data-cy=\"featured-courses\"\n :title=\"title\"\n @course-selected=\"cardClick\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, type Ref, onMounted } from \"vue\";\nimport type { EmployeeCourse } from \"@/models/course\";\nimport CourseCarousel from \"@/views/shared/learning/CourseCarousel.vue\";\nimport useMeCoursesService from \"@/services/useMeCoursesService\";\nimport type { UseEventEmitterServiceReturn } from \"@/services/useEventEmitterService\";\nimport useCourseRateRefresher from \"@/views/shared/learning/useCourseRateRefresher\";\n\ninterface Props {\n eventEmitter?: UseEventEmitterServiceReturn;\n title: string;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"courseSelected\", course: EmployeeCourse) => void>();\n\nconst { getFeaturedCourses } = useMeCoursesService();\nconst { refreshCourseRateData } = useCourseRateRefresher();\n\nconst featuredCourses: Ref<EmployeeCourse[]> = ref<EmployeeCourse[]>([]);\n\nonMounted(async () => {\n featuredCourses.value = await getFeaturedCourses();\n if (props.eventEmitter) {\n props.eventEmitter.on(\"courseSaved\", refreshCourseData);\n }\n});\nconst refreshCourseData = (courseId: number) => refreshCourseRateData(courseId, featuredCourses.value);\nconst cardClick = (course: EmployeeCourse) => emit(\"courseSelected\", course);\n</script>\n","<template>\n <div class=\"course-list-item\" data-cy=\"course-list-item\">\n <div class=\"course-list-item__image\">\n <CourseImage :course=\"course\" :list=\"true\" />\n </div>\n <div class=\"course-list-item__information\">\n <CourseCardHeader :course=\"course\" @click=\"headerClick\" />\n <CourseModeIndicator :course=\"course\" />\n <pre class=\"course-list-item__description text text--xs text--line-clamp-4 margin-t--xs\" v-html=\"toHtml(course.description)\"></pre>\n <div class=\"course-list-item__duration margin-t--auto\">\n <p class=\"text text--xs\" data-cy=\"course-duration\">\n {{ getDurationStringFromHours(course.durationHours) }}\n </p>\n <AppTag icon=\"star\" :main-text=\"!course.averageRate ? '-' : formatNumber(course.averageRate)\" type=\"like\" />\n </div>\n <div class=\"margin-t--xs\">\n <CourseGoToTrainingButton :course=\"course\" />\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport type { EmployeeCourse } from \"@/models/course\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport CourseImage from \"@/views/shared/learning/CourseImage.vue\";\nimport CourseCardHeader from \"@/views/shared/learning/CourseCardHeader.vue\";\nimport CourseModeIndicator from \"@/views/shared/learning/CourseModeIndicator.vue\";\nimport CourseGoToTrainingButton from \"@/views/shared/learning/CourseGoToTrainingButton.vue\";\nimport { getDurationStringFromHours } from \"@/utils/timeUtils\";\nimport { formatNumber } from \"@/utils/numberUtils\";\nimport { toHtml } from \"@/utils/stringUtils\";\n\ninterface Props {\n course: EmployeeCourse;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"click\", value: EmployeeCourse) => void>();\n\nconst headerClick = () => emit(\"click\", props.course);\n</script>\n<style lang=\"scss\" scoped>\n.course-list-item {\n position: relative;\n\n display: flex;\n border-radius: var(--default-border-radius);\n box-shadow: 0 8px 24px var(--color-card--box-shadow);\n\n &__information {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n padding: var(--size-s);\n }\n\n &__duration {\n display: flex;\n align-items: center;\n column-gap: var(--size-xs);\n }\n\n &__description {\n white-space: inherit;\n }\n}\n</style>\n","<template>\n <div class=\"pagination-numbers\">\n <div\n v-for=\"pageNumber in numbersToRender\"\n :key=\"pageNumber\"\n class=\"number\"\n :class=\"{ 'number--selected': indexPage === pageNumber - 1 }\"\n :data-cy=\"`page-${pageNumber}`\"\n @click=\"pageNumberClick(pageNumber)\">\n <span class=\"text--bold\">{{ pageNumber }}</span>\n <span class=\"number__underline\"></span>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport { createArray } from \"@/utils/numberUtils\";\n\ninterface Props {\n indexPage: number;\n renderNumbers: number[] | number;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"numberClick\", value: number) => void>();\n\nconst pageNumberClick = (pageNumber: number) => {\n if (pageNumber === props.indexPage + 1) {\n return;\n }\n emit(\"numberClick\", pageNumber);\n};\nconst numbersToRender = computed(() => (Array.isArray(props.renderNumbers) ? props.renderNumbers : createArray(props.renderNumbers)));\n</script>\n<style scope lang=\"scss\">\n.pagination-numbers {\n display: flex;\n flex-direction: row;\n gap: var(--size-s);\n}\n.number {\n display: flex;\n flex-direction: column;\n align-items: center;\n cursor: pointer;\n\n &__underline {\n min-width: 20px;\n width: 100%;\n height: 2px;\n }\n\n &:hover {\n color: var(--color-primary-accent1);\n }\n\n &--selected {\n color: var(--color-primary-accent1);\n\n > span:nth-child(2) {\n background-color: var(--color-primary-accent1);\n }\n\n &:hover {\n color: var(--color-neutral-600);\n\n > span:nth-child(2) {\n background-color: var(--color-neutral-600);\n }\n }\n }\n}\n</style>\n","<template>\n <div v-show=\"pages > 1\" class=\"pagination-footer\">\n <span\n class=\"pagination-footer__action icon icon-arrow-back\"\n :class=\"{ 'pagination-footer__action--disabled': currentIndexPage === 0 }\"\n data-cy=\"previous\"\n @click=\"previousPage\"></span>\n\n <div v-if=\"singleMode\" class=\"pagination-footer__numbers\">\n <PaginationPageNumbers :index-page=\"currentIndexPage\" :render-numbers=\"pages\" @number-click=\"numberClick\" />\n </div>\n <div v-else class=\"pagination-footer__numbers\">\n <PaginationPageNumbers :index-page=\"currentIndexPage\" :render-numbers=\"begin\" @number-click=\"numberClick\" />\n <span>...</span>\n <PaginationPageNumbers v-if=\"middle.length > 0\" :index-page=\"currentIndexPage\" :render-numbers=\"middle\" @number-click=\"numberClick\" />\n <span v-if=\"middle.length > 0\">...</span>\n <PaginationPageNumbers :index-page=\"currentIndexPage\" :render-numbers=\"end\" @number-click=\"numberClick\" />\n </div>\n\n <span\n class=\"pagination-footer__action icon icon-arrow-forward\"\n :class=\"{ 'pagination-footer__action--disabled': currentIndexPage >= pages - 1 }\"\n data-cy=\"next\"\n @click=\"nextPage\"></span>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, onMounted, ref } from \"vue\";\nimport PaginationPageNumbers from \"@/components/paginator/PaginationPageNumbers.vue\";\nimport type { UseEventEmitterServiceReturn } from \"@/services/useEventEmitterService\";\n\ninterface Props {\n numberOfItems: number;\n eventEmitter: UseEventEmitterServiceReturn;\n pageSize?: number;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"pageClick\", value: number) => void>();\n\nconst defaultPageSize = 10;\n// display group number like <- 1 2 3 4 ... 5 6 7 ... 8 ->\n// or like <- 1 2 3 ... 5 6 ... 8 ->\nconst displayGroupsOf = 3;\n// less than this, paginator will be displayed in single mode like <- 1 2 3 4 ->\nconst defaultSingleLineSizePages = displayGroupsOf + 2;\n\nconst currentPageSize = props.pageSize ?? defaultPageSize;\nconst currentIndexPage = ref<number>(0);\n\nconst pages = computed(() => Math.ceil(props.numberOfItems / currentPageSize));\nconst singleMode = computed(() => pages.value < defaultSingleLineSizePages);\n\n// groups of pages <- 1 2 3 4 ... 5 6 7 ... 8 ->\n// groups of pages <- [begin] ... [middle] ... [end] ->\nconst begin = ref<number[]>([]);\nconst middle = ref<number[]>([]);\nconst end = ref<number[]>([]);\n\nconst nextPage = () => {\n if (currentIndexPage.value < pages.value - 1) {\n currentIndexPage.value += 1;\n emit(\"pageClick\", currentIndexPage.value);\n updatePageNumbers();\n }\n};\nconst previousPage = () => {\n if (currentIndexPage.value > 0) {\n currentIndexPage.value -= 1;\n emit(\"pageClick\", currentIndexPage.value);\n updatePageNumbers();\n }\n};\nconst numberClick = (pageNumber: number) => {\n if (pageNumber === currentIndexPage.value + 1) {\n return;\n }\n currentIndexPage.value = pageNumber - 1;\n emit(\"pageClick\", currentIndexPage.value);\n updatePageNumbers();\n};\n\nconst updatePageNumbers = () => {\n if (currentIndexPage.value < displayGroupsOf) {\n const group = Array.from({ length: displayGroupsOf + 1 }, (_x, i) => i + 1);\n begin.value = group;\n middle.value = [];\n end.value = [pages.value];\n return;\n }\n if (currentIndexPage.value + 1 > pages.value - displayGroupsOf) {\n const group = Array.from({ length: displayGroupsOf + 1 }, (_x, i) => i + pages.value - displayGroupsOf);\n begin.value = [1];\n middle.value = [];\n end.value = group;\n return;\n }\n const group = Array.from({ length: displayGroupsOf }, (_x, i) => i + currentIndexPage.value + 1);\n begin.value = [1];\n middle.value = group;\n end.value = [pages.value];\n};\n\nconst sourceChanged = () => {\n currentIndexPage.value = 0;\n updatePageNumbers();\n};\n\nonMounted(() => {\n props.eventEmitter.on(\"sourceChanged\", sourceChanged);\n updatePageNumbers();\n});\n</script>\n<style scope lang=\"scss\">\n.pagination-footer {\n align-self: center;\n display: flex;\n align-items: center;\n row-gap: var(--size-l);\n\n &__action {\n border-radius: 50%;\n height: var(--size-xl);\n width: var(--size-xl);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--size-m);\n cursor: pointer;\n color: var(--color-button-secondary-text);\n background-color: rgba(0, 0, 0, 0);\n border: 1px solid var(--color-button-secondary-text);\n\n &:focus-visible {\n background-color: var(color-button-secondary--pressed);\n }\n\n &:hover {\n background-color: var(--color-button-secondary--hover);\n }\n\n &:active {\n background-color: var(--color-button-secondary--pressed);\n }\n\n &--disabled {\n color: var(--color-button-secondary-text--disabled);\n border-color: var(--color-button-secondary-text--disabled);\n\n &:hover {\n background-color: rgba(0, 0, 0, 0);\n }\n }\n }\n\n &__numbers {\n display: flex;\n flex-direction: row;\n padding: 0 var(--size-s) 0 var(--size-s);\n gap: var(--size-s);\n }\n}\n</style>\n","<template>\n <div class=\"course-list\">\n <CourseListItem v-for=\"course in courses.items\" :key=\"course.id\" :course=\"course\" @click=\"selectCourse\" />\n <PaginationFooter :number-of-items=\"courses.total\" :event-emitter=\"eventEmitter\" @page-click=\"pageClick\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport type { EmployeeCourse, EmployeeCourseList } from \"@/models/course\";\nimport type { UseEventEmitterServiceReturn } from \"@/services/useEventEmitterService\";\nimport CourseListItem from \"@/views/shared/learning/CourseListItem.vue\";\nimport PaginationFooter from \"@/components/paginator/PaginationFooter.vue\";\n\ninterface Props {\n courses: EmployeeCourseList;\n eventEmitter: UseEventEmitterServiceReturn;\n}\n\ndefineProps<Props>();\n\ninterface Emits {\n (e: \"courseSelected\", course: EmployeeCourse): void;\n (e: \"updateList\", pageNumber: number): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst selectCourse = (course: EmployeeCourse) => emit(\"courseSelected\", course);\nconst pageClick = (value: number) => emit(\"updateList\", value);\n</script>\n\n<style scope lang=\"scss\">\n.course-list {\n display: flex;\n flex-direction: column;\n gap: var(--size-s);\n padding-top: var(--size-s);\n}\n</style>\n","<template>\n <div class=\"course-grid\">\n <div class=\"grid--four-columns@large grid--three-columns@medium grid--one-column\">\n <CourseCard\n v-for=\"course in courses.items\"\n :key=\"course.id\"\n :course=\"course\"\n :show-admin-options=\"true\"\n :no-editable=\"true\"\n :assign-mode=\"true\"\n @click=\"selectCourse\" />\n </div>\n <PaginationFooter :number-of-items=\"courses.total\" :event-emitter=\"eventEmitter\" @page-click=\"pageClick\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport PaginationFooter from \"@/components/paginator/PaginationFooter.vue\";\nimport CourseCard from \"@/views/shared/learning/CourseCard.vue\";\nimport type { UseEventEmitterServiceReturn } from \"@/services/useEventEmitterService\";\nimport type { CourseBase, CourseBaseList } from \"@/models/course\";\n\ninterface Props {\n courses: CourseBaseList;\n eventEmitter: UseEventEmitterServiceReturn;\n}\ndefineProps<Props>();\n\ninterface Emits {\n (e: \"courseSelected\", course: CourseBase): void;\n (e: \"updateList\", pageNumber: number): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst selectCourse = (course: CourseBase) => emit(\"courseSelected\", course);\nconst pageClick = (value: number) => emit(\"updateList\", value);\n</script>\n\n<style scope lang=\"scss\">\n.course-grid {\n display: flex;\n flex-direction: column;\n gap: var(--size-s);\n padding-top: var(--size-s);\n}\n</style>\n","<template>\n <h3 data-cy=\"results-indicator\" class=\"margin-t--m\" :class=\"{ error: !resultCount }\">{{ resultText }}</h3>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport i18n from \"@/i18n\";\n\ninterface Props {\n resultCount: number;\n searchTerm: string;\n}\nconst props = defineProps<Props>();\n\nconst resultText = computed(() => i18n.global.t(\"shared.resultsFor\", { n: props.resultCount, name: props.searchTerm }));\n</script>\n","<template>\n <div class=\"courses-list-searcher\">\n <div class=\"input-search\" data-cy=\"input-search\">\n <AppGenericFilter :placeholder=\"placeholder || $t('pages.learning.search')\" @filter-changed=\"searchTermChanged\" />\n <div v-if=\"!adminMode\" class=\"input-search__private margin-l--s\">\n <span class=\"icon-eye-off text--xl margin-r--xs\"></span>\n <span>{{ $t(\"pages.learning.search.no_copy\") }}</span>\n </div>\n </div>\n <CoursesListSearcherResultsIndicator v-if=\"displaySearchResults\" :search-term=\"searchTermUsed\" :result-count=\"searchedCourses.total\" />\n <AppTableFilters v-show=\"displaySearchResults\" v-model=\"filters\" @update:model-value=\"newSearch\" />\n <transition name=\"fade\">\n <template v-if=\"adminMode\">\n <CourseGrid\n v-if=\"searchTerm && searchedCourses.items.length\"\n :courses=\"searchedCourses\"\n :event-emitter=\"eventEmitter\"\n data-cy=\"searched-grid-courses\"\n @course-selected=\"cardClick\"\n @update-list=\"(pageNumber: number) => search(pageNumber)\" />\n </template>\n <template v-else>\n <CourseList\n v-if=\"searchTerm && searchedCourses.items.length\"\n :courses=\"searchedCourses\"\n :event-emitter=\"eventEmitter\"\n data-cy=\"searched-list-courses\"\n @course-selected=\"cardClick\"\n @update-list=\"(pageNumber: number) => search(pageNumber)\" />\n </template>\n </transition>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, type Ref, computed } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppGenericFilter from \"@/components/AppGenericFilter.vue\";\nimport AppTableFilters from \"@/components/table/AppTableFilters.vue\";\nimport CourseList from \"@/views/shared/learning/CourseList.vue\";\nimport CourseGrid from \"@/views/shared/learning/CourseGrid.vue\";\nimport CoursesListSearcherResultsIndicator from \"@/views/app/my-learning/components/CoursesListSearcherResultsIndicator.vue\";\nimport type { Filter } from \"@/components/table/TableFilter\";\nimport type { UseEventEmitterServiceReturn } from \"@/services/useEventEmitterService\";\nimport useCourseRateRefresher from \"@/views/shared/learning/useCourseRateRefresher\";\nimport useMeCoursesService from \"@/services/useMeCoursesService\";\nimport useTableHelper from \"@/components/table/useTableHelper\";\nimport { CourseType, type CourseBase, type EmployeeCourse, type EmployeeCourseList } from \"@/models/course\";\nimport { isBlank } from \"@/utils/stringUtils\";\n\ninterface Props {\n eventEmitter: UseEventEmitterServiceReturn;\n adminMode?: boolean;\n placeholder?: string;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"courseSelected\", course: CourseBase): void;\n (e: \"sourceChanged\"): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst { refreshCourseRateData } = useCourseRateRefresher();\nconst { searchCourses } = useMeCoursesService();\nconst { getTypeFilter } = useTableHelper();\n\nconst emptyResponse = {\n count: 0,\n total: 0,\n pageIndex: 0,\n items: [],\n};\nconst searchedCourses: Ref<EmployeeCourseList> = ref<EmployeeCourseList>(emptyResponse);\n\nconst searchTerm: Ref<string> = ref<string>(\"\");\nconst searchTermUsed: Ref<string> = ref<string>(\"\");\nconst searchCompleted: Ref<boolean> = ref<boolean>(false);\nconst displaySearchResults = computed(() => searchTerm.value && searchCompleted.value);\n\nconst filters: Ref<Filter<EmployeeCourse>[]> = ref<Filter<EmployeeCourse>[]>([\n getTypeFilter<EmployeeCourse>(\n \"courseType\",\n i18n.global.t(\"pages.learning.filter.type.title\"),\n \"pages.learning.filter.type\",\n Object.keys(CourseType)\n ),\n]);\n\nconst getCourseTypeSelected = () => {\n const selectedOption = filters.value[0].selectedOption;\n return selectedOption in CourseType ? (selectedOption as CourseType) : undefined;\n};\n\nconst searchTermChanged = async (newSearchTerm: string) => {\n searchTerm.value = newSearchTerm;\n await newSearch();\n searchTermUsed.value = searchTerm.value;\n};\nconst newSearch = async () => {\n if (isBlank(searchTerm.value)) {\n searchedCourses.value = emptyResponse;\n searchCompleted.value = false;\n return;\n }\n await search();\n await props.eventEmitter.trigger(\"sourceChanged\", {});\n searchCompleted.value = true;\n};\n\nconst search = async (pageIndex = 0) => {\n if (isBlank(searchTerm.value)) {\n return;\n }\n searchedCourses.value = await searchCourses(searchTerm.value, pageIndex, getCourseTypeSelected());\n};\n\nconst cardClick = (course: CourseBase) => emit(\"courseSelected\", course);\n\nconst refreshCourseData = (courseId: number) => refreshCourseRateData(courseId, searchedCourses.value.items);\n\nonMounted(() => {\n if (props.eventEmitter) {\n props.eventEmitter.on(\"courseSaved\", refreshCourseData);\n props.eventEmitter.on(\"courseEdited\", search);\n }\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n.input-search {\n display: flex;\n\n > div {\n flex-grow: 1;\n }\n\n &__private {\n display: flex;\n align-items: center;\n\n color: var(--color-body-tertiary);\n }\n\n @media only screen and (max-width: $medium-screen-breakpoint) {\n flex-direction: column;\n }\n}\n.error {\n color: var(--color-body-error);\n}\n</style>\n","export interface UseEventEmitterServiceReturn {\n on: <T>(eventName: string, fn: (arg: T) => void | Promise<void>) => void;\n off: <T>(eventName: string, fn: (arg: T) => void | Promise<void>) => void;\n trigger: <T>(eventName: string, arg: T) => Promise<void>;\n}\n\ntype genericHandler = (arg: unknown) => void | Promise<void>;\n\nexport default (): UseEventEmitterServiceReturn => {\n const events = new Map<string, genericHandler[]>();\n\n const on = <T>(eventName: string, fn: (arg: T) => void): void => {\n if (!events.has(eventName)) {\n events.set(eventName, []);\n }\n events.get(eventName)?.push(fn as genericHandler);\n };\n const off = <T>(eventName: string, fn: (arg: T) => void) => {\n if (!events.has(eventName)) {\n return;\n }\n const eventHandlers = events.get(eventName);\n const handlerIndex = eventHandlers?.findIndex(fn as genericHandler);\n if (handlerIndex !== undefined && handlerIndex >= 0) {\n eventHandlers?.splice(handlerIndex, 1);\n }\n };\n const trigger = async <T>(eventName: string, arg: T) => {\n if (!events.has(eventName)) {\n return;\n }\n const handlers = events.get(eventName);\n if (!handlers) {\n return;\n }\n const promises = handlers.map((handler) => handler(arg));\n\n await Promise.resolve(promises);\n };\n return { on, off, trigger };\n};\n","<template>\n <LayoutPage :title=\"$t('pages.learning.title')\">\n <MyLearningNavigation class=\"margin-b--m\" current=\"Learning\" />\n <AppTip unique-name=\"app-learning\" :content=\"$t('pages.learning.tip.content')\" />\n <div class=\"learning-view\">\n <CoursesListSearcher :event-emitter=\"eventEmitter\" @course-selected=\"cardClick\" />\n <CoursesFeatured :title=\"$t('pages.learning.featured.title')\" :event-emitter=\"eventEmitter\" @course-selected=\"cardClick\" />\n </div>\n <CourseDetails\n v-if=\"selectedCourse\"\n :course=\"selectedCourse\"\n :allow-edit=\"true\"\n @saved=\"saveHandler\"\n @closed=\"selectedCourse = undefined\" />\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport MyLearningNavigation from \"@/views/app/my-learning/components/shared/MyLearningNavigation.vue\";\nimport { ref } from \"vue\";\nimport type { CourseBase } from \"@/models/course\";\nimport CourseDetails from \"@/views/shared/learning/CourseDetails.vue\";\nimport AppTip from \"@/components/AppTip.vue\";\nimport CoursesFeatured from \"@/views/shared/learning/CoursesFeatured.vue\";\nimport CoursesListSearcher from \"@/views/app/my-learning/components/CoursesListSearcher.vue\";\nimport useEventEmitterService from \"@/services/useEventEmitterService\";\n\nconst eventEmitter = useEventEmitterService();\nconst selectedCourse = ref<CourseBase | undefined>();\n\nconst cardClick = (course: CourseBase) => (selectedCourse.value = course);\nconst saveHandler = (courseId: number) => eventEmitter.trigger(\"courseSaved\", courseId);\n</script>\n<style lang=\"scss\" scoped>\n.learning-view {\n display: flex;\n flex-direction: column;\n gap: var(--size-l);\n}\n</style>\n","<template>\n <div class=\"learning-path__header\" :class=\"headerTypeClass\" :data-cy=\"`header-${area}`\">\n <span class=\"icon text text--xxl\" :class=\"`icon-${icon}`\"></span>\n <span class=\"text text--xl text--bold\">{{ $t(`pages.learning.my_learning_path.areas.${area}`) }}</span>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { LearningPathCourseArea } from \"@/views/app/my-learning/components/learning-path/learningPathModels\";\n\ninterface Props {\n area: LearningPathCourseArea;\n icon: string;\n}\nconst props = defineProps<Props>();\n\nconst headerTypeClass = computed(() => `learning-path__header--${props.area}`);\nconst gridArea = computed(() => `header-${props.area}`);\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n@import \"@/styles/theme\";\n\n.learning-path {\n &__header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: var(--space-m);\n grid-area: v-bind(gridArea);\n }\n}\n\n@media only screen and (max-width: $big-screen-breakpoint) {\n .learning-path {\n &__header {\n align-items: center;\n border-top: 1px solid $color-border;\n\n &:first-child {\n border: 0;\n }\n }\n }\n}\n@media only screen and (max-width: $medium-screen-breakpoint) {\n .learning-path {\n &__header {\n text-align: center;\n }\n }\n}\n</style>\n","<template>\n <div class=\"learning-path__level\" :class=\"levelClass\" :data-cy=\"`level-${area}-${level}`\">\n <span class=\"text text--xl text--bold\"> {{ $t(textKey) }} </span>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { LearningPathCourseArea, LearningPathCourseLevel } from \"@/views/app/my-learning/components/learning-path/learningPathModels\";\n\ninterface Props {\n level: LearningPathCourseLevel;\n area: LearningPathCourseArea;\n onlySmallScreen?: boolean;\n striped?: boolean;\n}\nconst props = defineProps<Props>();\n\nconst gridArea = computed(() => `level-${props.area}-${props.level}`);\nconst textKey = computed(() =>\n props.level === \"additional\"\n ? \"pages.learning.my_learning_path.additional_learning\"\n : `pages.learning.my_learning_path.levels.${props.level}`\n);\nconst levelClass = computed(() => ({\n [`learning-path__level--only-small-screen`]: props.onlySmallScreen,\n [`learning-path__level--striped`]: props.striped,\n}));\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n@import \"@/styles/theme\";\n\n$stripeColor: $color-system-info-4;\n$borderColor: $color-border;\n\n.learning-path {\n &__level {\n grid-area: v-bind(gridArea);\n\n padding: var(--space-m);\n\n &--only-small-screen {\n display: none;\n }\n &--additional {\n background-color: $color-neutral-100;\n }\n &--striped {\n background-color: $stripeColor;\n border-top: 1px solid $borderColor;\n border-bottom: 1px solid $borderColor;\n }\n }\n}\n\n@media only screen and (max-width: $big-screen-breakpoint) {\n .learning-path {\n &__level {\n &--only-small-screen {\n display: block;\n }\n }\n }\n}\n\n@media only screen and (max-width: $medium-screen-breakpoint) {\n .learning-path {\n &__level {\n border-bottom: none;\n text-align: center;\n }\n }\n}\n</style>\n","<template>\n <div class=\"course\">\n <div class=\"course__title\">\n <span class=\"text text--bold text--link\">{{ course.title }}</span>\n <div\n class=\"course__card\"\n :class=\"{\n 'course__card--downward': informationDirection === 'desc',\n 'course__card--upward': informationDirection === 'asc',\n }\">\n <CourseCard :course=\"course\" @click=\"selectCourse\" />\n </div>\n </div>\n <div class=\"course__information\">\n <span>{{ getDurationStringFromHours(course.durationHours) }}</span>\n <AppTag icon=\"star\" :main-text=\"!course.averageRate ? '-' : formatNumber(course.averageRate)\" type=\"like\" />\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport AppTag from \"@/components/AppTag.vue\";\nimport CourseCard from \"@/views/shared/learning/CourseCard.vue\";\nimport { formatNumber } from \"@/utils/numberUtils\";\nimport { getDurationStringFromHours } from \"@/utils/timeUtils\";\nimport type { EmployeeCourse } from \"@/models/course\";\n\ninterface Props {\n course: EmployeeCourse;\n informationDirection?: \"asc\" | \"desc\";\n}\nconst props = withDefaults(defineProps<Props>(), { informationDirection: \"desc\" });\n\nconst emit = defineEmits<(e: \"course-selected\", course: EmployeeCourse) => void>();\n\nconst selectCourse = () => emit(\"course-selected\", props.course);\n</script>\n\n<style lang=\"scss\" scoped>\n.course {\n display: flex;\n flex-direction: column;\n position: relative;\n gap: var(--space-s);\n\n &__card {\n position: absolute;\n\n width: 40rem;\n z-index: var(--z-index-floating-panel);\n display: none;\n\n &--downward {\n top: 1rem;\n left: 1rem;\n }\n\n &--upward {\n bottom: 1rem;\n left: 1rem;\n }\n }\n\n &__title:hover .course__card {\n display: block;\n }\n\n &__information {\n display: flex;\n flex-direction: row;\n gap: var(--space-s);\n }\n}\n</style>\n","<template>\n <div>\n <AppNoContentYet v-if=\"courses.length === 0\" :text=\"$t('pages.learning.my_learning_path.no_suggestions')\" />\n <ul v-else class=\"courses\">\n <li v-for=\"course in courses\" :key=\"course.id\" class=\"courses__item\">\n <MyLearningPathCourse :course=\"course\" :information-direction=\"courseInformationDirection\" @course-selected=\"selectCourse\" />\n </li>\n </ul>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport MyLearningPathCourse from \"@/views/app/my-learning/components/MyLearningPathCourse.vue\";\nimport type { EmployeeCourse } from \"@/models/course\";\n\ninterface Props {\n courses: EmployeeCourse[];\n courseInformationDirection: \"asc\" | \"desc\";\n}\n\nconst emit = defineEmits<(e: \"course-selected\", course: EmployeeCourse) => void>();\n\nconst selectCourse = (course: EmployeeCourse) => emit(\"course-selected\", course);\n\ndefineProps<Props>();\n</script>\n\n<style lang=\"scss\" scoped>\n.courses {\n &__item {\n border-bottom: 1px solid #dcdcdc;\n padding: var(--space-s) 0 var(--space-s) 0;\n\n &:first-child {\n padding-top: 0;\n }\n &:last-child {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n}\n</style>\n","<template>\n <div>\n <AppNoContentYet v-if=\"courses.length === 0\" :text=\"$t('pages.learning.my_learning_path.no_suggestions')\" />\n <div v-else class=\"courses-carousel\">\n <div class=\"courses-carousel__container\">\n <div v-for=\"(course, index) in courses\" :key=\"course.id\" class=\"courses-carousel__item\">\n <MyLearningPathCourse\n v-if=\"index + 1 === currentPage\"\n :course=\"course\"\n :information-direction=\"courseInformationDirection\"\n @course-selected=\"emit('course-selected', course)\" />\n </div>\n </div>\n <div class=\"navigation\">\n <AppIconOnlyButton\n v-if=\"courses.length > 1\"\n class=\"navigation__button\"\n :disabled=\"currentPage === 1\"\n size=\"xxl\"\n icon=\"arrow-back\"\n data-cy=\"back\"\n @click=\"previousPage\" />\n <AppIconOnlyButton\n v-if=\"courses.length > 1\"\n class=\"navigation__button\"\n :disabled=\"currentPage === courses.length\"\n size=\"xxl\"\n icon=\"arrow-forward\"\n data-cy=\"next\"\n @click=\"nextPage\" />\n </div>\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport AppIconOnlyButton from \"@/components/AppIconOnlyButton.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport type { EmployeeCourse } from \"@/models/course\";\nimport MyLearningPathCourse from \"@/views/app/my-learning/components/MyLearningPathCourse.vue\";\nimport { ref, type Ref } from \"vue\";\n\ninterface Props {\n courses: EmployeeCourse[];\n courseInformationDirection: \"asc\" | \"desc\";\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"course-selected\", course: EmployeeCourse) => void>();\n\nconst currentPage: Ref<number> = ref(1);\n\nconst previousPage = () => {\n if (currentPage.value === 1) {\n return;\n }\n currentPage.value--;\n};\n\nconst nextPage = () => {\n if (currentPage.value === props.courses.length) {\n return;\n }\n currentPage.value++;\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.courses-carousel {\n &__item {\n width: 100%;\n }\n}\n\n.navigation {\n display: flex;\n gap: var(--space-m);\n margin-top: var(--space-xs);\n\n &__button {\n border: 1px solid var(--color-primary-accent1);\n border-radius: 50% 50%;\n width: var(--space-l);\n height: var(--space-l);\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover {\n filter: brightness(50%);\n }\n }\n}\n</style>\n","<template>\n <div class=\"learning-path__content\" :class=\"contentClass\" :data-cy=\"`level-content-${area}-${level}`\">\n <MyLearningPathCourseList\n v-if=\"level !== 'additional'\"\n :courses=\"courses\"\n :course-information-direction=\"coursesOrder\"\n @course-selected=\"selectCourse\" />\n <MyLearningPathCourseCarouselList\n v-else\n :courses=\"courses\"\n :course-information-direction=\"coursesOrder\"\n @course-selected=\"selectCourse\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport MyLearningPathCourseList from \"@/views/app/my-learning/components/MyLearningPathCourseList.vue\";\nimport MyLearningPathCourseCarouselList from \"@/views/app/my-learning/components/MyLearningPathCourseCarouselList.vue\";\nimport { EmployeeCourse } from \"@/models/course\";\nimport { LearningPathCourseArea, LearningPathCourseLevel } from \"@/views/app/my-learning/components/learning-path/learningPathModels\";\n\ninterface Props {\n level: LearningPathCourseLevel;\n area: LearningPathCourseArea;\n courses: EmployeeCourse[];\n striped?: boolean;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"course-selected\", course: EmployeeCourse) => void>();\n\nconst coursesOrder = computed<\"asc\" | \"desc\">(() => (props.level === \"beginner\" ? \"desc\" : \"asc\"));\nconst gridArea = computed(() => `content-${props.area}-${props.level}`);\nconst contentClass = computed(() => ({\n [`learning-path__content--striped`]: props.striped,\n}));\nconst selectCourse = (course: EmployeeCourse) => emit(\"course-selected\", course);\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n@import \"@/styles/theme\";\n\n$stripeColor: $color-system-info-4;\n$borderColor: $color-border;\n\n.learning-path {\n &__content {\n grid-area: v-bind(gridArea);\n padding: var(--space-m);\n &--striped {\n background-color: $stripeColor;\n border-top: 1px solid $borderColor;\n border-bottom: 1px solid $borderColor;\n }\n }\n}\n\n@media only screen and (max-width: $medium-screen-breakpoint) {\n .learning-path {\n &__content {\n border-top: none;\n }\n }\n}\n</style>\n","<template>\n <div class=\"margin-t--m margin-b--m\">\n <AppPanel :dark=\"true\" :border=\"false\">\n <AppToggle\n v-model=\"recalculate\"\n :text=\"$t('pages.learning.my_learning_path.recalculate.title')\"\n data-cy=\"learning-path-recalculate\"\n @update:model-value=\"update\" />\n </AppPanel>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { ref, onBeforeMount } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport AppToggle from \"@/components/AppToggle.vue\";\nimport useToaster from \"@/components/toaster/useToaster\";\nimport useMeService from \"@/services/useMeService\";\nimport useAuthenticationService from \"@/services/useAuthenticationService\";\n\nconst { openToaster } = useToaster();\nconst { updateCalculateLearningPath } = useMeService();\nconst { getUser } = useAuthenticationService();\n\nconst recalculate = ref<boolean>(false);\n\nconst update = async () => {\n await updateCalculateLearningPath(recalculate.value);\n if (recalculate.value) {\n openToaster(\"success\", i18n.global.t(\"pages.learning.my_learning_path.recalculate.activate_explanation\"));\n }\n};\n\nonBeforeMount(async () => {\n const user = await getUser();\n recalculate.value = user?.calculateLearningPath ?? false;\n});\n</script>\n","<template>\n <div>\n <h3 class=\"margin-v--l\">{{ $t(\"pages.learning.my_learning_path.introduction.title\") }}</h3>\n <p class=\"margin-b--l\">{{ $t(\"pages.learning.my_learning_path.introduction.explanation\") }}</p>\n\n <MyLearningPathRecalculateToggle />\n\n <div v-if=\"learningPath\" class=\"learning-path\">\n <MyLearningPathContentHeader area=\"skills\" icon=\"skill\" />\n <MyLearningPathContentHeader area=\"languages\" icon=\"language\" />\n <MyLearningPathContentHeader area=\"financial\" icon=\"financial\" />\n\n <!-- BEGINNER -->\n\n <MyLearningPathContentLevel area=\"skills\" level=\"beginner\" :striped=\"true\" />\n <MyLearningPathContentLevel area=\"languages\" level=\"beginner\" :striped=\"true\" :only-small-screen=\"true\" />\n <MyLearningPathContentLevel area=\"financial\" level=\"beginner\" :striped=\"true\" :only-small-screen=\"true\" />\n\n <MyLearningPathCourseListContainer\n area=\"skills\"\n level=\"beginner\"\n :striped=\"true\"\n :courses=\"learningPath.recommendations.skills.beginner\"\n @course-selected=\"selectCourse\" />\n <MyLearningPathCourseListContainer\n area=\"languages\"\n level=\"beginner\"\n :striped=\"true\"\n :courses=\"learningPath.recommendations.languages.beginner\"\n @course-selected=\"selectCourse\" />\n <MyLearningPathCourseListContainer\n area=\"financial\"\n level=\"beginner\"\n :striped=\"true\"\n :courses=\"learningPath.recommendations.financial.beginner\"\n @course-selected=\"selectCourse\" />\n\n <!-- ADVANCED -->\n\n <MyLearningPathContentLevel area=\"skills\" level=\"advanced\" />\n <MyLearningPathContentLevel area=\"languages\" level=\"advanced\" :only-small-screen=\"true\" />\n <MyLearningPathContentLevel area=\"financial\" level=\"advanced\" :only-small-screen=\"true\" />\n\n <MyLearningPathCourseListContainer\n area=\"skills\"\n level=\"advanced\"\n :courses=\"learningPath.recommendations.skills.advanced\"\n @course-selected=\"selectCourse\" />\n <MyLearningPathCourseListContainer\n area=\"languages\"\n level=\"advanced\"\n :courses=\"learningPath.recommendations.languages.advanced\"\n @course-selected=\"selectCourse\" />\n <MyLearningPathCourseListContainer\n area=\"financial\"\n level=\"advanced\"\n :courses=\"learningPath.recommendations.financial.advanced\"\n @course-selected=\"selectCourse\" />\n\n <!-- EXPERT -->\n\n <MyLearningPathContentLevel area=\"skills\" level=\"expert\" :striped=\"true\" />\n <MyLearningPathContentLevel area=\"languages\" level=\"expert\" :striped=\"true\" :only-small-screen=\"true\" />\n <MyLearningPathContentLevel area=\"financial\" level=\"expert\" :striped=\"true\" :only-small-screen=\"true\" />\n <MyLearningPathCourseListContainer\n area=\"skills\"\n level=\"expert\"\n :striped=\"true\"\n :courses=\"learningPath.recommendations.skills.expert\"\n @course-selected=\"selectCourse\" />\n <MyLearningPathCourseListContainer\n area=\"languages\"\n level=\"expert\"\n :striped=\"true\"\n :courses=\"learningPath.recommendations.languages.expert\"\n @course-selected=\"selectCourse\" />\n <MyLearningPathCourseListContainer\n area=\"financial\"\n level=\"expert\"\n :striped=\"true\"\n :courses=\"learningPath.recommendations.financial.expert\"\n @course-selected=\"selectCourse\" />\n\n <!-- ADDITIONAL -->\n\n <MyLearningPathContentLevel area=\"skills\" level=\"additional\" />\n <MyLearningPathContentLevel area=\"languages\" level=\"additional\" :only-small-screen=\"true\" />\n <MyLearningPathContentLevel area=\"financial\" level=\"additional\" :only-small-screen=\"true\" />\n\n <MyLearningPathCourseListContainer\n area=\"skills\"\n level=\"additional\"\n :courses=\"learningPath.additionalRecommendations.skills\"\n @course-selected=\"selectCourse\" />\n <MyLearningPathCourseListContainer\n area=\"languages\"\n level=\"additional\"\n :courses=\"learningPath.additionalRecommendations.languages\"\n @course-selected=\"selectCourse\" />\n <MyLearningPathCourseListContainer\n area=\"financial\"\n level=\"additional\"\n :courses=\"learningPath.additionalRecommendations.financial\"\n @course-selected=\"selectCourse\" />\n </div>\n <CourseDetails v-if=\"selectedCourse\" :course=\"selectedCourse\" :allow-edit=\"true\" @saved=\"load\" @closed=\"selectedCourse = undefined\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport CourseDetails from \"@/views/shared/learning/CourseDetails.vue\";\nimport MyLearningPathContentHeader from \"@/views/app/my-learning/components/learning-path/MyLearningPathContentHeader.vue\";\nimport MyLearningPathContentLevel from \"@/views/app/my-learning/components/learning-path/MyLearningPathContentLevel.vue\";\nimport MyLearningPathCourseListContainer from \"@/views/app/my-learning/components/learning-path/MyLearningPathCourseListContainer.vue\";\nimport MyLearningPathRecalculateToggle from \"@/views/app/my-learning/components/learning-path/MyLearningPathRecalculateToggle.vue\";\nimport type { LearningPath } from \"@/models/learningPath\";\nimport useMeCoursesService from \"@/services/useMeCoursesService\";\nimport type { EmployeeCourse } from \"@/models/course\";\n\nconst { getEmployeeLearningPath } = useMeCoursesService();\n\nconst learningPath = ref<LearningPath>();\nconst selectedCourse = ref<EmployeeCourse>();\n\nonMounted(() => load());\n\nconst load = async () => (learningPath.value = await getEmployeeLearningPath());\n\nconst selectCourse = (course: EmployeeCourse) => (selectedCourse.value = course);\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n@import \"@/styles/theme\";\n\n$borderColor: $color-border;\n\n.learning-path {\n display: grid;\n grid-template-columns: 20rem 1fr 1fr 1fr;\n grid-template-areas:\n \". header-skills header-languages header-financial \"\n \"level-skills-beginner content-skills-beginner content-languages-beginner content-financial-beginner \"\n \"level-skills-advanced content-skills-advanced content-languages-advanced content-financial-advanced \"\n \"level-skills-expert content-skills-expert content-languages-expert content-financial-expert \"\n \"level-skills-additional content-skills-additional content-languages-additional content-financial-additional\";\n border: 1px solid $borderColor;\n border-radius: var(--size--xs);\n}\n\n@media only screen and (max-width: $big-screen-breakpoint) {\n .learning-path {\n display: grid;\n grid-template-columns: 25rem 1fr;\n grid-template-areas:\n \"header-skills header-skills \"\n \"level-skills-beginner content-skills-beginner \"\n \"level-skills-advanced content-skills-advanced \"\n \"level-skills-expert content-skills-expert \"\n \"level-skills-additional content-skills-additional \"\n \"header-languages header-languages \"\n \"level-languages-beginner content-languages-beginner \"\n \"level-languages-advanced content-languages-advanced \"\n \"level-languages-expert content-languages-expert \"\n \"level-languages-additional content-languages-additional\"\n \"header-financial header-financial \"\n \"level-financial-beginner content-financial-beginner \"\n \"level-financial-advanced content-financial-advanced \"\n \"level-financial-expert content-financial-expert \"\n \"level-financial-additional content-financial-additional\";\n }\n}\n@media only screen and (max-width: $medium-screen-breakpoint) {\n .learning-path {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-areas:\n \"header-skills\"\n \"level-skills-beginner\"\n \"content-skills-beginner\"\n \"level-skills-advanced\"\n \"content-skills-advanced\"\n \"level-skills-expert\"\n \"content-skills-expert\"\n \"level-skills-additional\"\n \"content-skills-additional\"\n \"header-languages\"\n \"level-languages-beginner\"\n \"content-languages-beginner\"\n \"level-languages-advanced\"\n \"content-languages-advanced\"\n \"level-languages-expert\"\n \"content-languages-expert\"\n \"level-languages-additional\"\n \"content-languages-additional\"\n \"header-financial\"\n \"level-financial-beginner\"\n \"content-financial-beginner\"\n \"level-financial-advanced\"\n \"content-financial-advanced\"\n \"level-financial-expert\"\n \"content-financial-expert\"\n \"level-financial-additional\"\n \"content-financial-additional\";\n }\n}\n</style>\n","<template>\n <div>\n <h3 class=\"margin-t--l\">{{ $t(\"pages.learning.my_training.title\") }}</h3>\n <CourseCarousel v-if=\"courses.length\" :courses=\"courses\" data-cy=\"training-courses\" @course-selected=\"cardClick\" />\n <AppNoContentYet v-else class=\"margin-t--m\" data-cy=\"no-training\" :text=\"$t('pages.learning.my_training.no_completed')\" />\n <CourseDetails\n v-if=\"selectedCourse\"\n :course=\"selectedCourse\"\n :allow-edit=\"true\"\n @saved=\"loadCourses\"\n @closed=\"selectedCourse = undefined\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport CourseCarousel from \"@/views/shared/learning/CourseCarousel.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport CourseDetails from \"@/views/shared/learning/CourseDetails.vue\";\nimport useMeCoursesService from \"@/services/useMeCoursesService\";\nimport { onMounted, ref, type Ref } from \"vue\";\nimport type { EmployeeCourse } from \"@/models/course\";\n\nconst { getAlreadyDoneCourses } = useMeCoursesService();\nconst courses: Ref<EmployeeCourse[]> = ref<EmployeeCourse[]>([]);\n\nconst selectedCourse: Ref<EmployeeCourse | undefined> = ref<EmployeeCourse | undefined>();\n\nconst cardClick = (course: EmployeeCourse): void => {\n selectedCourse.value = course;\n};\n\nconst loadCourses = async () => {\n courses.value = await getAlreadyDoneCourses();\n};\n\nonMounted(() => loadCourses());\n</script>\n","import type { IdealJob } from \"@/models/idealJob\";\n\nexport const emptyIdealJob = (): IdealJob => {\n return { title: \"\", description: \"\", skills: [] };\n};\n","<template>\n <div v-if=\"idealJob\">\n <AppTip unique-name=\"app-my-ideal-job\" :content=\"$t('entities.my_ideal_job.tip.content')\" />\n <div class=\"grid--two-columns@medium\">\n <div v-if=\"idealJob.title && idealJob.description\">\n <h3 class=\"margin-b--m\" data-cy=\"job-title\">{{ idealJob.title }}</h3>\n <div class=\"margin-b--m\" data-cy=\"job-description\" v-html=\"toHtml(idealJob.description)\"></div>\n <AppLinkButton data-cy=\"edit-job\" :text=\"$t('entities.my_ideal_job.update_job')\" @click=\"openEditor\" />\n </div>\n <div v-else class=\"ideal-job-empty\">\n <AppNoContentYet />\n <AppLinkButton data-cy=\"add-job\" :text=\"`+ ${$t('entities.my_ideal_job.add_job')}`\" @click=\"openEditor\" />\n </div>\n <div v-if=\"idealJob.title && idealJob.description\">\n <h3 class=\"margin-b--m\">{{ $t(\"entities.my_ideal_job.general_skills\") }}</h3>\n <AppNoContentYet v-if=\"skills.length === 0\" class=\"margin-b--s\" />\n <FloatingPanelSkillEditor\n :input=\"skills\"\n :skills-type=\"SkillType.General\"\n :skill-location=\"SkillLocationType.IdealJob\"\n data-cy=\"job-general-skills\"\n @updated=\"skillsUpdated\" />\n <h3 class=\"margin-v--m\">{{ $t(\"entities.my_ideal_job.languages\") }}</h3>\n <AppNoContentYet v-if=\"languages.length === 0\" class=\"margin-b--s\" />\n <FloatingPanelSkillEditor\n :input=\"languages\"\n :skills-type=\"SkillType.Language\"\n :skill-location=\"SkillLocationType.IdealJob\"\n data-cy=\"job-language-skills\"\n @updated=\"languagesUpdated\" />\n </div>\n </div>\n <AppPanel dark class=\"margin-v--m\" :border=\"false\">\n <AppToggle v-model=\"agreeShareIdealJob\" :text=\"$t('shared.agree_share_information')\" data-cy=\"ideal-job-agree-share-info\" />\n </AppPanel>\n <AppModal :name=\"panelName\" :disable-key-enter=\"true\">\n <AppForm>\n <AppInputText\n v-model=\"title\"\n data-cy=\"title\"\n :label=\"$t('entities.my_ideal_job.fields.title')\"\n :placeholder=\"$t('entities.my_ideal_job.fields.title.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"titleError\" />\n\n <AppInputTextArea\n v-model=\"description\"\n data-cy=\"description\"\n :label=\"$t('entities.my_ideal_job.fields.description')\"\n :placeholder=\"$t('entities.my_ideal_job.fields.description.placeholder')\"\n :maxlength=\"xLargeTextLength\"\n :error=\"descriptionError\" />\n </AppForm>\n </AppModal>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, watch } from \"vue\";\nimport { useField, useForm } from \"vee-validate\";\nimport i18n from \"@/i18n\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppInputTextArea from \"@/components/AppInputTextArea.vue\";\nimport AppModal from \"@/components/modal/AppModal.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport AppTip from \"@/components/AppTip.vue\";\nimport AppToggle from \"@/components/AppToggle.vue\";\nimport FloatingPanelSkillEditor from \"@/views/shared/current-experience/FloatingPanelSkillEditor.vue\";\nimport AppLinkButton from \"@/components/AppLinkButton.vue\";\nimport AppForm from \"@/components/AppForm.vue\";\nimport { emptyIdealJob } from \"@/services/modelServices/employeeIdealJobService\";\nimport { getGeneralSkills, getLanguageSkills } from \"@/utils/models\";\nimport { mediumTextLength, xLargeTextLength } from \"@/constants/restrictions\";\nimport { SkillLocationType, SkillType } from \"@/models/skillType\";\nimport { toHtml } from \"@/utils/stringUtils\";\nimport type { IdealJob, IdealJobBase } from \"@/models/idealJob\";\nimport type { SkillWithProgression } from \"@/models/skillWithProgression\";\nimport useMeAgreementsService from \"@/services/useMeAgreementsService\";\nimport useMeIdealJobService from \"@/services/useMeIdealJobService\";\nimport useMeService from \"@/services/useMeService\";\nimport useModal from \"@/components/modal/useModal\";\nimport useFormValidator from \"@/services/useFormValidator\";\nimport useFormSchema from \"@/services/useFormSchema\";\n\nconst { getMyIdealJob, setIdealJob } = useMeIdealJobService();\nconst { getBasicInformation } = useMeService();\nconst { updateAgreeShareIdealJob } = useMeAgreementsService();\nconst { openComponentModal } = useModal();\nconst { getFormCallbackHandler } = useFormValidator();\n\nconst agreeShareIdealJob = ref<boolean>(false);\nconst idealJob = ref<IdealJob | undefined>();\nconst languages = ref<SkillWithProgression[]>([]);\nconst skills = ref<SkillWithProgression[]>([]);\n\nconst panelName = \"editIdealJob\";\n\nconst { yupObject, stringSchema } = useFormSchema();\n\nconst resourceSchema = yupObject({\n title: stringSchema(),\n description: stringSchema({ maxLength: xLargeTextLength }),\n});\n\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: title, errorMessage: titleError } = useField<string>(\"title\");\nconst { value: description, errorMessage: descriptionError } = useField<string>(\"description\");\n\nonMounted(async () => {\n const job = await getMyIdealJob();\n idealJob.value = job || emptyIdealJob();\n skills.value = getGeneralSkills(idealJob.value.skills);\n languages.value = getLanguageSkills(idealJob.value.skills);\n\n setBasicData();\n\n const employee = await getBasicInformation();\n agreeShareIdealJob.value = employee.agreeShareIdealJob;\n});\n\nconst skillsUpdated = async (updatedSkills: SkillWithProgression[]): Promise<void> => {\n skills.value = updatedSkills;\n};\n\nconst languagesUpdated = async (updatedSkills: SkillWithProgression[]): Promise<void> => {\n languages.value = updatedSkills;\n};\n\nconst setBasicData = (): void => {\n if (idealJob.value === undefined) {\n return;\n }\n title.value = idealJob.value.title;\n description.value = idealJob.value.description;\n};\n\nconst save = async () => {\n const job: IdealJobBase = {\n title: title.value,\n description: description.value,\n };\n\n await setIdealJob(job);\n\n idealJob.value = { ...job, skills: idealJob.value?.skills ?? [] };\n};\n\nconst openEditor = (): void => {\n openComponentModal(panelName, {\n title: i18n.global.t(\"entities.my_ideal_job.title\"),\n showCancelToClose: true,\n confirmText: i18n.global.t(\"buttons.save\"),\n variant: \"floating\",\n confirmCallback: getFormCallbackHandler(form, save),\n closeCallback: setBasicData,\n });\n};\n\nwatch([agreeShareIdealJob], async () => {\n await updateAgreeShareIdealJob(agreeShareIdealJob.value);\n});\n</script>\n<style scoped lang=\"scss\">\n.ideal-job-empty {\n display: flex;\n flex-direction: column;\n gap: var(--space-m);\n}\n</style>\n","<template>\n <AppTab :tabs=\"tabs\" :tab-id=\"$t('entities.my_ideal_job.title')\" />\n</template>\n\n<script setup lang=\"ts\">\nimport AppTab, { type Tab } from \"@/components/AppTab.vue\";\nimport i18n from \"@/i18n\";\nimport router from \"@/router/router\";\n\ninterface Props {\n current: \"LearningPath\" | \"MyTraining\";\n}\n\nconst props = defineProps<Props>();\n\nconst tabs: Tab[] = [\n {\n text: i18n.global.t(\"entities.my_ideal_job.tab.learning_path\"),\n action: () => router.push({ name: \"my-ideal-job-learning\" }),\n isChecked: props.current === \"LearningPath\",\n dataCy: \"nav-learning-path\",\n },\n {\n text: i18n.global.t(\"entities.my_ideal_job.tab.my_training\"),\n action: () => router.push({ name: \"my-ideal-job-my-training\" }),\n isChecked: props.current === \"MyTraining\",\n dataCy: \"nav-my-training\",\n },\n];\n</script>\n","import type { Ref } from \"vue\";\nimport type { IdealLearning } from \"@/models/idealLearning\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\n\nconst BASE_URL = \"/api/me/ideal-learnings\";\nconst { get, put, post, httpDelete, loading } = useHttpClient();\n\ninterface UseMeIdealLearningServiceReturn {\n getIdealLearnings: () => Promise<IdealLearning[]>;\n createIdealLearning: (idealLearning: IdealLearning) => Promise<IdealLearning>;\n updateIdealLearning: (idealLearning: IdealLearning) => Promise<IdealLearning>;\n deleteIdealLearning: (idealLearningId: number) => Promise<void>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseMeIdealLearningServiceReturn => {\n const getIdealLearnings = (): Promise<IdealLearning[]> => get(BASE_URL);\n const createIdealLearning = (idealLearning: IdealLearning): Promise<IdealLearning> => post(BASE_URL, idealLearning);\n const updateIdealLearning = (idealLearning: IdealLearning): Promise<IdealLearning> =>\n put(`${BASE_URL}/${idealLearning.id}`, idealLearning);\n\n const deleteIdealLearning = (idealLearningId: number): Promise<void> => httpDelete(`${BASE_URL}/${idealLearningId}`);\n\n return { getIdealLearnings, createIdealLearning, updateIdealLearning, deleteIdealLearning, loading };\n};\n","<template>\n <div class=\"interests-learning-editor\">\n <AppMyInterestsInfoItem v-if=\"formMode === 'edit' || formMode === 'view'\" :title=\"titleRead\" :description=\"descriptionRead\" />\n\n <AppLinkButton\n v-if=\"formMode === 'create'\"\n data-cy=\"create-ideal-learning\"\n :text=\"` + ${$t('pages.my_interests.form.idealLearning.create')}`\"\n @click=\"openPanel()\" />\n <div v-if=\"formMode === 'edit'\" class=\"interests-learning-editor__actions\">\n <AppLinkButton :text=\"$t('buttons.edit')\" data-cy=\"edit-ideal-learning\" @click=\"setOpenPanel()\" />\n <AppLinkButton :bold=\"false\" data-cy=\"delete-ideal-learning\" :text=\"$t('buttons.delete')\" @click=\"remove()\" />\n </div>\n\n <AppModal :name=\"panelName\" :disable-key-enter=\"true\">\n <AppForm>\n <AppInputText\n v-model=\"title\"\n data-cy=\"title\"\n :error=\"titleError\"\n :label=\"$t('pages.my_interests.form.idealLearning.fields.title.label')\"\n :placeholder=\"$t('pages.my_interests.form.idealLearning.fields.title.placeholder')\"\n :maxlength=\"mediumTextLength\" />\n <AppInputTextArea\n v-model=\"description\"\n data-cy=\"description\"\n :error=\"descriptionError\"\n :label=\"$t('pages.my_interests.form.idealLearning.fields.description.label')\"\n :placeholder=\"$t('pages.my_interests.form.idealLearning.fields.description.placeholder')\"\n :maxlength=\"xLargeTextLength\" />\n </AppForm>\n </AppModal>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { useField, useForm } from \"vee-validate\";\nimport i18n from \"@/i18n\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppInputTextArea from \"@/components/AppInputTextArea.vue\";\nimport AppModal from \"@/components/modal/AppModal.vue\";\nimport AppLinkButton from \"@/components/AppLinkButton.vue\";\nimport AppMyInterestsInfoItem from \"@/views/shared/my-interests/AppMyInterestsInfoItem.vue\";\nimport AppForm from \"@/components/AppForm.vue\";\nimport { getRandomId } from \"@/utils/randomUtils\";\nimport { mediumTextLength, xLargeTextLength } from \"@/constants/restrictions\";\nimport type { FormMode } from \"@/models/formMode\";\nimport type { IdealLearning } from \"@/models/idealLearning\";\nimport useModal from \"@/components/modal/useModal\";\nimport useFormValidator from \"@/services/useFormValidator\";\nimport useFormSchema from \"@/services/useFormSchema\";\nimport useMeIdealLearningService from \"@/services/useMeIdealLearningService\";\n\nconst { createIdealLearning, updateIdealLearning, deleteIdealLearning } = useMeIdealLearningService();\nconst { openTextModal, openComponentModal } = useModal();\nconst { getFormCallbackHandler } = useFormValidator();\nconst { yupObject, stringSchema } = useFormSchema();\n\ninterface Props {\n input?: IdealLearning;\n formMode?: FormMode;\n}\n\nconst props = withDefaults(defineProps<Props>(), { formMode: \"edit\" });\n\nconst emit = defineEmits<{\n (e: \"created\", item: IdealLearning): void;\n (e: \"deleted\", item: IdealLearning): void;\n (e: \"updated\", item: IdealLearning): void;\n}>();\n\nconst titleRead = ref<string | undefined>(props.input?.title);\nconst descriptionRead = ref<string | undefined>(props.input?.description);\nconst panelName: string = getRandomId();\n\nconst resourceSchema = yupObject({\n title: stringSchema(),\n description: stringSchema({ maxLength: xLargeTextLength }),\n});\n\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: title, errorMessage: titleError } = useField<string>(\"title\");\nconst { value: description, errorMessage: descriptionError } = useField<string>(\"description\");\n\nconst setFormValues = (): void => {\n if (props.input === undefined) {\n return;\n }\n title.value = props.input.title;\n description.value = props.input.description;\n};\n\nconst save = async () => {\n const idealLearning: IdealLearning = {\n id: props.input?.id ?? 0,\n title: title.value,\n description: description.value,\n };\n\n if (props.formMode === \"create\") {\n const created = await createIdealLearning(idealLearning);\n emit(\"created\", created);\n } else {\n const updated = await updateIdealLearning(idealLearning);\n titleRead.value = idealLearning.title;\n descriptionRead.value = idealLearning.description;\n emit(\"updated\", updated);\n }\n\n form.resetForm();\n};\n\nconst remove = (): void => {\n openTextModal({\n title: i18n.global.t(\"pages.my_interests.form.idealLearning.delete.title\"),\n contentText: i18n.global.t(\"pages.my_interests.form.idealLearning.delete.content\"),\n showCancelToClose: true,\n confirmCallback: async () => {\n if (props.input === undefined) {\n return false;\n }\n await deleteIdealLearning(props.input.id);\n emit(\"deleted\", props.input);\n return true;\n },\n });\n};\n\nconst setOpenPanel = (): void => {\n setFormValues();\n openPanel();\n};\n\nconst close = () => {\n form.resetForm();\n};\n\nconst openPanel = (): void => {\n openComponentModal(panelName, {\n title: i18n.global.t(`pages.my_interests.form.idealLearning.${props.formMode}.title`),\n confirmText: i18n.global.t(\"buttons.save\"),\n variant: \"floating\",\n showCancelToClose: true,\n confirmCallback: getFormCallbackHandler(form, save),\n closeCallback: close,\n });\n};\n</script>\n<style scoped lang=\"scss\">\n.interests-learning-editor {\n display: flex;\n flex-direction: column;\n gap: var(--space-m);\n\n &__actions {\n display: flex;\n flex-direction: row;\n gap: var(--space-m);\n }\n}\n</style>\n","import type { Interest } from \"@/models/interest\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\nimport type { Ref } from \"vue\";\n\nconst BASE_URL = \"/api/me/interests\";\nconst { get, put, post, httpDelete, loading } = useHttpClient();\n\ninterface UseMeInterestsServiceReturn {\n getInterests: () => Promise<Interest[]>;\n createInterest: (interest: Interest) => Promise<Interest>;\n updateInterest: (interest: Interest) => Promise<Interest>;\n deleteInterest: (interestId: number) => Promise<void>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseMeInterestsServiceReturn => {\n const getInterests = (): Promise<Interest[]> => get(BASE_URL);\n const createInterest = (interest: Interest): Promise<Interest> => post(BASE_URL, interest);\n const updateInterest = (interest: Interest): Promise<Interest> => put(`${BASE_URL}/${interest.id}`, interest);\n const deleteInterest = (interestId: number): Promise<void> => httpDelete(`${BASE_URL}/${interestId}`);\n\n return { getInterests, createInterest, updateInterest, deleteInterest, loading };\n};\n","<template>\n <div class=\"interests-editor\">\n <AppMyInterestsInfoItem v-if=\"formMode === 'edit' || formMode === 'view'\" :title=\"titleRead\" :description=\"descriptionRead\" />\n\n <AppLinkButton\n v-if=\"formMode === 'create'\"\n data-cy=\"create-interest\"\n :text=\"` + ${$t('pages.my_interests.form.interests.create')}`\"\n @click=\"openPanel()\" />\n <div v-if=\"formMode === 'edit'\" class=\"interests-editor__actions\">\n <AppLinkButton :text=\"$t('buttons.edit')\" data-cy=\"edit-interest\" @click=\"setOpenPanel()\" />\n <AppLinkButton :bold=\"false\" data-cy=\"delete-interest\" :text=\"$t('buttons.delete')\" @click=\"remove()\" />\n </div>\n\n <AppModal :name=\"panelName\" :disable-key-enter=\"true\">\n <AppForm>\n <AppInputText\n v-model=\"title\"\n data-cy=\"title\"\n :error=\"titleError\"\n :label=\"$t('pages.my_interests.form.interests.fields.title.label')\"\n :placeholder=\"$t('pages.my_interests.form.interests.fields.title.placeholder')\"\n :maxlength=\"mediumTextLength\" />\n <AppInputTextArea\n v-model=\"description\"\n data-cy=\"description\"\n :error=\"descriptionError\"\n :label=\"$t('pages.my_interests.form.interests.fields.description.label')\"\n :placeholder=\"$t('pages.my_interests.form.interests.fields.description.placeholder')\"\n :maxlength=\"xLargeTextLength\" />\n </AppForm>\n </AppModal>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport i18n from \"@/i18n\";\nimport { useField, useForm } from \"vee-validate\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppLinkButton from \"@/components/AppLinkButton.vue\";\nimport AppInputTextArea from \"@/components/AppInputTextArea.vue\";\nimport AppModal from \"@/components/modal/AppModal.vue\";\nimport AppForm from \"@/components/AppForm.vue\";\nimport AppMyInterestsInfoItem from \"@/views/shared/my-interests/AppMyInterestsInfoItem.vue\";\nimport { getRandomId } from \"@/utils/randomUtils\";\nimport { mediumTextLength, xLargeTextLength } from \"@/constants/restrictions\";\nimport type { FormMode } from \"@/models/formMode\";\nimport type { Interest } from \"@/models/interest\";\nimport useModal from \"@/components/modal/useModal\";\nimport useFormValidator from \"@/services/useFormValidator\";\nimport useFormSchema from \"@/services/useFormSchema\";\nimport useMeInterestsService from \"@/services/useMeInterestsService\";\n\nconst { createInterest, updateInterest, deleteInterest } = useMeInterestsService();\nconst { openTextModal, openComponentModal } = useModal();\nconst { getFormCallbackHandler } = useFormValidator();\nconst { yupObject, stringSchema } = useFormSchema();\n\ninterface Props {\n input?: Interest;\n formMode?: FormMode;\n}\n\nconst props = withDefaults(defineProps<Props>(), { formMode: \"edit\" });\n\nconst emit = defineEmits<{\n (e: \"created\", item: Interest): void;\n (e: \"deleted\", item: Interest): void;\n (e: \"updated\", item: Interest): void;\n}>();\n\nconst titleRead = ref<string | undefined>(props.input?.title);\nconst descriptionRead = ref<string | undefined>(props.input?.description);\nconst panelName: string = getRandomId();\n\nconst resourceSchema = yupObject({\n title: stringSchema(),\n description: stringSchema({ maxLength: xLargeTextLength }),\n});\n\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: title, errorMessage: titleError } = useField<string>(\"title\");\nconst { value: description, errorMessage: descriptionError } = useField<string>(\"description\");\n\nconst setFormValues = (): void => {\n if (props.input === undefined) {\n return;\n }\n title.value = props.input.title;\n description.value = props.input.description;\n};\n\nconst save = async () => {\n const interest: Interest = {\n id: props.input?.id ?? 0,\n title: title.value,\n description: description.value,\n };\n\n if (props.formMode === \"create\") {\n const created = await createInterest(interest);\n emit(\"created\", created);\n } else {\n const updated = await updateInterest(interest);\n titleRead.value = interest.title;\n descriptionRead.value = interest.description;\n emit(\"updated\", updated);\n }\n\n form.resetForm();\n};\n\nconst remove = (): void => {\n openTextModal({\n title: i18n.global.t(\"pages.my_interests.form.interests.delete.title\"),\n contentText: i18n.global.t(\"pages.my_interests.form.interests.delete.content\"),\n showCancelToClose: true,\n confirmCallback: async () => {\n if (props.input === undefined) {\n return false;\n }\n await deleteInterest(props.input.id);\n emit(\"deleted\", props.input);\n return true;\n },\n });\n};\n\nconst setOpenPanel = (): void => {\n setFormValues();\n openPanel();\n};\n\nconst close = () => {\n form.resetForm();\n};\n\nconst openPanel = (): void => {\n openComponentModal(panelName, {\n title: i18n.global.t(`pages.my_interests.form.interests.${props.formMode}.title`),\n confirmText: i18n.global.t(\"buttons.save\"),\n variant: \"floating\",\n showCancelToClose: true,\n confirmCallback: getFormCallbackHandler(form, save),\n closeCallback: close,\n });\n};\n</script>\n\n<style scoped lang=\"scss\">\n.interests-editor {\n display: flex;\n flex-direction: column;\n gap: var(--space-m);\n\n &__actions {\n display: flex;\n flex-direction: row;\n gap: var(--space-m);\n }\n}\n</style>\n","export enum HobbyCategory {\n Sport = \"Sport\",\n Music = \"Music\",\n Culture = \"Culture\",\n Technology = \"Technology\",\n Others = \"Others\",\n}\n","<template>\n <AppSelect\n v-model=\"value\"\n class=\"category-selector\"\n data-cy=\"hobbies-category-selector\"\n :items=\"availableCategories\"\n :label=\"$t('entities.my_interests.hobbies.category')\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport i18n from \"@/i18n\";\nimport AppSelect from \"@/components/AppSelect.vue\";\nimport { computed } from \"vue\";\nimport { HobbyCategory } from \"@/models/hobbyCategory\";\n\ninterface Props {\n modelValue?: HobbyCategory;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"update:modelValue\", value: HobbyCategory) => void>();\n\nconst availableCategories = Object.keys(HobbyCategory).map((category) => ({\n value: category,\n text: i18n.global.t(`entities.my_interests.hobbies.category.${category.toLowerCase()}`),\n}));\n\nconst value = computed({\n get: () => props.modelValue ?? HobbyCategory.Sport,\n set: (val: HobbyCategory) => emit(\"update:modelValue\", val),\n});\n</script>\n","import type { Hobby } from \"@/models/hobby\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\nimport type { Ref } from \"vue\";\n\nconst BASE_URL = \"/api/hobbies\";\nconst { loading, get, post } = useHttpClient();\n\ninterface UseHobbiesServiceReturn {\n getHobbies: () => Promise<Hobby[]>;\n createHobby: (hobby: Partial<Hobby>) => Promise<void>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseHobbiesServiceReturn => {\n const getHobbies = (): Promise<Hobby[]> => get(BASE_URL);\n const createHobby = (hobby: Partial<Hobby>): Promise<void> => post(BASE_URL, hobby);\n\n return { getHobbies, createHobby, loading };\n};\n","<template>\n <AppAutomaticModalOpener :modal-config=\"modalConfig\">\n <AppForm data-cy=\"hobbies-creator\">\n <AppInputText\n v-model=\"hobbyName\"\n :label=\"$t('entities.my_interests.hobbies.hobbies-creator.form.name')\"\n :error=\"hobbyNameError\"\n :maxlength=\"mediumTextLength\"\n data-cy=\"hobby-creator-hobby-name\" />\n <AppHobbyCategorySelector v-model=\"hobbyCategory\" />\n </AppForm>\n </AppAutomaticModalOpener>\n</template>\n\n<script lang=\"ts\" setup>\nimport { object as yupObject, mixed as yupMixed } from \"yup\";\nimport i18n from \"@/i18n\";\nimport { mediumTextLength } from \"@/constants/restrictions\";\nimport { useField, useForm } from \"vee-validate\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppForm from \"@/components/AppForm.vue\";\nimport AppHobbyCategorySelector from \"@/components/AppHobbyCategorySelector.vue\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport type { ModalBase } from \"@/components/modal/models\";\nimport { HobbyCategory } from \"@/models/hobbyCategory\";\nimport useHobbiesService from \"@/services/useHobbiesService\";\nimport useFormSchema from \"@/services/useFormSchema\";\n\nconst emit = defineEmits<{\n (e: \"hobby-created\", newHobbyName?: string): void;\n (e: \"closed\"): void;\n}>();\n\nconst { createHobby } = useHobbiesService();\n\nconst { stringSchema, inputRequiredText } = useFormSchema();\n\nconst resourceSchema = yupObject({\n hobbyName: stringSchema(),\n hobbyCategory: yupMixed<HobbyCategory>().required(inputRequiredText()),\n});\nconst form = useForm({ validationSchema: resourceSchema });\nconst { value: hobbyName, errorMessage: hobbyNameError } = useField<string | undefined>(\"hobbyName\");\nconst { value: hobbyCategory } = useField<HobbyCategory>(\"hobbyCategory\");\nhobbyCategory.value = HobbyCategory.Sport;\n\nconst modalConfig: ModalBase = {\n title: i18n.global.t(\"entities.my_interests.hobbies.hobbies-creator.title\"),\n variant: \"floating\",\n confirmText: i18n.global.t(\"entities.my_interests.hobbies.hobbies-creator.createButton\"),\n showCancelToClose: true,\n confirmCallback: async () => {\n const validationResult = await form.validate();\n if (!validationResult.valid) {\n return false;\n }\n try {\n await createHobby({\n name: hobbyName.value,\n category: hobbyCategory.value,\n });\n emit(\"hobby-created\", hobbyName.value);\n } catch (error) {\n return false;\n }\n },\n onClosed: () => emit(\"closed\"),\n};\n</script>\n","<template>\n <div v-if=\"hobbies\" data-cy=\"hobbies-editor\">\n <div class=\"hobbies-editor margin-b--m\">\n <AppAutocomplete\n :placeholder=\"$t('entities.my_interests.hobbies.edit-modal.search')\"\n :items=\"autocompleteItems\"\n :maxlength=\"15\"\n :self-filtering=\"true\"\n @click=\"handleHobbySelected\" />\n </div>\n <AppPanel :dark=\"true\" :border=\"false\">\n <div class=\"hobbies-editor--new-hobby\">\n <span class=\"text text--s text--bold\">{{ $t(\"entities.my_interests.hobbies.edit-modal.needNew\") }}</span>\n <AppButton\n data-cy=\"create-new-hobby-button\"\n size=\"m\"\n :text=\"$t('entities.my_interests.hobbies.edit-modal.newButton')\"\n @click=\"creating = true\" />\n </div>\n </AppPanel>\n <div v-if=\"checkedHobbies\" class=\"margin-t--m\">\n <AppTag\n v-for=\"hobby of checkedHobbies\"\n :key=\"hobby.name\"\n class=\"margin-b--xs margin-r--xs\"\n data-cy=\"hobbies-editor-tag\"\n :main-text=\"hobby.name\"\n type=\"skill\"\n :deletable=\"true\"\n @delete-tag=\"deleteHobby\" />\n </div>\n <AppHobbiesCreator v-if=\"creating\" @closed=\"creating = false\" @hobby-created=\"handleHobbyCreated\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport AppAutocomplete from \"@/components/AppAutocomplete.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppHobbiesCreator from \"@/components/AppHobbiesCreator.vue\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport type { AutocompleteItem } from \"@/models/autocompleteItem\";\nimport type { Hobby } from \"@/models/hobby\";\nimport { computed, onMounted, ref } from \"vue\";\nimport useHobbiesService from \"@/services/useHobbiesService\";\n\nconst { getHobbies } = useHobbiesService();\n\ninterface Props {\n modelValue: Hobby[];\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"update:modelValue\", value: Hobby[]) => void>();\n\nconst hobbies = ref<Hobby[]>([]);\nconst creating = ref<boolean>(false);\n\nconst autocompleteItems = computed<AutocompleteItem[]>(() => {\n return !hobbies.value\n ? []\n : hobbies.value\n .filter((h) => !h.checked)\n .sort((h1: Hobby, h2: Hobby) => h1.name.localeCompare(h2.name))\n .map((h) => ({ id: h.id, text: h.name }));\n});\n\nconst checkedHobbies = computed<Hobby[]>(() => {\n return hobbies.value.filter((h) => h.checked).sort((h1: Hobby, h2: Hobby) => h1.name.localeCompare(h2.name));\n});\n\nconst handleHobbySelected = (item: AutocompleteItem): void => {\n findAndApplyFunction(searchHobbyById(item), checkHobby);\n emit(\"update:modelValue\", checkedHobbies.value);\n};\n\nconst deleteHobby = (hobbyName: string): void => {\n findAndApplyFunction(searchHobbyByName(hobbyName), uncheckHobby);\n emit(\"update:modelValue\", checkedHobbies.value);\n};\n\nconst initialize = async () => {\n hobbies.value = (await getHobbies()).map((h) => ({ ...h, checked: props.modelValue.some((i) => i.id === h.id) }));\n};\n\nonMounted(() => initialize());\n\nconst handleHobbyCreated = async (newHobbyName?: string): Promise<void> => {\n const previousSelectedHobbies = [...checkedHobbies.value];\n await initialize();\n findAndApplyFunction((hobby) => hobby.name === newHobbyName, checkHobby);\n previousSelectedHobbies.forEach((h) => {\n findAndApplyFunction(searchHobbyById(h), checkHobby);\n });\n emit(\"update:modelValue\", checkedHobbies.value);\n};\n\nconst findAndApplyFunction = (searchFunction: (hobby: Hobby) => boolean, applyFunction: (hobby: Hobby) => void): void => {\n const skillFound = hobbies.value?.find(searchFunction);\n if (skillFound) {\n applyFunction(skillFound);\n }\n};\n\nconst searchHobbyById = (hobby1: Hobby | AutocompleteItem): ((hobby: Hobby) => boolean) => {\n return (hobby2: Hobby) => hobby1.id === hobby2.id;\n};\n\nconst searchHobbyByName = (hobbyName: string): ((hobby: Hobby) => boolean) => {\n return (hobby2: Hobby) => hobby2.name === hobbyName;\n};\n\nconst checkHobby = (hobbyToBeChecked: Hobby) => (hobbyToBeChecked.checked = true);\nconst uncheckHobby = (hobbyToBeUnchecked: Hobby) => (hobbyToBeUnchecked.checked = false);\n</script>\n\n<style scoped lang=\"scss\">\n.hobbies-editor {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &--new-hobby {\n display: flex;\n gap: var(--space-l);\n align-items: center;\n justify-content: space-between;\n }\n}\n</style>\n","<template>\n <div class=\"hobbies-category\">\n <span class=\"text text--l text--bold\">{{ $t(`entities.my_interests.hobbies.category.${category.toLowerCase()}`) }}</span>\n <div class=\"hobbies-category__items\">\n <div v-if=\"!hobbiesOrdered.length\">\n <AppTag data-cy=\"no-hobbies-in-category\" type=\"presence\" :main-text=\"$t('entities.my_interests.hobbies.no_hobbies')\" />\n </div>\n <AppTag\n v-for=\"hobby of hobbiesOrdered\"\n v-else\n :key=\"hobby.name\"\n class=\"margin-b--xs margin-r--xs\"\n data-cy=\"hobby-in-category\"\n :main-text=\"hobby.name\"\n type=\"skill\" />\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport AppTag from \"@/components/AppTag.vue\";\nimport type { Hobby } from \"@/models/hobby\";\nimport type { HobbyCategory } from \"@/models/hobbyCategory\";\nimport { computed } from \"vue\";\n\ninterface Props {\n category: HobbyCategory;\n hobbies: Hobby[];\n}\nconst props = defineProps<Props>();\nconst hobbiesOrdered = computed<Hobby[]>(() => {\n return props.hobbies\n .filter((h) => h.category && h.category === props.category)\n .sort((h1: Hobby, h2: Hobby) => h1.name.localeCompare(h2.name));\n});\n</script>\n<style lang=\"scss\" scoped>\n.hobbies-category {\n display: flex;\n flex-direction: column;\n row-gap: 24px;\n}\n</style>\n","import type { Hobby } from \"@/models/hobby\";\nimport type { Ref } from \"vue\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\n\nconst BASE_URL = \"/api/me/hobbies\";\nconst { loading, get, put } = useHttpClient();\n\ninterface UseMeHobbiesServiceReturn {\n getEmployeeHobbies: () => Promise<Hobby[]>;\n updateEmployeeHobbies: (hobbies: Partial<Hobby>[]) => Promise<void>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseMeHobbiesServiceReturn => {\n const getEmployeeHobbies = (): Promise<Hobby[]> => get(BASE_URL);\n const updateEmployeeHobbies = (hobbies: Partial<Hobby>[]): Promise<void> => put(BASE_URL, hobbies);\n\n return { getEmployeeHobbies, updateEmployeeHobbies, loading };\n};\n","<template>\n <div class=\"hobbies\">\n <AppNoContentYet v-if=\"!loading && !readyToShowHobbies.length\" :text=\"$t(noContentMessage())\" />\n <div v-else class=\"hobbies__container\">\n <AppHobbyCategoryFrame\n data-cy=\"hobby-sport-frame\"\n class=\"include-separator\"\n :category=\"HobbyCategory.Sport\"\n :hobbies=\"readyToShowHobbies\" />\n <AppHobbyCategoryFrame\n data-cy=\"hobby-music-frame\"\n class=\"include-separator\"\n :category=\"HobbyCategory.Music\"\n :hobbies=\"readyToShowHobbies\" />\n <AppHobbyCategoryFrame data-cy=\"hobby-culture-frame\" :category=\"HobbyCategory.Culture\" :hobbies=\"readyToShowHobbies\" />\n <AppHobbyCategoryFrame\n data-cy=\"hobby-technology-frame\"\n class=\"include-separator\"\n :category=\"HobbyCategory.Technology\"\n :hobbies=\"readyToShowHobbies\" />\n <AppHobbyCategoryFrame data-cy=\"hobby-others-frame\" :category=\"HobbyCategory.Others\" :hobbies=\"readyToShowHobbies\" />\n </div>\n\n <AppLinkButton\n v-if=\"formMode !== 'view'\"\n data-cy=\"hobbies-panel-open-edit\"\n :text=\"$t('entities.my_interests.add-hobbies')\"\n @click=\"openModal(panelName)\" />\n\n <AppModal :name=\"panelName\">\n <AppHobbiesEditor v-model=\"hobbies\" />\n </AppModal>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { onMounted, ref } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppModal from \"@/components/modal/AppModal.vue\";\nimport AppHobbiesEditor from \"@/components/AppHobbiesEditor.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport AppHobbyCategoryFrame from \"@/components/AppHobbyCategoryFrame.vue\";\nimport AppLinkButton from \"@/components/AppLinkButton.vue\";\nimport useModal from \"@/components/modal/useModal\";\nimport type { FormMode } from \"@/models/formMode\";\nimport type { Hobby } from \"@/models/hobby\";\nimport { HobbyCategory } from \"@/models/hobbyCategory\";\nimport useEmployeeService from \"@/services/useEmployeeService\";\nimport { compareStrings } from \"@/utils/stringUtils\";\nimport useMeHobbiesService from \"@/services/useMeHobbiesService\";\n\nconst { getEmployeeHobbies, updateEmployeeHobbies, loading } = useMeHobbiesService();\nconst { openComponentModal } = useModal();\nconst { getEmployeeHobbies: getImpersonatedEmployeeHobbies } = useEmployeeService();\nconst panelName = \"HobbiesPanel\";\n\ninterface Props {\n formMode?: FormMode;\n impersonatedAs?: number;\n}\nconst props = withDefaults(defineProps<Props>(), { formMode: \"edit\", impersonatedAs: 0 });\nconst hobbies = ref<Hobby[]>([]);\nconst readyToShowHobbies = ref<Hobby[]>([]);\n\nonMounted(() => initialize());\n\nconst noContentMessage = () =>\n props.impersonatedAs > 0 ? \"pages.admin.dashboard.interests.hobbies.no_content_yet\" : \"shared.app_tag.no_content_yet\";\n\nconst initialize = async (): Promise<void> => {\n const functionToBeApplied =\n props.impersonatedAs > 0 ? getImpersonatedEmployeeHobbies.bind(null, props.impersonatedAs) : getEmployeeHobbies;\n const employeeHobbies = await functionToBeApplied();\n hobbies.value = [...employeeHobbies].sort((hobby1: Hobby, hobby2: Hobby) => compareStrings(hobby1.name, hobby2.name));\n readyToShowHobbies.value = hobbies.value;\n};\n\nconst save = async () => {\n await updateEmployeeHobbies(hobbies.value);\n await initialize();\n};\n\nconst close = () => {\n hobbies.value = readyToShowHobbies.value;\n};\n\nconst openModal = (componentId: string): void => {\n openComponentModal(componentId, {\n title: i18n.global.t(\"entities.my_interests.hobbies.edit-modal.title\"),\n variant: \"floating\",\n confirmText: i18n.global.t(\"buttons.save\"),\n showCancelToClose: true,\n confirmCallback: save,\n closeCallback: close,\n });\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.hobbies {\n display: flex;\n flex-direction: column;\n gap: var(--space-m);\n\n &__container {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n column-gap: 6.4rem;\n row-gap: 3.2rem;\n }\n}\n.include-separator {\n border-right: 1px solid var(--color-divider);\n padding-right: var(--space-l);\n}\n</style>\n","<template>\n <LayoutPage :title=\"$t('pages.my_interests.title')\">\n <AppTip unique-name=\"app-my_interests\" :content=\"$t('pages.my_interests.tip.content')\" />\n <div class=\"grid--two-columns@medium\">\n <div>\n <h2 class=\"margin-b--m\">{{ $t(\"pages.my_interests.interests\") }}</h2>\n <AppNoContentYet v-if=\"interests.length === 0\" />\n <div v-for=\"interest in interests\" :key=\"interest.id\" class=\"margin-b--m\" data-cy=\"interests\">\n <AppMyInterestsInterestEditor form-mode=\"edit\" :input=\"interest\" @deleted=\"interestDeleted\" @updated=\"interestUpdated\" />\n </div>\n <AppMyInterestsInterestEditor class=\"margin-v--m\" form-mode=\"create\" @created=\"interestCreated\" />\n </div>\n <div>\n <h2 class=\"margin-b--m\">{{ $t(\"pages.my_interests.idealLearning\") }}</h2>\n <AppNoContentYet v-if=\"idealLearnings.length === 0\" />\n <div v-for=\"idealLearning in idealLearnings\" :key=\"idealLearning.id\" class=\"margin-b--m\" data-cy=\"ideal-learnings\">\n <AppMyInterestsIdealLearningEditor\n form-mode=\"edit\"\n :input=\"idealLearning\"\n @deleted=\"idealLearningDeleted\"\n @updated=\"idealLearningUpdated\" />\n </div>\n <AppMyInterestsIdealLearningEditor class=\"margin-v--m\" form-mode=\"create\" @created=\"idealLearningCreated\" />\n </div>\n </div>\n <AppSeparator class=\"margin-v--m\" />\n <div>\n <h2 class=\"margin-b--m\">{{ $t(\"entities.my_interests.hobbies\") }}</h2>\n <AppHobbiesPanel :editable=\"true\" />\n </div>\n <div class=\"margin-t--m margin-b--m\">\n <AppPanel :dark=\"true\" :border=\"false\">\n <AppToggle v-model=\"agreeShareInterests\" :text=\"$t('shared.agree_share_information')\" data-cy=\"interests-agree-share-info\" />\n </AppPanel>\n </div>\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref, watch, type Ref } from \"vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport AppToggle from \"@/components/AppToggle.vue\";\nimport AppMyInterestsIdealLearningEditor from \"@/views/shared/my-interests/AppMyInterestsIdealLearningEditor.vue\";\nimport AppMyInterestsInterestEditor from \"@/views/shared/my-interests/AppMyInterestsInterestEditor.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport AppSeparator from \"@/components/AppSeparator.vue\";\nimport AppHobbiesPanel from \"@/components/AppHobbiesPanel.vue\";\nimport AppTip from \"@/components/AppTip.vue\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport type { IdealLearning } from \"@/models/idealLearning\";\nimport type { Interest } from \"@/models/interest\";\nimport useMeAgreementsService from \"@/services/useMeAgreementsService\";\nimport useMeService from \"@/services/useMeService\";\nimport useMeInterestsService from \"@/services/useMeInterestsService\";\nimport useMeIdealLearningService from \"@/services/useMeIdealLearningService\";\n\nconst interests: Ref<Interest[]> = ref<Interest[]>([]);\nconst idealLearnings: Ref<IdealLearning[]> = ref<IdealLearning[]>([]);\nconst agreeShareInterests: Ref<boolean> = ref<boolean>(false);\n\nconst { getBasicInformation } = useMeService();\nconst { getInterests } = useMeInterestsService();\nconst { getIdealLearnings } = useMeIdealLearningService();\nconst { updateAgreeShareInterests } = useMeAgreementsService();\n\nonMounted(async () => {\n interests.value = await getInterests();\n idealLearnings.value = await getIdealLearnings();\n const employee = await getBasicInformation();\n agreeShareInterests.value = employee.agreeShareInterests;\n});\n\nconst idealLearningCreated = (idealLearning: IdealLearning) => {\n idealLearnings.value.push(idealLearning);\n};\n\nconst idealLearningUpdated = (idealLearning: IdealLearning) => {\n idealLearnings.value = idealLearnings.value.filter((i) => i.id !== idealLearning.id);\n idealLearnings.value.push(idealLearning);\n idealLearnings.value = [...idealLearnings.value].sort((a, b) => a.id - b.id);\n};\n\nconst idealLearningDeleted = (idealLearning: IdealLearning): void => {\n idealLearnings.value = idealLearnings.value.filter((i) => i.id !== idealLearning.id);\n};\n\nconst interestCreated = (interest: Interest) => {\n interests.value.push(interest);\n};\n\nconst interestUpdated = (interest: Interest) => {\n interests.value = interests.value.filter((i) => i.id !== interest.id);\n interests.value.push(interest);\n interests.value = [...interests.value].sort((a, b) => a.id - b.id);\n};\n\nconst interestDeleted = (interest: Interest): void => {\n interests.value = interests.value.filter((i) => i.id !== interest.id);\n};\n\nwatch([agreeShareInterests], async () => {\n await updateAgreeShareInterests(agreeShareInterests.value);\n});\n</script>\n","<template>\n <AppAutocomplete\n :items=\"items\"\n :placeholder=\"$t('pages.admin.dashboard.search.placeholder')\"\n :maxlength=\"mediumTextLength\"\n @change=\"searchChanged\"\n @click=\"click\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport AppAutocomplete from \"@/components/AppAutocomplete.vue\";\nimport type { AutocompleteItem } from \"@/models/autocompleteItem\";\nimport useEmployeeService from \"@/services/useEmployeeService\";\nimport { useDebounce } from \"@/services/useDebounce\";\nimport { MAX_AUTOCOMPLETE_ITEMS_TO_SHOW, mediumTextLength } from \"@/constants/restrictions\";\nimport { DEBOUNCE_SEARCH_TIMEOUT } from \"@/constants/debounce\";\n\ninterface Props {\n placeholder: string;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"select-item\", value: number) => void>();\n\nconst { search } = useEmployeeService();\nconst { after } = useDebounce();\n\nconst items = ref<AutocompleteItem[]>([]);\n\nconst click = (item: AutocompleteItem) => emit(\"select-item\", item.id);\nconst searchChanged = (searchTerm: string) => after(DEBOUNCE_SEARCH_TIMEOUT, () => updateSearch(searchTerm));\n\nconst updateSearch = async (searchTerm: string) => {\n const employees = await search(searchTerm, MAX_AUTOCOMPLETE_ITEMS_TO_SHOW);\n items.value = employees.map((e) => ({\n id: e.id,\n text: `${e.firstName} ${e.lastName}`,\n }));\n};\n</script>\n","<template>\n <AppTable :no-border=\"true\" :columns=\"columns\" :items=\"employees\" :paginated=\"true\" :default-order=\"defaultOrder\" :full-width=\"true\" />\n</template>\n\n<script setup lang=\"ts\">\nimport i18n from \"@/i18n\";\nimport AppTable from \"@/components/table/AppTable.vue\";\nimport type { Column } from \"@/components/table/Column\";\nimport type { Order } from \"@/components/table/Order\";\nimport type { EmployeeGroupEmployee } from \"@/models/companyEmployeeGroup\";\n\nconst emit = defineEmits<(e: \"selectItem\", id: number) => void>();\n\ninterface Props {\n employees: EmployeeGroupEmployee[];\n}\ndefineProps<Props>();\n\nconst selectItem = ({ id }: EmployeeGroupEmployee) => emit(\"selectItem\", id);\n\nconst defaultOrder: Order = { direction: \"asc\", id: 1 };\n\nconst columns: Column<EmployeeGroupEmployee>[] = [\n {\n id: 1,\n headerText: i18n.global.t(\"shared.company-groups.grid.full_name\"),\n cssWidth: \"1fr\",\n align: \"left\",\n sortable: true,\n searchable: false,\n type: \"text-with-ellipsis\",\n formatter: ({ firstName, lastName }: EmployeeGroupEmployee) => i18n.global.t(\"shared.employee.full_name\", { firstName, lastName }),\n },\n {\n id: 2,\n headerText: i18n.global.t(\"shared.company-groups.grid.email\"),\n cssWidth: \"1fr\",\n align: \"left\",\n sortable: true,\n searchable: false,\n fieldName: \"email\",\n type: \"text-with-ellipsis\",\n },\n {\n id: 3,\n cssWidth: \"2.5rem\",\n align: \"left\",\n sortable: false,\n searchable: false,\n type: \"actions\",\n actions: [\n {\n callback: selectItem,\n icon: \"eye\",\n title: i18n.global.t(\"pages.my_groups.grid.actions.view_profile\"),\n name: \"profile\",\n },\n ],\n },\n];\n</script>\n","<template>\n <LayoutPage :title=\"$t('pages.my_groups.title')\">\n <EmployeeSearch :placeholder=\"$t('pages.my_groups.search.placeholder')\" class=\"margin-b--m\" @select-item=\"selectEmployee\" />\n <AppBox v-if=\"currentGroup\" :title=\"$t('pages.my_groups.title')\" :full-space=\"true\" data-cy=\"group-list-container\">\n <AppTab :tabs=\"tabs\" :tab-id=\"`group-${currentGroup.id}`\" class=\"margin--s margin-b--0\" data-cy=\"group-list-nav\" />\n <MyGroupsTable :employees=\"currentGroup.employees\" @select-item=\"selectEmployee\" />\n </AppBox>\n <div class=\"btn-container\">\n <AppButton\n data-cy=\"my-groups-questions-btn\"\n size=\"m\"\n variant=\"secondary\"\n :text=\"$t('pages.my_groups.view_questions')\"\n @onclick=\"goToQuestions\" />\n </div>\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted } from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport router from \"@/router/router\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport EmployeeSearch from \"@/views/shared/employee/components/EmployeeSearch.vue\";\nimport AppBox from \"@/components/AppBox.vue\";\nimport useEmployeeService from \"@/services/useEmployeeService\";\nimport MyGroupsTable from \"@/views/app/my-groups/components/MyGroupsTable.vue\";\nimport type { CompanyEmployeeGroupWithEmployees } from \"@/models/companyEmployeeGroup\";\nimport AppTab, { type Tab } from \"@/components/AppTab.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\n\nconst route = useRoute();\nconst { getEmployeeManagedGroups } = useEmployeeService();\n\nconst groups = ref<CompanyEmployeeGroupWithEmployees[]>([]);\nconst currentGroup = ref<CompanyEmployeeGroupWithEmployees>();\nconst tabs = ref<Tab[]>([]);\n\nconst { groupId } = route.query;\n\nconst selectEmployee = (employeeId: number) =>\n router.push({ name: \"my-groups-employee\", params: { employeeId }, query: { groupId: currentGroup.value?.id } });\n\nconst goToQuestions = () => router.push({ name: \"my-groups-questions\" });\n\nconst selectGroup = (group: CompanyEmployeeGroupWithEmployees) => (currentGroup.value = group);\n\nconst createTabs = (source: CompanyEmployeeGroupWithEmployees[]): void => {\n tabs.value = source.map((group) => ({\n text: group.name,\n action: () => selectGroup(group),\n isChecked: currentGroup.value?.id === group.id,\n dataCy: `group-${group.id}`,\n }));\n};\n\nconst fetchData = async () => {\n groups.value = await getEmployeeManagedGroups();\n\n if (groups.value.length) {\n currentGroup.value = (groupId && groups.value.find((g) => g.id === +groupId)) || groups.value[0];\n createTabs(groups.value);\n }\n};\n\nonMounted(fetchData);\n</script>\n\n<style lang=\"scss\" scoped>\n.btn-container {\n display: flex;\n justify-content: end;\n margin-top: var(--space-m);\n}\n</style>\n","<template>\n <div class=\"app-icon-button\" :data-cy=\"`app-icon-button-${icon}`\" @click=\"click\">\n <div class=\"icon-container\">\n <span class=\"text text--link icon\" :class=\"iconClasses\"></span>\n </div>\n <div v-if=\"text\" class=\"text-container text text--link\" :class=\"{ 'text--xl': size === 'l' }\">{{ text }}</div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\ninterface Props {\n size?: \"m\" | \"l\";\n text?: string;\n icon: string;\n}\nconst props = withDefaults(defineProps<Props>(), {\n size: \"l\",\n});\n\nconst emit = defineEmits<(e: \"onclick\") => void>();\n\nconst iconClasses = computed(() => ({\n [`icon-${props.icon}`]: true,\n \"text--xl\": props.size === \"l\",\n}));\nconst click = () => emit(\"onclick\");\n</script>\n\n<style scoped lang=\"scss\">\n.app-icon-button {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--space-s);\n cursor: pointer;\n\n &:hover {\n filter: brightness(50%);\n }\n}\n\n.icon-container {\n border: 1px solid var(--color-link);\n border-radius: 20px;\n width: 40px;\n height: 40px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n</style>\n","<template>\n <div v-if=\"profileInformation\" class=\"employee-current-experience\">\n <h2 data-cy=\"current-experience-title\">\n {{ $t(\"pages.current_experience.about_me\") }}\n </h2>\n <div class=\"grid--two-columns@medium\">\n <AppNoContentYet v-if=\"!profileInformation.aboutMe\" :text=\"$t('pages.admin.dashboard.current_experience.about_me.no_content_yet')\" />\n <AboutMeEditor v-if=\"profileInformation.aboutMe\" :input=\"profileInformation.aboutMe\" form-mode=\"view\" />\n <AppUploadDocumentInline\n v-if=\"profileInformation.curriculumName\"\n v-model=\"curriculum\"\n :label=\"$t('pages.admin.dashboard.current_experience.about_me.curriculum')\"\n :download-url=\"getCurriculumUrl(profileInformation.id)\"\n :accept=\"allowedExtensions.join()\"\n button-variant=\"secondary\"\n form-mode=\"view\" />\n </div>\n <AppSeparator />\n <div class=\"current-job employee-current-experience-item\">\n <h2>{{ $t(\"pages.current_experience.current_experience.title\") }}</h2>\n <div class=\"grid--two-columns@medium\">\n <div class=\"employee-current-experience-item\">\n <AppNoContentYet v-if=\"!currentJobExperience\" />\n <JobExperienceEditor\n v-else\n form-mode=\"view\"\n :employee-id=\"profileInformation.id\"\n :job-experience-type=\"JobExperienceType.CurrentJobExperience\"\n truncate-text\n :input=\"currentJobExperience\" />\n <GroupsOfEmployee :groups=\"profileInformation.groups\" />\n </div>\n <div v-if=\"currentJobExperience\" class=\"employee-current-experience-item\">\n <h3>{{ $t(\"pages.current_experience.current_experience.general_skills\") }}</h3>\n <AppNoContentYet\n v-if=\"currentJobExperienceGeneralSkills.length === 0\"\n :text=\"$t('pages.admin.dashboard.current_experience.general_skills.no_content_yet')\" />\n <SkillEditor :input=\"currentJobExperienceGeneralSkills\" :skills-type=\"SkillType.General\" form-mode=\"view\" />\n <h3>{{ $t(\"pages.current_experience.current_experience.language_skills\") }}</h3>\n <AppNoContentYet\n v-if=\"currentJobExperienceLanguageSkills.length === 0\"\n :text=\"$t('pages.admin.dashboard.current_experience.languages.no_content_yet')\" />\n <SkillEditor :input=\"currentJobExperienceLanguageSkills\" :skills-type=\"SkillType.Language\" form-mode=\"view\" />\n </div>\n </div>\n </div>\n <AppSeparator />\n <div class=\"grid--two-columns@medium\">\n <div class=\"employee-current-experience-item\">\n <h2>{{ $t(\"pages.current_experience.experience\") }}</h2>\n <AppNoContentYet\n v-if=\"jobExperiences.length === 0\"\n :text=\"$t('pages.admin.dashboard.current_experience.experience.no_content_yet')\" />\n <JobExperienceEditor\n v-for=\"jobExperience in jobExperiences\"\n :key=\"jobExperience.id\"\n :employee-id=\"profileInformation.id\"\n form-mode=\"view\"\n truncate-text\n :input=\"jobExperience\" />\n </div>\n <div class=\"employee-current-experience-item\">\n <h2>{{ $t(\"pages.current_experience.education\") }}</h2>\n <AppNoContentYet v-if=\"educations.length === 0\" :text=\"$t('pages.admin.dashboard.current_experience.education.no_content_yet')\" />\n <EducationEditor\n v-for=\"education in educations\"\n :key=\"education.id\"\n :employee-id=\"profileInformation.id\"\n form-mode=\"view\"\n truncate-text\n :input=\"education\" />\n </div>\n </div>\n <AppSeparator />\n <h2>{{ $t(\"pages.current_experience.skills\") }}</h2>\n <div class=\"grid--two-columns@medium\">\n <div class=\"employee-current-experience-item\">\n <h5>{{ $t(\"pages.current_experience.skills.general\") }}</h5>\n <AppNoContentYet\n v-if=\"generalSkills.length === 0\"\n :text=\"$t('pages.admin.dashboard.current_experience.general_skills.no_content_yet')\" />\n <SkillEditor :input=\"generalSkills\" :skills-type=\"SkillType.General\" form-mode=\"view\" />\n </div>\n <div class=\"employee-current-experience-item\">\n <h5>{{ $t(\"pages.current_experience.languages\") }}</h5>\n <AppNoContentYet v-if=\"languages.length === 0\" :text=\"$t('pages.admin.dashboard.current_experience.languages.no_content_yet')\" />\n <SkillEditor :input=\"languages\" form-mode=\"view\" :skills-type=\"SkillType.Language\" />\n </div>\n </div>\n <AppSeparator />\n <AppEmployeeCurrentExperienceGoals\n v-if=\"!loading\"\n :goals=\"goals\"\n :no-goals-text=\"$t('entities.goals_challenges.employee_no_goals_yet')\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport AboutMeEditor from \"@/views/shared/current-experience/AboutMeEditor.vue\";\nimport JobExperienceEditor from \"@/views/shared/current-experience/JobExperienceEditor.vue\";\nimport EducationEditor from \"@/views/shared/current-experience/EducationEditor.vue\";\nimport SkillEditor from \"@/views/shared/current-experience/FloatingPanelSkillEditor.vue\";\nimport AppSeparator from \"@/components/AppSeparator.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport AppUploadDocumentInline from \"@/components/uploadDocument/AppUploadDocumentInline.vue\";\nimport GroupsOfEmployee from \"@/views/shared/employee/components/GroupsOfEmployee.vue\";\nimport AppEmployeeCurrentExperienceGoals from \"@/views/shared/current-experience/AppEmployeeCurrentExperienceGoals.vue\";\nimport useEmployeeService from \"@/services/useEmployeeService\";\nimport type { ProfileInformation } from \"@/models/profileInformation\";\nimport type { SkillWithProgression } from \"@/models/skillWithProgression\";\nimport { type CurrentJobExperience, type JobExperience, JobExperienceType } from \"@/models/jobExperience\";\nimport type { Education } from \"@/models/education\";\nimport { compareDates } from \"@/utils/dateUtils\";\nimport { SkillType } from \"@/models/skillType\";\nimport type { FileAttachment } from \"@/models/fileAttachment\";\nimport { getLanguageSkills } from \"@/utils/models\";\nimport type { CompanyGoal } from \"@/models/companyGoal\";\nimport { sortByProgressionName } from \"@/services/modelServices/skillService\";\nimport { allowedExtensions } from \"@/utils/fileUtils\";\n\nconst { getCurriculumUrl, getEmployeeGoals } = useEmployeeService();\n\ninterface Props {\n profileInformation: ProfileInformation;\n}\nconst props = defineProps<Props>();\n\nconst generalSkills = ref<SkillWithProgression[]>([]);\nconst languages = ref<SkillWithProgression[]>([]);\nconst jobExperiences = ref<JobExperience[]>([]);\nconst currentJobExperience = ref<CurrentJobExperience>();\nconst currentJobExperienceGeneralSkills = ref<SkillWithProgression[]>([]);\nconst currentJobExperienceLanguageSkills = ref<SkillWithProgression[]>([]);\nconst educations = ref<Education[]>([]);\nconst curriculum = ref<FileAttachment>();\nconst goals = ref<CompanyGoal[]>([]);\nconst loading = ref<boolean>(true);\n\nonMounted(async () => {\n curriculum.value = props.profileInformation.curriculumName ? { fileName: props.profileInformation.curriculumName } : undefined;\n languages.value = getLanguageSkills([...props.profileInformation.skills]).sort(sortByProgressionName);\n jobExperiences.value = [...props.profileInformation.jobExperiences].sort((a, b) => compareDates(a.fromDate, b.fromDate, false));\n currentJobExperience.value = props.profileInformation.currentJobExperience;\n currentJobExperienceGeneralSkills.value = [\n ...(props.profileInformation.currentJobExperience?.skills.filter((s) => s.type === SkillType.General) ?? []),\n ];\n currentJobExperienceLanguageSkills.value = [\n ...(props.profileInformation.currentJobExperience?.skills.filter((s) => s.type === SkillType.Language) ?? []),\n ];\n educations.value = [...props.profileInformation.educations].sort((a, b) => compareDates(a.fromDate, b.fromDate, false));\n\n const skills = [...props.profileInformation.skills].sort(sortByProgressionName);\n generalSkills.value = skills.filter((skill) => skill.type === SkillType.General);\n\n goals.value = await getEmployeeGoals(props.profileInformation.id);\n loading.value = false;\n});\n</script>\n\n<style scoped lang=\"scss\">\n.employee-current-experience,\n.employee-current-experience-item {\n display: flex;\n flex-direction: column;\n gap: var(--space-m);\n}\n.current-job {\n border-radius: var(--size-xs);\n background-color: var(--color-neutral-100);\n box-shadow: 0 var(--space-xs) var(--space-m) rgba(26, 26, 26, 0.04);\n padding: var(--space-m);\n}\n</style>\n","<template>\n <div class=\"grid--two-columns@medium\">\n <div v-if=\"idealJob && idealJob.title && idealJob.description\">\n <h3 class=\"margin-b--m\" data-cy=\"job-title\">{{ idealJob.title }}</h3>\n <div class=\"margin-b--m\" data-cy=\"job-description\" v-html=\"toHtml(idealJob.description)\"></div>\n </div>\n <div v-else>\n <AppNoContentYet class=\"margin-b--m\" :text=\"$t('pages.admin.dashboard.my_ideal_job.no_content_yet')\" />\n </div>\n <div v-if=\"idealJob && idealJob.title && idealJob.description\">\n <h3 class=\"margin-b--m\">{{ $t(\"entities.my_ideal_job.general_skills\") }}</h3>\n <AppNoContentYet\n v-if=\"skills.length === 0\"\n class=\"margin-b--s\"\n :text=\"$t('pages.admin.dashboard.current_experience.general_skills.no_content_yet')\" />\n <FloatingPanelSkillEditor\n :input=\"skills\"\n :skills-type=\"SkillType.General\"\n :skill-location=\"SkillLocationType.IdealJob\"\n form-mode=\"view\"\n data-cy=\"job-general-skills\" />\n <h3 class=\"margin-v--m\">{{ $t(\"entities.my_ideal_job.languages\") }}</h3>\n <AppNoContentYet\n v-if=\"languages.length === 0\"\n class=\"margin-b--s\"\n :text=\"$t('pages.admin.dashboard.current_experience.languages.no_content_yet')\" />\n <FloatingPanelSkillEditor\n :input=\"languages\"\n :skills-type=\"SkillType.Language\"\n :skill-location=\"SkillLocationType.IdealJob\"\n form-mode=\"view\"\n data-cy=\"job-language-skills\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport FloatingPanelSkillEditor from \"@/views/shared/current-experience/FloatingPanelSkillEditor.vue\";\nimport useEmployeeService from \"@/services/useEmployeeService\";\nimport type { IdealJob } from \"@/models/idealJob\";\nimport { emptyIdealJob } from \"@/services/modelServices/employeeIdealJobService\";\nimport { toHtml } from \"@/utils/stringUtils\";\nimport { getGeneralSkills, getLanguageSkills } from \"@/utils/models\";\nimport type { SkillWithProgression } from \"@/models/skillWithProgression\";\nimport { SkillLocationType, SkillType } from \"@/models/skillType\";\n\ninterface Props {\n employeeId: number;\n}\nconst props = defineProps<Props>();\n\nconst { getIdealJob } = useEmployeeService();\n\nconst idealJob = ref<IdealJob>();\nconst skills = ref<SkillWithProgression[]>([]);\nconst languages = ref<SkillWithProgression[]>([]);\nconst loading = ref<boolean>(true);\n\nonMounted(async () => {\n const job = await getIdealJob(props.employeeId);\n idealJob.value = job || emptyIdealJob();\n skills.value = getGeneralSkills(idealJob.value.skills);\n languages.value = getLanguageSkills(idealJob.value.skills);\n loading.value = false;\n});\n</script>\n","<template>\n <div>\n <div class=\"grid--two-columns@medium\">\n <div>\n <h2 class=\"margin-b--m\">{{ $t(\"pages.my_interests.interests\") }}</h2>\n <AppNoContentYet\n v-if=\"interests?.length === 0\"\n class=\"margin-b--m\"\n :text=\"$t('pages.admin.dashboard.interests.interests.no_content_yet')\" />\n <div v-for=\"interest in interests\" :key=\"interest.id\" class=\"margin-b--m\" data-cy=\"dashboard-interests\">\n <AppMyInterestsInterestEditor form-mode=\"view\" :input=\"interest\" />\n </div>\n </div>\n <div>\n <h2 class=\"margin-b--m\">{{ $t(\"pages.my_interests.idealLearning\") }}</h2>\n <AppNoContentYet\n v-if=\"idealLearnings?.length === 0\"\n class=\"margin-b--m\"\n :text=\"$t('pages.admin.dashboard.interests.idealLearning.no_content_yet')\" />\n <div v-for=\"idealLearning in idealLearnings\" :key=\"idealLearning.id\" class=\"margin-b--m\" data-cy=\"dashboard-ideal-learnings\">\n <AppMyInterestsIdealLearningEditor form-mode=\"view\" :input=\"idealLearning\" />\n </div>\n </div>\n </div>\n <AppSeparator class=\"margin-v--m\" />\n <div>\n <h2 class=\"margin-b--m\">{{ $t(\"entities.my_interests.hobbies\") }}</h2>\n <AppHobbiesPanel :editable=\"false\" :impersonated-as=\"employeeId\" form-mode=\"view\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport AppMyInterestsIdealLearningEditor from \"@/views/shared/my-interests/AppMyInterestsIdealLearningEditor.vue\";\nimport AppMyInterestsInterestEditor from \"@/views/shared/my-interests/AppMyInterestsInterestEditor.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport AppSeparator from \"@/components/AppSeparator.vue\";\nimport AppHobbiesPanel from \"@/components/AppHobbiesPanel.vue\";\nimport type { IdealLearning } from \"@/models/idealLearning\";\nimport type { Interest } from \"@/models/interest\";\nimport useEmployeeService from \"@/services/useEmployeeService\";\n\ninterface Props {\n employeeId: number;\n}\nconst props = defineProps<Props>();\n\nconst { getInterests, getIdealLearnings } = useEmployeeService();\n\nconst interests = ref<Interest[]>();\nconst idealLearnings = ref<IdealLearning[]>();\n\nonMounted(async () => {\n interests.value = await getInterests(props.employeeId);\n idealLearnings.value = await getIdealLearnings(props.employeeId);\n});\n</script>\n","<template>\n <AppPanel :padding-content=\"false\">\n <template #default>\n <div v-if=\"questionsInView.length > 0\">\n <div v-for=\"(item, index) in questionsInView\" :key=\"item.order\" class=\"row\" data-cy=\"ai-assistant-row\">\n <AIAssistantQuestion :item=\"item\" :order=\"index + 1 + (currentPage - 1) * 10\" :answer-enabled=\"false\" />\n </div>\n </div>\n <div v-else class=\"no-content\">\n <AppNoContentYet :text=\"$t('pages.ai_assistant.no.questions')\" />\n </div>\n </template>\n <template v-if=\"questionsInView.length > 0 && totalPages > 1\" #footer>\n <div class=\"navigation\">\n <AppButton\n :text=\"$t('buttons.previous')\"\n variant=\"secondary\"\n size=\"m\"\n :disabled=\"currentPage === 1\"\n data-cy=\"ai-assistant-prev\"\n @onclick=\"previousPage()\" />\n <AppTag :main-text=\"`${currentPage} / ${totalPages}`\" type=\"presence\" data-cy=\"ai-assistant-page\" :limited-size=\"true\" />\n <AppButton\n :text=\"$t('buttons.next')\"\n variant=\"secondary\"\n size=\"m\"\n :disabled=\"currentPage * pageSize >= totalItemsCount\"\n data-cy=\"ai-assistant-next\"\n @onclick=\"nextPage()\" />\n </div>\n </template>\n </AppPanel>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref, watch } from \"vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport AIAssistantQuestion from \"@/views/app/ai-assistant/components/AIAssistantQuestion.vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport type { Question } from \"@/models/question\";\nimport useEmployeeService from \"@/services/useEmployeeService\";\n\ninterface Props {\n employeeId: number;\n}\nconst props = defineProps<Props>();\n\nconst { getQuestions } = useEmployeeService();\n\nconst pageSize = 10;\n\nconst currentPage = ref<number>(0);\nconst totalPages = ref<number>(0);\nconst totalItemsCount = ref<number>(0);\nconst questionsInView = ref<Question[]>([]);\nconst questions = ref<Question[]>([]);\n\nconst previousPage = (): void => {\n if (currentPage.value > 1) {\n currentPage.value--;\n }\n};\n\nconst nextPage = (): void => {\n if (currentPage.value <= totalPages.value) {\n currentPage.value++;\n }\n};\n\nconst refreshQuestionsInView = (): void => {\n const initialItem = (currentPage.value - 1) * pageSize;\n const finalItem = initialItem + pageSize;\n questionsInView.value = questions.value.slice(initialItem, finalItem) || [];\n};\n\nwatch(currentPage, () => refreshQuestionsInView());\n\nonMounted(async () => {\n questions.value = await getQuestions(props.employeeId);\n totalItemsCount.value = questions.value.length || 0;\n currentPage.value = 1;\n totalPages.value = Math.ceil(totalItemsCount.value / pageSize);\n});\n</script>\n\n<style scoped lang=\"scss\">\n.header--questions {\n display: flex;\n flex-direction: row;\n gap: 30px;\n padding: var(--space-m);\n background-color: var(--color-ai-assistant-header-background);\n border-radius: var(--space-xs);\n\n &__text {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n}\n\n.row {\n padding: var(--space-s) 0 var(--space-s) 0;\n border-bottom: 1px solid var(--color-border);\n\n &:last-child {\n border-bottom: none;\n }\n}\n\n.no-content {\n padding: 0 var(--space-m) var(--space-m) var(--space-m);\n}\n\n.navigation {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n</style>\n","<template>\n <AppTab :tabs=\"tabs\" :tab-id=\"currentTab\" />\n</template>\n\n<script setup lang=\"ts\">\nimport AppTab, { type Tab } from \"@/components/AppTab.vue\";\nimport i18n from \"@/i18n\";\nimport { ref } from \"vue\";\n\nexport type EmployeeProfileTabIds = \"CurrentExperience\" | \"MyIdealJob\" | \"Interests\" | \"AIAssistant\";\n\ninterface Props {\n current: EmployeeProfileTabIds;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"tab-click\", tabId: EmployeeProfileTabIds) => void>();\n\nconst currentTab = ref<EmployeeProfileTabIds>(props.current);\n\nconst setCurrentTab = (tabId: EmployeeProfileTabIds) => {\n if (currentTab.value !== tabId) {\n currentTab.value = tabId;\n emit(\"tab-click\", tabId);\n }\n};\n\nconst tabs: Tab[] = [\n {\n text: i18n.global.t(\"pages.admin.dashboard.current_job.title\"),\n action: () => setCurrentTab(\"CurrentExperience\"),\n isChecked: props.current === \"CurrentExperience\",\n dataCy: \"ex-current-experience\",\n },\n {\n text: i18n.global.t(\"pages.admin.dashboard.ideal_job.title\"),\n action: () => setCurrentTab(\"MyIdealJob\"),\n isChecked: props.current === \"MyIdealJob\",\n dataCy: \"ex-my-ideal-job\",\n },\n {\n text: i18n.global.t(\"pages.admin.dashboard.interests.title\"),\n action: () => setCurrentTab(\"Interests\"),\n isChecked: props.current === \"Interests\",\n dataCy: \"ex-interests\",\n },\n {\n text: i18n.global.t(\"pages.admin.dashboard.ai_assistant.title\"),\n action: () => setCurrentTab(\"AIAssistant\"),\n isChecked: props.current === \"AIAssistant\",\n dataCy: \"ex-ai-assistant\",\n },\n];\n</script>\n","<template>\n <LayoutPage v-if=\"profileInfo\">\n <Teleport to=\"#header-button-container\">\n <AppIconButton :text=\"$t('shared.back')\" size=\"l\" icon=\"arrow-back\" @onclick=\"back\" />\n </Teleport>\n <AppProfileSummaryInformation v-if=\"profileSummaryInformation\" size=\"m\" :profile-information=\"profileSummaryInformation\" />\n <div class=\"margin-t--s margin-b--xl\">\n <EmployeeProfileNavigation :current=\"currentView\" @tab-click=\"currentView = $event\" />\n </div>\n <EmployeeCurrentExperience v-if=\"currentView === 'CurrentExperience'\" :profile-information=\"profileInfo\" />\n <EmployeeMyIdealJob v-if=\"currentView === 'MyIdealJob'\" :employee-id=\"employeeId\" />\n <EmployeeInterests v-if=\"currentView === 'Interests'\" :employee-id=\"employeeId\" />\n <EmployeeAIAssistant v-if=\"currentView === 'AIAssistant'\" :employee-id=\"employeeId\" />\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport router from \"@/router/router\";\nimport { useRoute, type RouteLocationRaw } from \"vue-router\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport AppIconButton from \"@/components/AppIconButton.vue\";\nimport EmployeeCurrentExperience from \"@/views/shared/employee/components/EmployeeCurrentExperience.vue\";\nimport EmployeeMyIdealJob from \"@/views/shared/employee/components/EmployeeMyIdealJob.vue\";\nimport EmployeeInterests from \"@/views/shared/employee/components/EmployeeInterests.vue\";\nimport EmployeeAIAssistant from \"@/views/shared/employee/components/EmployeeAIAssistant.vue\";\nimport EmployeeProfileNavigation, { type EmployeeProfileTabIds } from \"@/views/shared/employee/components/EmployeeProfileNavigation.vue\";\nimport AppProfileSummaryInformation from \"@/views/app/my-profile/components/shared/ProfileSummaryInformation.vue\";\nimport useEmployeeService from \"@/services/useEmployeeService\";\nimport type { ProfileSummaryInformation } from \"@/models/profileSummaryInformation\";\nimport type { ProfileInformation } from \"@/models/profileInformation\";\n\ninterface Props {\n backRoute?: string;\n backUrl?: string;\n}\nconst props = defineProps<Props>();\n\nconst route = useRoute();\nconst { getProfileInformation } = useEmployeeService();\n\nconst employeeId = ref<number>(parseInt(route.params.employeeId as string));\nconst profileInfo = ref<ProfileInformation>();\nconst profileSummaryInformation = ref<ProfileSummaryInformation>();\nconst currentView = ref<EmployeeProfileTabIds>(\"CurrentExperience\");\n\nconst back = async () => {\n const { backUrl = props.backUrl, backRoute = props.backRoute ?? \"default-app\", ...params } = route.query;\n const targetRoute: RouteLocationRaw = backUrl ? { path: backUrl as string } : { name: backRoute as string };\n\n targetRoute.query = params;\n await router.push(targetRoute);\n};\n\nonMounted(async () => {\n profileInfo.value = await getProfileInformation(employeeId.value);\n\n profileSummaryInformation.value = {\n employeeId: profileInfo.value.id,\n firstName: profileInfo.value.firstName,\n lastName: profileInfo.value.lastName,\n currentJobExperience: profileInfo.value.currentJobExperience?.title,\n pictureName: profileInfo.value.pictureName,\n };\n});\n</script>\n","<template>\n <div>\n <h3>{{ $t(\"pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.title\") }}</h3>\n <div class=\"levels margin-t--s\" data-cy=\"question-levels\">\n <AppInputText\n v-model=\"lowLevelText\"\n :label=\"$t('pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.low_level')\"\n :placeholder=\"$t('pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.low_level')\"\n :error=\"lowLevelTextError\"\n :maxlength=\"mediumTextLength\"\n class=\"levels__item\"\n @update:model-value=\"emitUpdate\" />\n <AppInputText\n v-model=\"mediumLevelText\"\n :label=\"$t('pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.medium_level')\"\n :placeholder=\"$t('pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.medium_level')\"\n :error=\"mediumLevelTextError\"\n :maxlength=\"mediumTextLength\"\n class=\"levels__item\"\n @update:model-value=\"emitUpdate\" />\n <AppInputText\n v-model=\"highLevelText\"\n :label=\"$t('pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.high_level')\"\n :placeholder=\"$t('pages.admin.ai_assistant.create_new_survey_form.question_configure.levels.high_level')\"\n :error=\"highLevelTextError\"\n :maxlength=\"mediumTextLength\"\n class=\"levels__item\"\n @update:model-value=\"emitUpdate\" />\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { onMounted } from \"vue\";\nimport { useField } from \"vee-validate\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport { mediumTextLength } from \"@/constants/restrictions\";\nimport type { QuestionLevel } from \"@/models/questionLevel\";\n\ninterface Props {\n levels?: QuestionLevel;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"levelsUpdated\", value: QuestionLevel) => void>();\n\nconst { value: lowLevelText, errorMessage: lowLevelTextError } = useField<string>(\"levels.lowLevelText\");\nconst { value: mediumLevelText, errorMessage: mediumLevelTextError } = useField<string>(\"levels.mediumLevelText\");\nconst { value: highLevelText, errorMessage: highLevelTextError } = useField<string>(\"levels.highLevelText\");\n\nonMounted(async () => {\n if (props.levels) {\n lowLevelText.value = props.levels.lowLevelText;\n mediumLevelText.value = props.levels.mediumLevelText;\n highLevelText.value = props.levels.highLevelText;\n }\n});\n\nconst emitUpdate = () => {\n const value: QuestionLevel = {\n lowLevelText: lowLevelText.value,\n mediumLevelText: mediumLevelText.value,\n highLevelText: highLevelText.value,\n };\n emit(\"levelsUpdated\", value);\n};\n</script>\n<style scoped lang=\"scss\">\n.levels {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n gap: var(--space-m);\n\n &__item {\n flex: 1;\n overflow: hidden;\n }\n}\n</style>\n","<template>\n <div class=\"configurer-option\">\n <AppInputText\n v-model=\"title\"\n class=\"configurer-option__input\"\n :label=\"$t('pages.admin.ai_assistant.create_new_survey_form.question_configure.option.title', { optionIndex: index })\"\n :placeholder=\"$t('pages.admin.ai_assistant.create_new_survey_form.question_configure.option.placeholder')\"\n :error=\"titleError\"\n :maxlength=\"mediumTextLength\"\n @update:model-value=\"emitUpdate\" />\n <AppIconOnlyButton\n icon=\"minus-circle\"\n data-cy=\"delete-option\"\n size=\"xxl\"\n :as-link=\"canBeDeleted\"\n :disabled=\"!canBeDeleted\"\n @click=\"deleteOption\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { onMounted } from \"vue\";\nimport { useField } from \"vee-validate\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppIconOnlyButton from \"@/components/AppIconOnlyButton.vue\";\nimport { mediumTextLength } from \"@/constants/restrictions\";\nimport type { QuestionOption } from \"@/models/questionOption\";\n\ninterface Props {\n option: QuestionOption;\n index: number;\n canBeDeleted: boolean;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n (e: \"optionUpdated\", value: QuestionOption): void;\n (e: \"optionDeleted\", index: number): void;\n}>();\n\nconst { value: title, errorMessage: titleError } = useField<string>(`options[${props.index}].title`);\n\nconst emitUpdate = () => {\n const newOptionState: QuestionOption = { ...props.option, title: title.value };\n emit(\"optionUpdated\", newOptionState);\n};\nconst deleteOption = () => emit(\"optionDeleted\", props.index);\n\nonMounted(() => (title.value = props.option.title));\n</script>\n<style scoped lang=\"scss\">\n.configurer-option {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--space-m);\n\n &__input {\n flex-grow: 1;\n }\n}\n</style>\n","<template>\n <div>\n <h3>{{ $t(\"pages.admin.ai_assistant.create_new_survey_form.question_configure.options.title\") }}</h3>\n <p class=\"margin-t--s margin-b--m\">\n {{ $t(\"pages.admin.ai_assistant.create_new_survey_form.question_configure.options.description\") }}\n </p>\n <div class=\"container\">\n <div :key=\"options.length\" class=\"options margin-t--s\">\n <div v-for=\"(option, index) in options\" :key=\"option.optionId\" class=\"options__item\">\n <QuestionCreationWizardConfigurerOption\n :option=\"option\"\n :index=\"index\"\n :can-be-deleted=\"removeAllowed\"\n @option-deleted=\"deleteOption\"\n @option-updated=\"updateOption\" />\n </div>\n </div>\n <div class=\"actions\">\n <AppIconOnlyButton v-if=\"addAllowed\" icon=\"plus-circle\" data-cy=\"add-option\" size=\"xxl\" @click=\"addOption\" />\n </div>\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, onMounted } from \"vue\";\nimport AppIconOnlyButton from \"@/components/AppIconOnlyButton.vue\";\nimport QuestionCreationWizardConfigurerOption from \"@/views/admin/ai-assistant/components/wizard/configurer/QuestionCreationWizardConfigurerOption.vue\";\nimport { maximumNumberOfOptionsInQuestion } from \"@/constants/restrictions\";\nimport type { QuestionOption } from \"@/models/questionOption\";\nimport { compareNumbers } from \"@/utils/numberUtils\";\n\ninterface Props {\n options: QuestionOption[];\n numberOfOptionsRequired: number;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"optionsUpdated\", value: QuestionOption[]) => void>();\n\nconst addAllowed = computed(() => props.options.length < maximumNumberOfOptionsInQuestion);\nconst removeAllowed = computed(() => props.numberOfOptionsRequired < props.options.length);\nconst emitUpdated = (newOptions: QuestionOption[]) => emit(\"optionsUpdated\", newOptions);\n\nconst updateOption = (option: QuestionOption) => {\n const optionIndex = props.options.findIndex((opt) => opt.optionId === option.optionId);\n if (optionIndex < 0) {\n return;\n }\n const newOptions = [...props.options];\n newOptions[optionIndex] = option;\n emitUpdated(newOptions);\n};\nconst deleteOption = (index: number): void => {\n if (!removeAllowed.value) {\n return;\n }\n const newOptions = [...props.options];\n newOptions.splice(index, 1);\n emitUpdated(newOptions);\n};\nconst addOption = (): void => {\n const newOptions = [...props.options];\n const nextId = newOptions.map((opt) => opt.optionId).sort((a, b) => compareNumbers(a, b, false))[0] + 1;\n newOptions.push({ optionId: nextId, title: \"\" });\n emitUpdated(newOptions);\n};\n\nonMounted(() => {\n if (props.options.length > 0) {\n return;\n }\n const newOptions = [\n {\n optionId: 0,\n title: \"\",\n },\n {\n optionId: 1,\n title: \"\",\n },\n ];\n emitUpdated(newOptions);\n});\n</script>\n<style scoped lang=\"scss\">\n.container {\n display: flex;\n flex-direction: row;\n gap: var(--space-m);\n justify-content: space-between;\n}\n\n.options {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: var(--space-m);\n\n &__item {\n flex: 0 0 30%;\n }\n}\n.actions {\n flex: 0 0 26px;\n margin-bottom: 36px;\n align-self: end;\n}\n</style>\n","import { string as yupString, array as yupArray } from \"yup\";\nimport type { Question } from \"@/models/question\";\nimport { QuestionType } from \"@/models/questionType\";\nimport useFormSchema from \"@/services/useFormSchema\";\nimport type { FormValidator } from \"@/models/formValidator\";\nimport { useForm } from \"vee-validate\";\n\nconst { yupObject, stringSchema, inputRequiredText } = useFormSchema();\n\ninterface UseQuestionFormReturn {\n getQuestionForm: (question: Question) => FormValidator;\n}\n\nexport default (): UseQuestionFormReturn => {\n const getQuestionForm = (question: Question): FormValidator => {\n const levelTextSchema = () =>\n yupString().test(\"required\", inputRequiredText(), (value) => question.type !== QuestionType.Level || stringSchema().isValid(value));\n\n const formScheme = yupObject({\n title: stringSchema(),\n options: yupArray().of(\n yupObject({\n title: stringSchema(),\n })\n ),\n levels: yupObject({\n lowLevelText: levelTextSchema(),\n mediumLevelText: levelTextSchema(),\n highLevelText: levelTextSchema(),\n }),\n });\n return useForm({ validationSchema: formScheme });\n };\n\n return { getQuestionForm };\n};\n","<template>\n <div class=\"question-wizard-configurer\" data-cy=\"question-wizard-configurer\">\n <h2 class=\"margin-t--0 margin-v--s\">\n {{ $t(`pages.admin.ai_assistant.create_new_survey_form.question.${modelValueType}.title`) }}\n </h2>\n <p class=\"question-wizard-configurer__guide\">\n {{ $t(`pages.admin.ai_assistant.create_new_survey_form.question.${modelValueType}.guide`) }}\n </p>\n <h3 class=\"margin-t--l margin-b--m\">\n {{ $t(`pages.admin.ai_assistant.create_new_survey_form.question.${modelValueType}.input.title`) }}\n </h3>\n <AppInputText\n v-model=\"title\"\n :autofocus=\"true\"\n :placeholder=\"$t(`pages.admin.ai_assistant.create_new_survey_form.question.${modelValueType}.input.title`)\"\n :maxlength=\"mediumTextLength\"\n :error=\"titleError\"\n @update:model-value=\"titleUpdate\" />\n <QuestionCreationWizardConfigurerOptions\n v-if=\"hasOptions\"\n :options=\"options ?? []\"\n :number-of-options-required=\"2\"\n :show-all-errors=\"showAllErrors\"\n data-cy=\"question-options\"\n @options-updated=\"optionsUpdated\" />\n <QuestionCreationWizardConfigurerLevel\n v-if=\"question.type === QuestionType.Level\"\n :levels=\"levels\"\n data-cy=\"question-levels\"\n @levels-updated=\"levelsUpdated\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { useField } from \"vee-validate\";\nimport { onMounted, computed, ref } from \"vue\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport { mediumTextLength } from \"@/constants/restrictions\";\nimport type { FormMode } from \"@/models/formMode\";\nimport type { QuestionLevel } from \"@/models/questionLevel\";\nimport type { QuestionOption } from \"@/models/questionOption\";\nimport { QuestionType } from \"@/models/questionType\";\nimport QuestionCreationWizardConfigurerLevel from \"@/views/admin/ai-assistant/components/wizard/configurer/QuestionCreationWizardConfigurerLevel.vue\";\nimport QuestionCreationWizardConfigurerOptions from \"@/views/admin/ai-assistant/components/wizard/configurer/QuestionCreationWizardConfigurerOptions.vue\";\nimport useQuestionFormSchema from \"@/views/admin/ai-assistant/services/useQuestionFormSchema\";\nimport type { Question } from \"@/models/question\";\n\ninterface Props {\n question: Question;\n mode: FormMode;\n showAllErrors: boolean;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"questionUpdated\", value: Question, isValid: boolean) => void>();\n\nconst modelValueType = computed<string>(() => props.question.type.toLowerCase());\n\nconst { getQuestionForm } = useQuestionFormSchema();\nconst form = getQuestionForm(props.question);\n\nconst hasOptions = computed<boolean>(\n () => props.question.type === QuestionType.SingleSelection || props.question.type === QuestionType.MultipleSelection\n);\n\nconst { value: title, errorMessage: titleError } = useField<string>(\"title\");\nconst options = ref<QuestionOption[] | undefined>(props.question.options);\nconst levels = ref<QuestionLevel | undefined>(props.question.levels);\n\nonMounted(async () => {\n title.value = props.question.title;\n\n const validateWhenMounted: boolean = props.showAllErrors || props.mode === \"edit\";\n if (!validateWhenMounted) {\n form.resetForm();\n return;\n }\n await emitUpdate(props.question);\n});\n\nconst titleUpdate = () => refreshState({ title: title.value });\nconst optionsUpdated = (newOptions: QuestionOption[]) => refreshState({ options: newOptions });\nconst levelsUpdated = (newLevels: QuestionLevel) => refreshState({ levels: newLevels });\nconst refreshState = async (questionChanged: Partial<Question>): Promise<void> => {\n const question = {\n ...props.question,\n ...questionChanged,\n } as Question;\n options.value = question.options;\n levels.value = question.levels;\n await emitUpdate(question);\n};\nconst emitUpdate = async (question: Question) => {\n const resultValidation = await form.validate();\n emit(\"questionUpdated\", question, resultValidation.valid);\n};\n</script>\n<style lang=\"scss\" scoped>\n.question-wizard-configurer {\n background-color: var(--color-card);\n &__guide {\n background: var(--color-neutral-200);\n padding: var(--space-m);\n border-radius: var(--default-border-radius);\n }\n}\n</style>\n","<template>\n <AppWizardPath\n :steps=\"steps\"\n :selected-step=\"selectedStep\"\n name-prefix=\"pages.admin.ai_assistant.create_new_survey_form.question.path\"\n @step-click=\"stepClick\" />\n</template>\n<script setup lang=\"ts\">\nimport AppWizardPath from \"@/components/AppWizardPath.vue\";\n\ninterface Props {\n selectedStep: number;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"stepClick\", step: number) => void>();\n\nconst steps = [\n { number: 1, name: \"select_question_type\" },\n { number: 2, name: \"configure_question\" },\n { number: 3, name: \"save_question\" },\n];\n\nconst stepClick = (step: number) => emit(\"stepClick\", step);\n</script>\n","<template>\n <Component :is=\"previewerComponent\" class=\"question-previewer\" :item=\"item\" />\n</template>\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport type { Question } from \"@/models/question\";\nimport { getPreviewerComponentFor } from \"@/views/app/ai-assistant/utils/questionHelper\";\n\ninterface Props {\n item: Question;\n}\nconst props = defineProps<Props>();\n\nconst previewerComponent = computed(() => getPreviewerComponentFor(props.item.type));\n</script>\n<style lang=\"scss\" scoped>\n.question-previewer {\n padding: var(--size-m);\n pointer-events: none;\n background-color: var(--color-card);\n border: 1px solid var(--color-border);\n border-radius: var(--default-border-radius);\n}\n</style>\n","<template>\n <div\n class=\"question-wizard-type-item\"\n :class=\"{\n 'question-wizard-type-item--selected': selected,\n 'question-wizard-type-item--disabled': disabled,\n }\"\n :data-cy=\"`question-option-${item.resultingType}`\">\n <div class=\"header\">{{ item.title }}</div>\n <div class=\"content text\">\n {{ item.description }}\n </div>\n <div class=\"preview\">\n <AppSkillRange v-if=\"item.resultingType === QuestionType.Level\" />\n <AppRadioButtonList\n v-if=\"item.resultingType === QuestionType.SingleSelection\"\n v-model=\"sampleOptions[0]\"\n :options=\"sampleOptions\"\n :no-gap=\"true\" />\n <div v-if=\"item.resultingType === QuestionType.MultipleSelection\">\n <AppCheckbox\n v-for=\"option in sampleOptions\"\n :key=\"option.optionId\"\n v-model=\"sampleSelection\"\n :text=\"option.title\"\n class=\"margin-b--xs\" />\n </div>\n <AppInputTextArea v-if=\"item.resultingType === QuestionType.LongText\" label=\"Long answer\" />\n <AppInputText v-if=\"item.resultingType === QuestionType.ShortText\" label=\"Short answer\" />\n <AppInputTags v-if=\"item.resultingType === QuestionType.Tags\" v-model=\"sampleTags\" :readonly=\"true\" label=\"Cities\" />\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport type { Ref } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppSkillRange from \"@/components/AppSkillRange.vue\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppInputTextArea from \"@/components/AppInputTextArea.vue\";\nimport AppInputTags from \"@/components/AppInputTags.vue\";\nimport AppRadioButtonList from \"@/components/AppRadioButtonList.vue\";\nimport AppCheckbox from \"@/components/AppCheckbox.vue\";\nimport { QuestionType } from \"@/models/questionType\";\nimport type { QuestionTypeItem } from \"@/views/admin/ai-assistant/models/questionTypeItem\";\n\ninterface Props {\n item: QuestionTypeItem;\n selected: boolean;\n disabled: boolean;\n}\ndefineProps<Props>();\n\nconst sampleOptions = ref([\n { optionId: 1, title: i18n.global.t(\"pages.admin.ai_assistant.create_new_survey_form.preview.option_samples.sample1\") },\n { optionId: 2, title: i18n.global.t(\"pages.admin.ai_assistant.create_new_survey_form.preview.option_samples.sample2\") },\n]);\n\nconst sampleTags: Ref<string[]> = ref([i18n.global.t(\"pages.admin.ai_assistant.create_new_survey_form.preview.tag_samples.sample1\")]);\nconst sampleSelection: Ref<boolean> = ref(true);\n</script>\n<style lang=\"scss\" scoped>\n.question-wizard-type-item {\n display: flex;\n flex-direction: column;\n cursor: pointer;\n background-color: var(--color-card);\n border-radius: 8px;\n box-shadow: 0 8px 24px rgba(26, 26, 26, 0.04);\n\n &--selected {\n outline: 3px solid var(--color-primary-accent1);\n border-color: transparent;\n }\n\n &--disabled {\n cursor: not-allowed;\n }\n}\n\n.header {\n padding: var(--size-xs) var(--size-s);\n font-size: 1.4rem;\n font-weight: var(--font-bold);\n background-color: var(--color-card--accent1);\n border-top-left-radius: 6px;\n border-top-right-radius: 6px;\n color: var(--color-neutral-700);\n}\n\n.content {\n padding: var(--size-s) var(--size-s) 0 var(--size-s);\n flex: 1;\n}\n\n.preview {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: center;\n margin: var(--size-s);\n pointer-events: none;\n background: var(--color-card--dark);\n border-radius: var(--default-border-radius);\n padding: var(--size-xs) var(--size-s);\n filter: grayscale(100%);\n align-items: center;\n min-height: 13rem;\n}\n</style>\n","<template>\n <AppAutomaticModalOpener :modal-config=\"modalConfig\" data-cy=\"question-wizard\" :disable-key-enter=\"true\" :state=\"currentStep.toString()\">\n <div class=\"question-wizard__content\">\n <div class=\"padding-b--xl\">\n <QuestionWizardPath :selected-step=\"currentStep\" @step-click=\"stepClick\" />\n </div>\n <div v-if=\"currentStep === 1\" class=\"question-wizard__content\" data-cy=\"step-1\">\n <div class=\"grid--two-columns grid--three-columns@large grid--narrow-xy-axis\">\n <QuestionWizardTypeItemOption\n v-for=\"questionTypeItem in questionTypeItems\"\n :key=\"questionTypeItem.resultingType\"\n :selected=\"questionEditable.type === questionTypeItem.resultingType\"\n :disabled=\"mode === 'edit'\"\n :item=\"questionTypeItem\"\n @click=\"typeSelect(questionTypeItem.resultingType)\" />\n </div>\n </div>\n <div v-if=\"currentStep === 2\" class=\"question-wizard__content\" data-cy=\"step-2\">\n <QuestionWizardConfigurer\n :question=\"questionEditable\"\n :mode=\"mode\"\n :show-all-errors=\"showAllErrors\"\n @question-updated=\"editedQuestionUpdated\" />\n </div>\n <div v-if=\"currentStep === 3\" class=\"question-wizard__content\" data-cy=\"step-3\">\n <QuestionWizardPreviewer :question=\"questionEditable\" :is-question-valid=\"isQuestionValid\" />\n </div>\n </div>\n <template #actions>\n <div class=\"question-wizard__actions\">\n <AppButton\n :text=\"$t('buttons.previous')\"\n variant=\"secondary\"\n size=\"m\"\n :disabled=\"currentStep === 1\"\n data-cy=\"prev\"\n @onclick=\"prev()\" />\n <AppButton\n v-if=\"currentStep !== 3\"\n :text=\"$t('buttons.next')\"\n variant=\"secondary\"\n size=\"m\"\n :disabled=\"currentStep === 3\"\n data-cy=\"next\"\n @onclick=\"next()\" />\n <AppButton\n v-if=\"currentStep === 3 && isQuestionValid\"\n :text=\"$t('buttons.save')\"\n variant=\"primary\"\n size=\"m\"\n data-cy=\"save\"\n @onclick=\"save()\" />\n </div>\n </template>\n </AppAutomaticModalOpener>\n</template>\n<script setup lang=\"ts\">\nimport i18n from \"@/i18n\";\nimport { onMounted, ref } from \"vue\";\nimport { QuestionType } from \"@/models/questionType\";\nimport type { QuestionTypeItem } from \"@/views/admin/ai-assistant/models/questionTypeItem\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport QuestionWizardConfigurer from \"@/views/admin/ai-assistant/components/wizard/QuestionWizardConfigurer.vue\";\nimport QuestionWizardPath from \"@/views/admin/ai-assistant/components/wizard/QuestionWizardPath.vue\";\nimport QuestionWizardPreviewer from \"@/views/admin/ai-assistant/components/wizard/QuestionWizardPreviewer.vue\";\nimport QuestionWizardTypeItemOption from \"@/views/admin/ai-assistant/components/wizard/QuestionWizardTypeItemOption.vue\";\nimport type { FormMode } from \"@/models/formMode\";\nimport type { Question } from \"@/models/question\";\nimport useQuestionService from \"@/services/useQuestionService\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport type { ModalBase } from \"@/components/modal/models\";\n\nconst { createQuestion, updateQuestion } = useQuestionService();\n\ninterface Props {\n question?: Question;\n mode: FormMode;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n question: () =>\n ({\n id: 0,\n order: 0,\n title: \"\",\n type: QuestionType.Level,\n showInDashboard: false,\n } as Question),\n});\n\ninterface Emits {\n (e: \"close\"): void;\n (e: \"saved\", question: Question): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst questionTypes: QuestionType[] = [\n QuestionType.Level,\n QuestionType.SingleSelection,\n QuestionType.MultipleSelection,\n QuestionType.LongText,\n QuestionType.ShortText,\n QuestionType.Tags,\n];\n\nconst questionTypeItems: QuestionTypeItem[] = questionTypes.map((t) => ({\n resultingType: t,\n title: i18n.global.t(`pages.admin.ai_assistant.create_new_survey_form.question.${t.toLowerCase()}.title`),\n description: i18n.global.t(`pages.admin.ai_assistant.create_new_survey_form.question.${t.toLowerCase()}.description`),\n}));\n\nconst questionEditable = ref<Question>({ ...props.question });\nconst currentStep = ref<number>(1);\nconst showAllErrors = ref<boolean>(false);\nconst isQuestionValid = ref<boolean>(false);\n\nconst next = async (): Promise<void> => {\n if (currentStep.value < 3) {\n currentStep.value++;\n }\n if (currentStep.value === 3) {\n showAllErrors.value = true;\n }\n};\nconst prev = (): void => {\n if (currentStep.value > 1) {\n currentStep.value--;\n }\n};\nconst editedQuestionUpdated = (newState: Question, isValid: boolean) => {\n questionEditable.value = newState;\n isQuestionValid.value = isValid;\n};\nconst save = async (): Promise<void> => {\n const response: Question = await updateOrCreateQuestion();\n emit(\"saved\", response);\n emit(\"close\");\n};\nconst updateOrCreateQuestion = (): Promise<Question> => {\n if (props.mode === \"edit\") {\n return updateQuestion(questionEditable.value);\n }\n return createQuestion(questionEditable.value);\n};\n\nconst stepClick = (step: number): void => {\n currentStep.value = step;\n};\n\nconst typeSelect = (value: QuestionType): void => {\n if (props.mode === \"edit\") {\n return;\n }\n questionEditable.value = { ...props.question, type: value };\n showAllErrors.value = false;\n};\n\nconst advanceStepIsEditMode = (): void => {\n if (props.mode === \"edit\") {\n currentStep.value++;\n }\n};\n\nconst modalConfig: ModalBase = {\n title: i18n.global.t(\"pages.admin.ai_assistant.create_new_survey_form.title\"),\n variant: \"large\",\n closeCallback: () => emit(\"close\"),\n};\n\nonMounted(() => advanceStepIsEditMode());\n</script>\n<style lang=\"scss\" scoped>\n@import \"@/styles/utils/responsive\";\n\n.question-wizard {\n &__content {\n padding: 0 1rem;\n }\n &__actions {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n width: 100%;\n }\n}\n</style>\n","<template>\n <div class=\"question-order-field\" :class=\"{ 'question-order-field--with-order': customProps.allowSort }\">\n <div>\n <AppIconOnlyButton\n v-if=\"customProps.allowSort\"\n v-show=\"customProps.canDescend(item)\"\n icon=\"chevron-down\"\n data-cy=\"descend-question\"\n :title=\"$t('pages.admin.ai_assistant.questions.grid.descend')\"\n @click=\"descend\" />\n </div>\n <span :class=\"`question-order-field__order-number${customProps.allowSort ? '--sort' : ''}`\">{{ item.order }}</span>\n <AppIconOnlyButton\n v-if=\"customProps.allowSort\"\n v-show=\"customProps.canAscend(item)\"\n icon=\"chevron-up\"\n data-cy=\"ascend-question\"\n :title=\"$t('pages.admin.ai_assistant.questions.grid.ascend')\"\n @click=\"ascend\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport AppIconOnlyButton from \"@/components/AppIconOnlyButton.vue\";\nimport type { Question } from \"@/models/question\";\nimport type { QuestionOrderCustomProps } from \"@/views/admin/ai-assistant/components/grid/QuestionOrderCustomProps\";\n\ninterface Props {\n item: Question;\n customProps: QuestionOrderCustomProps;\n}\nconst props = defineProps<Props>();\n\nconst ascend = () => props.customProps.ascend(props.item);\nconst descend = () => props.customProps.descend(props.item);\n</script>\n\n<style lang=\"scss\">\n.question-order-field {\n display: grid;\n justify-content: right;\n grid-template-columns: 2.8rem;\n padding-right: 1rem;\n &--with-order {\n grid-template-columns: 1.6rem 2.8rem 1.6rem;\n }\n &__order-number {\n text-align: right;\n &--sort {\n text-align: center;\n }\n }\n}\n</style>\n","<template>\n <span :title=\"title\">{{ (item.employeeGroups ?? []).length }}</span>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport i18n from \"@/i18n\";\nimport type { Question } from \"@/models/question\";\nimport type { QuestionGroupsColumnCustomProps } from \"@/views/admin/ai-assistant/components/grid/QuestionGroupsColumnCustomProps\";\nimport { concatWithAnd } from \"@/utils/stringUtils\";\n\ninterface Props {\n item: Question;\n customProps?: QuestionGroupsColumnCustomProps;\n}\nconst props = defineProps<Props>();\n\nconst title = computed(() => {\n let groups = props.item.employeeGroups;\n\n if (props.item.employeeGroups?.length && props.customProps && props.customProps.allowedGroupNames?.length) {\n groups = props.item.employeeGroups?.filter((eg) => props.customProps?.allowedGroupNames?.includes(eg));\n const difference = (props.item.employeeGroups?.length || 0) - (groups?.length || 0);\n if (!groups?.length) {\n groups?.push(\n i18n.global.t(\"pages.admin.ai_assistant.questions.grid.groups.tooltip.groups\", { n: props.item.employeeGroups?.length })\n );\n } else if (difference > 0) {\n groups?.push(i18n.global.t(\"pages.admin.ai_assistant.questions.grid.groups.tooltip.more_groups\", { n: difference }));\n }\n }\n\n return concatWithAnd(groups);\n});\n</script>\n","export enum QuestionStatus {\n Published = \"Published\",\n Unpublished = \"Unpublished\",\n}\n","<template>\n <div class=\"accordion-panel\" :class=\"classes\">\n <div class=\"accordion-panel__header\" @click=\"toggle\">\n <div class=\"accordion-panel__title text--m text--bold text--ellipsis\">{{ title }}</div>\n <div v-if=\"!disabled\" class=\"accordion-panel__expander\">\n <span class=\"text icon text--xxl\" :class=\"`icon-${icon}`\"></span>\n </div>\n <slot v-else name=\"disabled-info\"></slot>\n </div>\n <div v-if=\"expanded\" class=\"accordion-panel__content\">\n <slot></slot>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\n\ninterface Props {\n title: string;\n disabled?: boolean;\n icon?: string;\n}\nconst props = withDefaults(defineProps<Props>(), { icon: \"chevron-down\" });\n\nconst expanded = ref<boolean>(false);\nconst classes = computed(() => ({\n expanded: expanded.value,\n disabled: props.disabled,\n}));\n\nconst toggle = () => !props.disabled && (expanded.value = !expanded.value);\n</script>\n\n<style lang=\"scss\" scoped>\n.accordion-panel {\n margin-bottom: var(--space-xs);\n\n &__header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n padding: var(--space-xs) var(--space-s);\n border-radius: 4px;\n height: 2.875em;\n cursor: pointer;\n background-color: var(--color-accordion-panel-header-background);\n\n .expanded & {\n background-color: var(--color-accordion-panel-header-background--expanded);\n }\n\n .disabled & {\n cursor: default;\n }\n }\n\n &__expander {\n rotate: 0deg;\n transition: rotate 0.3s ease-in-out;\n\n span {\n color: var(--color-accordion-panel-expander);\n }\n\n .expanded & {\n rotate: 180deg;\n }\n }\n\n &__title {\n color: var(--color-accordion-panel-title);\n\n .disabled & {\n color: var(--color-accordion-panel-title--disabled);\n }\n }\n\n &__content {\n margin-top: var(--space-xs);\n padding: var(--space-s);\n display: flex;\n flex-direction: row;\n gap: var(--space-s);\n }\n}\n</style>\n","<template>\n <AppAutomaticModalOpener :modal-config=\"modalConfig\" :overflow=\"true\">\n <div class=\"question-answers\">\n <AppGenericFilter\n class=\"margin-b--m\"\n :placeholder=\"$t('shared.question_answers.search.placeholder')\"\n @filter-changed=\"filterChanged\" />\n <QuestionAnswersStatistics :data=\"data\" class=\"margin-b--m\" />\n <AppPanel :border=\"false\" :padding-content=\"false\" class=\"question-answers__container\">\n <template v-for=\"item of filteredItems\" :key=\"item.firstName + item.lastName\">\n <AppAccordionPanel :title=\"getFullName(item)\" :disabled=\"!item.text\">\n <div>{{ item.text }}</div>\n <template #disabled-info>\n <AppTag :main-text=\"$t('shared.question_answers.no_answer')\" type=\"accordion\" />\n </template>\n </AppAccordionPanel>\n </template>\n </AppPanel>\n </div>\n </AppAutomaticModalOpener>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport AppGenericFilter from \"@/components/AppGenericFilter.vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport AppAccordionPanel from \"@/components/accordion/AppAccordionPanel.vue\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport QuestionAnswersStatistics from \"@/views/shared/questions/QuestionAnswersStatistics.vue\";\nimport type { ModalBase } from \"@/components/modal/models\";\nimport { QuestionEmployeeAnswer, QuestionWithAnswers } from \"@/models/questionAnswers\";\nimport { containsInsensitive } from \"@/utils/stringUtils\";\n\nconst emit = defineEmits<(e: \"closed\") => void>();\n\ninterface Props {\n title: string;\n data: QuestionWithAnswers;\n}\nconst props = defineProps<Props>();\n\nconst searchText = ref<string>(\"\");\nconst filteredItems = computed(() =>\n props.data.answers.filter((item) =>\n searchText.value ? containsInsensitive(getFullName(item), searchText.value) || containsInsensitive(item.text, searchText.value) : item\n )\n);\n\nconst close = () => emit(\"closed\");\n\nconst filterChanged = (newSearch: string) => (searchText.value = newSearch);\n\nconst getFullName = ({ firstName, lastName }: QuestionEmployeeAnswer) =>\n i18n.global.t(\"shared.employee.full_name\", { firstName, lastName });\n\nconst modalConfig: ModalBase = {\n title: i18n.global.t(\"shared.question_answers.title\", { text: props.title }),\n variant: \"large\",\n showCancelToClose: true,\n cancelText: i18n.global.t(\"shared.close\"),\n onClosed: close,\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.question-answers {\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n height: 100%;\n\n &__container {\n display: flex;\n flex-direction: column;\n flex-basis: 0;\n flex-grow: 1;\n overflow-y: auto;\n }\n}\n</style>\n","<template>\n <div class=\"question-kpi-data\">\n <span class=\"text text--bold\" :title=\"kpiInfo.answeredCount.toLocaleString()\">\n {{ `${$t(\"pages.admin.ai_assistant.questions.employee_answered\")}: ${kpiInfo.answeredPercentage.toLocaleString()}%` }}\n </span>\n <Component :is=\"kpiComponent\" :series=\"series\" :series-percentage=\"seriesPercentage\" :labels=\"labels\" />\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport i18n from \"@/i18n\";\nimport type { QuestionKpiInfo } from \"@/models/questionKpi\";\nimport { type Component, computed } from \"vue\";\nimport { getQuestionKPIComponentFor } from \"@/views/app/ai-assistant/utils/questionHelper\";\n\ninterface Props {\n kpiInfo: QuestionKpiInfo;\n}\nconst props = defineProps<Props>();\nconst kpiComponent = computed<Component>(() => getQuestionKPIComponentFor(props.kpiInfo.type));\n\nconst series = props.kpiInfo.options.map((option) => option.answeredCount);\nconst seriesPercentage = props.kpiInfo.options.map((option) => option.answeredPercentage);\nconst labels = props.kpiInfo.options.map((option) =>\n option.isOthersSummary ? i18n.global.t(\"pages.admin.ai_assistant.questions.othersSummary\") : option.title\n);\n</script>\n<style scoped lang=\"scss\">\n.question-kpi-data {\n display: flex;\n flex-direction: column;\n place-items: center;\n justify-content: center;\n}\n</style>\n","<template>\n <AppAutomaticModalOpener :modal-config=\"modalConfig\" :overflow=\"false\">\n <QuestionKpiData v-if=\"data.answeredCount > 0\" :kpi-info=\"data\" class=\"question-kpi\" />\n <AppNoContentYet v-else :text=\"$t('shared.question_kpi.no_answers')\" class=\"question-kpi-empty\" />\n <template #actions>\n <AppButton :text=\"$t('shared.close')\" variant=\"secondary\" size=\"m\" data-cy=\"cancel\" @onclick=\"close\" />\n <AppButton :text=\"buttonText\" :icon=\"buttonIcon\" variant=\"primary\" size=\"m\" data-cy=\"update-kpi-status\" @onclick=\"updateKpiStatus\" />\n </template>\n </AppAutomaticModalOpener>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport QuestionKpiData from \"@/views/admin/ai-assistant/components/kpis/QuestionKpiData.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport { Question } from \"@/models/question\";\nimport { QuestionKpiInfo } from \"@/models/questionKpi\";\nimport type { ModalBase } from \"@/components/modal/models\";\n\ninterface Emits {\n (e: \"closed\"): void;\n (e: \"updateKpiStatus\", question: Question): void;\n}\nconst emit = defineEmits<Emits>();\n\ninterface Props {\n question: Question;\n data: QuestionKpiInfo;\n}\nconst props = defineProps<Props>();\n\nconst buttonText = ref<string>(i18n.global.t(props.question.showInDashboard ? \"shared.question_kpi.unpin\" : \"shared.question_kpi.pin\"));\nconst buttonIcon = ref<string | undefined>(props.question.showInDashboard ? undefined : \"pin-off\");\n\nconst close = () => emit(\"closed\");\nconst updateKpiStatus = () => emit(\"updateKpiStatus\", props.question);\n\nconst modalConfig: ModalBase = {\n title: i18n.global.t(\"shared.question_answers.title\", { text: props.data.title }),\n variant: \"adaptive\",\n onClosed: close,\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.question-kpi {\n padding: 3rem 0 2rem;\n}\n.question-kpi-empty {\n display: flex;\n margin: 6rem 10rem 6rem;\n}\n</style>\n","<template>\n <div>\n <AppTable\n :columns=\"columns\"\n :items=\"questions\"\n :allow-select=\"allowSelect\"\n :default-order=\"order\"\n :paginated=\"paginated\"\n :no-border=\"noBorder\"\n @sort=\"sortHandler\"\n @has-any-item-selected=\"disableActions\" />\n <AppAutomaticModalOpener v-if=\"previewedQuestion\" :modal-config=\"modalConfig\">\n <QuestionPreview :item=\"previewedQuestion\" />\n </AppAutomaticModalOpener>\n <QuestionWizard\n v-if=\"selectedQuestion\"\n mode=\"edit\"\n :question=\"selectedQuestion\"\n @close=\"selectedQuestion = undefined\"\n @saved=\"questionEdited\" />\n <QuestionAnswers\n v-if=\"currentQuestion && currentQuestionAnswers\"\n :title=\"currentQuestion.title\"\n :data=\"currentQuestionAnswers\"\n @closed=\"closeQuestionAnswers\" />\n <QuestionKpis\n v-if=\"currentQuestion && currentQuestionKPI\"\n :question=\"currentQuestion\"\n :data=\"currentQuestionKPI\"\n @update-kpi-status=\"toggleInDashboard\"\n @closed=\"closeQuestionKPI\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport i18n from \"@/i18n\";\nimport { ref, computed } from \"vue\";\nimport AppTable from \"@/components/table/AppTable.vue\";\nimport QuestionPreview from \"@/views/admin/ai-assistant/components/wizard/previews/QuestionPreview.vue\";\nimport QuestionOrder from \"@/views/admin/ai-assistant/components/grid/QuestionOrder.vue\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport QuestionWizard from \"@/views/admin/ai-assistant/components/wizard/QuestionWizard.vue\";\nimport QuestionGroupsColumn from \"@/views/admin/ai-assistant/components/grid/QuestionGroupsColumn.vue\";\nimport type { ColumnAction, Column } from \"@/components/table/Column\";\nimport useModal from \"@/components/modal/useModal\";\nimport type { Question } from \"@/models/question\";\nimport { QuestionStatus } from \"@/models/questionStatus\";\nimport useQuestionService from \"@/services/useQuestionService\";\nimport type { QuestionOrderCustomProps } from \"@/views/admin/ai-assistant/components/grid/QuestionOrderCustomProps\";\nimport type { ModalBase } from \"@/components/modal/models\";\nimport type { Order } from \"@/components/table/Order\";\nimport { QuestionType } from \"@/models/questionType\";\nimport { QuestionWithAnswers } from \"@/models/questionAnswers\";\nimport QuestionAnswers from \"@/views/shared/questions/QuestionAnswers.vue\";\nimport QuestionKpis from \"@/views/shared/questions/QuestionKpis.vue\";\nimport { QuestionKpiInfo } from \"@/models/questionKpi\";\n\ninterface Props {\n questions: Question[];\n questionStatus: QuestionStatus;\n allowSort?: boolean;\n allowAddToDashboard?: boolean;\n allowSelect?: boolean;\n minimumOrder?: number;\n maximumOrder?: number;\n order?: Order;\n paginated?: boolean;\n noBorder?: boolean;\n allowedGroupNames?: string[];\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n (e: \"questionAscended\", question: Question): void;\n (e: \"questionDescended\", question: Question): void;\n (e: \"questionDeleted\", question: Question): void;\n (e: \"questionEdited\", question: Question): void;\n (e: \"questionDashboardToggle\", question: Question): void;\n}>();\n\nconst { deleteQuestion, descendQuestionOrder, ascendQuestionOrder, toggleQuestionInDashboard, getAnswers, getQuestionKpi } =\n useQuestionService();\nconst { openTextModal } = useModal();\n\nconst selectedQuestion = ref<Question | undefined>();\nconst previewedQuestion = ref<Question | undefined>();\nconst currentQuestion = ref<Question | undefined>();\nconst currentQuestionAnswers = ref<QuestionWithAnswers>();\nconst currentQuestionKPI = ref<QuestionKpiInfo>();\nconst canSetOrder = ref<boolean>(true);\nconst showActionButtons = ref<boolean>(true);\n\nconst getDashboardActions = (): ColumnAction<Question>[] =>\n props.allowAddToDashboard && showActionButtons.value\n ? [\n {\n callback: showQuestionKPI,\n condition: (item: Question) => shouldShowKpiAction(item),\n icon: \"kpi\",\n title: i18n.global.t(\"shared.question_kpi.action.show\"),\n name: \"question-as-kpi\",\n customClass: (item: Question) => (item.showInDashboard ? \"question-as-kpi--pinned\" : \"question-as-kpi\"),\n },\n {\n callback: showQuestionAnswers,\n condition: (item: Question) => !shouldShowKpiAction(item),\n disabled: (item: Question) => item.answeredPercentage === 0,\n icon: \"answers\",\n title: i18n.global.t(\"shared.question_answers.action.show\"),\n name: \"question-answers\",\n },\n ]\n : [];\n\nconst columns = computed<Column<Question>[]>(() => {\n const dashboardActions = getDashboardActions();\n const columnsQuestions: Column<Question>[] = [\n {\n id: 2,\n headerText: i18n.global.t(\"pages.admin.ai_assistant.questions.grid.question\"),\n cssWidth: \"1fr\",\n align: \"left\",\n sortable: !!props.allowSort,\n searchable: false,\n fieldName: \"title\",\n type: \"text-with-ellipsis\",\n },\n {\n id: 3,\n headerText: i18n.global.t(\"pages.admin.ai_assistant.questions.grid.groups\"),\n cssWidth: \"6rem\",\n align: \"left\",\n sortable: !!props.allowSort,\n searchable: false,\n type: \"text-with-ellipsis\",\n customRenderer: QuestionGroupsColumn,\n customProperties: {\n allowedGroupNames: props.allowedGroupNames,\n },\n },\n {\n id: 5,\n headerText: i18n.global.t(\"pages.admin.ai_assistant.questions.grid.date\"),\n cssWidth: \"8rem\",\n align: \"left\",\n sortable: !!props.allowSort,\n searchable: false,\n fieldName: \"edited\",\n type: \"text-with-ellipsis\",\n },\n {\n id: 6,\n headerText: \"\",\n cssWidth: dashboardActions.length > 0 ? \"11rem\" : \"8rem\",\n align: \"left\",\n sortable: !!props.allowSort,\n searchable: false,\n type: \"actions\",\n actions: [\n {\n callback: editQuestion,\n condition: (item: Question) => !!item.editable && showActionButtons.value,\n icon: \"pencil\",\n title: i18n.global.t(\"buttons.edit\"),\n name: \"edit\",\n },\n {\n callback: previewQuestion,\n condition: () => showActionButtons.value,\n icon: \"eye\",\n title: i18n.global.t(\"pages.admin.ai_assistant.create_new_survey_form.preview.title\"),\n name: \"preview\",\n },\n {\n callback: tryDeleteQuestion,\n condition: () => showActionButtons.value,\n icon: \"delete\",\n title: i18n.global.t(\"buttons.delete\"),\n name: \"delete\",\n },\n ...dashboardActions,\n ],\n },\n ];\n if (props.questionStatus === QuestionStatus.Published) {\n const customProps: QuestionOrderCustomProps = {\n allowSort: !!props.allowSort,\n ascend: ascendQuestion,\n descend: descendQuestion,\n canAscend: (item: Question): boolean => canSetOrder.value && props.minimumOrder !== undefined && item.order !== props.minimumOrder,\n canDescend: (item: Question): boolean => canSetOrder.value && props.maximumOrder !== undefined && item.order !== props.maximumOrder,\n };\n columnsQuestions.unshift({\n id: 1,\n headerText: i18n.global.t(\"pages.admin.ai_assistant.questions.grid.number\"),\n cssWidth: props.allowSort ? \"6rem\" : \"3rem\",\n align: \"right\",\n sortable: !!props.allowSort,\n searchable: false,\n fieldName: \"order\",\n customRenderer: QuestionOrder,\n type: \"text-with-ellipsis\",\n customProperties: customProps,\n });\n columnsQuestions.splice(3, 0, {\n id: 4,\n headerText: i18n.global.t(\"pages.admin.ai_assistant.questions.grid.answeredPercentage\"),\n cssWidth: \"12rem\",\n align: \"left\",\n sortable: !!props.allowSort,\n searchable: false,\n fieldName: \"answeredPercentage\",\n type: \"text-with-ellipsis\",\n });\n }\n return columnsQuestions;\n});\n\nconst sortHandler = (order: Order): void => {\n canSetOrder.value = order.id === 1 && order.direction === \"asc\";\n};\nconst disableActions = (anySelected: boolean): void => {\n showActionButtons.value = !anySelected;\n};\nconst ascendQuestion = async (question: Question): Promise<void> => {\n await ascendQuestionOrder(question);\n emit(\"questionAscended\", question);\n};\nconst descendQuestion = async (question: Question): Promise<void> => {\n await descendQuestionOrder(question);\n emit(\"questionDescended\", question);\n};\nconst tryDeleteQuestion = (question: Question): void => {\n openTextModal({\n title: i18n.global.t(\"pages.admin.ai_assistant.questions.grid.delete.title\"),\n contentText: i18n.global.t(\"pages.admin.ai_assistant.questions.grid.delete.description\", { question: question.title }),\n showCancelToClose: true,\n confirmCallback: async () => {\n await deleteQuestion(question.id);\n emit(\"questionDeleted\", question);\n },\n });\n};\nconst editQuestion = (question: Question): void => {\n selectedQuestion.value = { ...question };\n};\nconst previewQuestion = (question: Question): void => {\n previewedQuestion.value = question;\n};\nconst questionEdited = (question: Question): void => {\n selectedQuestion.value = undefined;\n emit(\"questionEdited\", question);\n};\nconst toggleInDashboard = async (question: Question): Promise<void> => {\n question.showInDashboard = !question.showInDashboard;\n await toggleQuestionInDashboard(question.id, question.showInDashboard);\n emit(\"questionDashboardToggle\", question);\n closeQuestionKPI();\n};\nconst questionTypesForKpi = [QuestionType.Level, QuestionType.MultipleSelection, QuestionType.SingleSelection, QuestionType.Tags];\nconst isKpiQuestion = (question: Question): boolean => questionTypesForKpi.includes(question.type);\nconst shouldShowKpiAction = (question: Question): boolean => props.questionStatus === QuestionStatus.Published && isKpiQuestion(question);\n\nconst showQuestionAnswers = async (question: Question): Promise<void> => {\n currentQuestion.value = question;\n const response = await getAnswers(question.id);\n\n if (response) {\n currentQuestionAnswers.value = response;\n }\n};\nconst closeQuestionAnswers = () => {\n currentQuestion.value = undefined;\n currentQuestionAnswers.value = undefined;\n};\n\nconst showQuestionKPI = async (question: Question): Promise<void> => {\n currentQuestion.value = question;\n const response = await getQuestionKpi(question.id);\n\n if (response) {\n currentQuestionKPI.value = response;\n }\n};\nconst closeQuestionKPI = () => {\n currentQuestion.value = undefined;\n currentQuestionKPI.value = undefined;\n};\n\nconst modalConfig: ModalBase = {\n title: i18n.global.t(\"pages.admin.ai_assistant.questions.preview\"),\n closeCallback: () => (previewedQuestion.value = undefined),\n};\n</script>\n<style lang=\"scss\">\n.question-as-kpi {\n &--pinned {\n padding: 0 0.5rem;\n background-color: var(--color-button-primary-background);\n &::before {\n color: white;\n }\n }\n}\n</style>\n","<template>\n <AppPanel\n class=\"question-list\"\n :padding-header=\"false\"\n :padding-content=\"false\"\n :padding-footer=\"false\"\n data-cy=\"available-question-list-container\">\n <template #header>\n <div class=\"question-list__header\">\n <span class=\"text--bold\">{{ $t(\"shared.company_groups_questions.subtitle\") }}</span>\n <div id=\"available-question-list-navigation\"></div>\n </div>\n </template>\n <QuestionsTable\n :questions=\"filteredQuestions\"\n :paginated=\"true\"\n :allow-select=\"true\"\n :allow-sort=\"true\"\n :no-border=\"true\"\n :order=\"defaultOrder\"\n :question-status=\"QuestionStatus.Unpublished\"\n :allowed-group-names=\"allowedGroupNames\"\n @question-deleted=\"deleteQuestion\"\n @question-edited=\"editQuestion\" />\n <template #footer>\n <div class=\"question-list__footer\">\n <AppButton\n :text=\"$t('shared.company_groups_questions.remove')\"\n variant=\"secondary\"\n size=\"m\"\n :disabled=\"!selectedIds.length\"\n data-cy=\"question-list-remove\"\n @onclick=\"tryDeleteSelectedQuestions\" />\n <AppButton\n :text=\"$t('shared.company_groups_questions.send')\"\n variant=\"secondary\"\n size=\"m\"\n :disabled=\"!selectedIds.length\"\n data-cy=\"question-list-send\"\n @onclick=\"sendSelectedQuestions\" />\n </div>\n </template>\n </AppPanel>\n</template>\n\n<script setup lang=\"ts\">\nimport { watch, ref, computed } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport QuestionsTable from \"@/views/admin/ai-assistant/components/grid/QuestionsTable.vue\";\nimport type { Question, QuestionSelectable } from \"@/models/question\";\nimport { QuestionStatus } from \"@/models/questionStatus\";\nimport { containsInsensitive } from \"@/utils/stringUtils\";\nimport useModal from \"@/components/modal/useModal\";\nimport type { Order } from \"@/components/table/Order\";\n\ninterface Props {\n questions: QuestionSelectable[];\n filter: string;\n allowedGroupNames?: string[];\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"updatedQuestion\", question: QuestionSelectable): void;\n (e: \"removeQuestions\", questionIds: number[]): void;\n (e: \"sendQuestions\", questionIds: number[]): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst { openTextModal } = useModal();\n\nconst selectedIds = ref<number[]>([]);\nconst filteredQuestions = computed(() => props.questions.filter((q) => containsInsensitive(q.title, props.filter)));\n\nconst defaultOrder: Order = { direction: \"asc\", id: 2 };\n\nconst editQuestion = (question: Question): void => emit(\"updatedQuestion\", question as QuestionSelectable);\nconst deleteQuestion = (question: Question): void => emit(\"removeQuestions\", [question.id]);\n\nconst tryDeleteSelectedQuestions = (): void => {\n if (!selectedIds.value.length) {\n return;\n }\n\n openTextModal({\n title: i18n.global.t(\"shared.are_you_sure\"),\n contentText: \"\",\n showCancelToClose: true,\n confirmCallback: removeSelectedQuestions,\n });\n};\n\nconst sendSelectedQuestions = () => {\n if (!selectedIds.value.length) {\n return;\n }\n emit(\"sendQuestions\", selectedIds.value);\n};\n\nconst removeSelectedQuestions = async () => emit(\"removeQuestions\", selectedIds.value);\n\nwatch(\n () => props.questions,\n (value) => (selectedIds.value = value?.filter((question) => question.selected).map((question) => question.id) || []),\n { deep: true, immediate: true }\n);\n</script>\n\n<style lang=\"scss\" scoped>\n.question-list {\n margin-top: var(--space-m);\n\n &__header {\n padding: var(--space-s);\n border-bottom: 1px solid var(--color-border);\n color: var(--color-primary-accent1);\n }\n\n &__footer {\n padding: var(--space-s);\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n border-top: 1px solid var(--color-border);\n gap: var(--space-s);\n }\n}\n</style>\n","<template>\n <div>\n <AppTable\n :no-border=\"true\"\n :columns=\"columns\"\n :items=\"questions\"\n :paginated=\"true\"\n :allow-select=\"true\"\n :default-order=\"defaultOrder\"\n :full-width=\"true\"\n @has-any-item-selected=\"disableActions\" />\n <AppAutomaticModalOpener v-if=\"previewedQuestion\" :modal-config=\"modalConfig\">\n <QuestionPreview :item=\"previewedQuestion\" />\n </AppAutomaticModalOpener>\n <QuestionWizard\n v-if=\"selectedQuestion\"\n mode=\"edit\"\n :question=\"selectedQuestion\"\n @close=\"selectedQuestion = undefined\"\n @saved=\"questionEdited\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppTable from \"@/components/table/AppTable.vue\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport QuestionWizard from \"@/views/admin/ai-assistant/components/wizard/QuestionWizard.vue\";\nimport QuestionPreview from \"@/views/admin/ai-assistant/components/wizard/previews/QuestionPreview.vue\";\nimport type { Column } from \"@/components/table/Column\";\nimport type { Order } from \"@/components/table/Order\";\nimport type { Question } from \"@/models/question\";\nimport type { ModalBase } from \"@/components/modal/models\";\nimport { QuestionType } from \"@/models/questionType\";\n\ninterface Props {\n questions: Question[];\n}\ndefineProps<Props>();\n\ninterface Emits {\n (e: \"removeQuestion\", id: number): void;\n (e: \"updatedQuestion\", question: Question): void;\n (e: \"showQuestionAnswers\", question: Question): void;\n (e: \"showQuestionKpi\", question: Question): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst showActionButtons = ref<boolean>(true);\nconst selectedQuestion = ref<Question>();\nconst previewedQuestion = ref<Question>();\n\nconst editQuestion = (question: Question) => {\n selectedQuestion.value = { ...question };\n};\nconst previewQuestion = (question: Question) => {\n previewedQuestion.value = question;\n};\nconst questionEdited = (question: Question) => {\n selectedQuestion.value = undefined;\n emit(\"updatedQuestion\", question);\n};\nconst removeQuestion = ({ id }: Question) => emit(\"removeQuestion\", id);\nconst showQuestionAnswers = (question: Question) => emit(\"showQuestionAnswers\", question);\n\nconst disableActions = (anySelected: boolean) => (showActionButtons.value = !anySelected);\n\nconst questionTypesForKpi = [QuestionType.Level, QuestionType.MultipleSelection, QuestionType.SingleSelection, QuestionType.Tags];\nconst isKpiQuestion = (question: Question): boolean => questionTypesForKpi.includes(question.type);\nconst showQuestionKpi = (question: Question) => emit(\"showQuestionKpi\", question);\n\nconst defaultOrder: Order = { direction: \"asc\", id: 1 };\n\nconst modalConfig: ModalBase = {\n title: i18n.global.t(\"shared.company_groups_questions.grid.actions.preview\"),\n closeCallback: () => (previewedQuestion.value = undefined),\n};\n\nconst columns: Column<Question>[] = [\n {\n id: 1,\n headerText: i18n.global.t(\"shared.company_groups_questions.grid.field.question\"),\n cssWidth: \"1fr\",\n align: \"left\",\n sortable: true,\n searchable: false,\n fieldName: \"title\",\n type: \"text-with-ellipsis\",\n },\n {\n id: 2,\n headerText: i18n.global.t(\"shared.company_groups_questions.grid.field.answeredPercentage\"),\n cssWidth: \"13rem\",\n align: \"center\",\n sortable: true,\n searchable: false,\n type: \"text-with-ellipsis\",\n fieldName: \"answeredPercentage\",\n },\n {\n id: 3,\n headerText: i18n.global.t(\"shared.company_groups_questions.grid.field.send_date\"),\n cssWidth: \"8rem\",\n align: \"left\",\n sortable: true,\n searchable: false,\n fieldName: \"sendDate\",\n type: \"text-with-ellipsis\",\n },\n {\n id: 4,\n cssWidth: \"11rem\",\n align: \"left\",\n sortable: false,\n searchable: false,\n type: \"actions\",\n actions: [\n {\n callback: editQuestion,\n icon: \"pencil\",\n title: i18n.global.t(\"shared.company_groups_questions.grid.actions.edit\"),\n name: \"edit\",\n condition: ({ editable }) => showActionButtons.value && !!editable,\n },\n {\n callback: previewQuestion,\n icon: \"eye\",\n title: i18n.global.t(\"shared.company_groups_questions.grid.actions.preview\"),\n name: \"preview\",\n condition: () => showActionButtons.value,\n },\n {\n callback: removeQuestion,\n icon: \"close\",\n title: i18n.global.t(\"shared.company_groups_questions.grid.actions.remove\"),\n name: \"remove\",\n condition: () => showActionButtons.value,\n },\n {\n callback: showQuestionKpi,\n icon: \"kpi\",\n title: i18n.global.t(\"shared.question_kpi.action.show\"),\n name: \"question-as-kpi\",\n condition: (item: Question) => showActionButtons.value && isKpiQuestion(item),\n customClass: (item: Question) => (item.showInDashboard ? \"question-as-kpi--pinned\" : \"question-as-kpi\"),\n },\n {\n callback: showQuestionAnswers,\n icon: \"answers\",\n title: i18n.global.t(\"shared.question_answers.action.show\"),\n name: \"answers\",\n condition: (item: Question) => showActionButtons.value && !isKpiQuestion(item),\n disabled: (item: Question) => item.answeredPercentage === 0,\n },\n ],\n },\n];\n</script>\n","import type {\n CompanyEmployeeGroup,\n CompanyEmployeeGroupInfo,\n CompanyEmployeeGroupWithQuestions,\n EmployeeGroupEmployee,\n EmployeeGroupRole,\n EmployeeWithGroups,\n} from \"@/models/companyEmployeeGroup\";\nimport type { CourseBase } from \"@/models/course\";\nimport { QuestionWithAnswers } from \"@/models/questionAnswers\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\nimport type { Ref } from \"vue\";\nimport { QuestionKpiInfo } from \"@/models/questionKpi\";\n\nconst BASE_URL = \"/api/company/employee-groups\";\nconst { get, put, post, httpDelete, loading } = useHttpClient();\n\ninterface UseCompanyEmployeeGroupsServiceReturn {\n getCompanyEmployeeGroups: () => Promise<CompanyEmployeeGroupInfo[]>;\n getCompanyEmployeesWithGroups: () => Promise<EmployeeWithGroups[]>;\n getCompanyEmployeeGroup: (groupId: number) => Promise<CompanyEmployeeGroup>;\n getCompanyGroupEmployees: (groupId: number) => Promise<EmployeeGroupEmployee[]>;\n setEmployeeRole: (groupId: number, employeeId: number, role: EmployeeGroupRole) => Promise<void>;\n updateCompanyEmployeeGroup: (group: CompanyEmployeeGroup) => Promise<void>;\n createCompanyEmployeeGroup: (group: CompanyEmployeeGroup) => Promise<void>;\n deleteCompanyEmployeeGroup: (groupId: number) => Promise<void>;\n getCourses: (groupId: number) => Promise<CourseBase[]>;\n setCourse: (groupId: number, courseId: number) => Promise<void>;\n deleteCourse: (groupId: number, courseId: number) => Promise<void>;\n\n getCompanyGroupQuestions: (groupId: number) => Promise<CompanyEmployeeGroupWithQuestions>;\n getCompanyGroupsQuestions: () => Promise<CompanyEmployeeGroupWithQuestions[]>;\n deleteCompanyGroupQuestions: (groupId: number, questionsIds: number[]) => Promise<void>;\n updateCompanyGroupsQuestions: (groupIds: number[], questionIds: number[]) => Promise<void>;\n updateCompanyGroupQuestions: (groupId: number, questionIds: number[]) => Promise<void>;\n toggleQuestionInGroupDashboard: (groupId: number, questionId: number, showInDashboard: boolean) => Promise<void>;\n getGroupKpis: (groupId: number) => Promise<QuestionKpiInfo[]>;\n geCompanyGroupQuestionAnswers: (groupId: number, questionId: number) => Promise<QuestionWithAnswers>;\n geCompanyGroupQuestionKpi: (groupId: number, questionId: number) => Promise<QuestionKpiInfo>;\n\n loading: Ref<boolean>;\n}\n\nexport default (): UseCompanyEmployeeGroupsServiceReturn => {\n const getCompanyEmployeeGroups = (): Promise<CompanyEmployeeGroupInfo[]> => get(BASE_URL);\n const getCompanyEmployeesWithGroups = (): Promise<EmployeeWithGroups[]> => get(`${BASE_URL}/employees-with-groups`);\n const getCompanyEmployeeGroup = (groupId: number): Promise<CompanyEmployeeGroup> => get(`${BASE_URL}/${groupId}`);\n const getCompanyGroupEmployees = (groupId: number): Promise<EmployeeGroupEmployee[]> => get(`${BASE_URL}/${groupId}/employees`);\n const updateCompanyEmployeeGroup = async (group: CompanyEmployeeGroup): Promise<void> => {\n const postData: Partial<CompanyEmployeeGroup> = { ...group };\n postData.id = undefined;\n await put(`${BASE_URL}/${group.id}`, postData);\n };\n const createCompanyEmployeeGroup = async (group: CompanyEmployeeGroup): Promise<void> => {\n const postData: Partial<CompanyEmployeeGroup> = { ...group };\n postData.id = undefined;\n await post(`${BASE_URL}/`, postData);\n };\n const deleteCompanyEmployeeGroup = (groupId: number): Promise<void> => httpDelete(`${BASE_URL}/${groupId}`);\n const setEmployeeRole = (groupId: number, employeeId: number, role: EmployeeGroupRole) => {\n const postData = { employeeId, role };\n return put<void>(`${BASE_URL}/${groupId}/employee-role`, postData);\n };\n const getCourses = (groupId: number): Promise<CourseBase[]> => get(`${BASE_URL}/${groupId}/courses`);\n const setCourse = (groupId: number, courseId: number): Promise<void> => put(`${BASE_URL}/${groupId}/courses/${courseId}`);\n const deleteCourse = (groupId: number, courseId: number): Promise<void> => httpDelete(`${BASE_URL}/${groupId}/courses/${courseId}`);\n\n const getCompanyGroupQuestions = (groupId: number): Promise<CompanyEmployeeGroupWithQuestions> => get(`${BASE_URL}/${groupId}/questions`);\n const getCompanyGroupsQuestions = (): Promise<CompanyEmployeeGroupWithQuestions[]> => get(`${BASE_URL}/questions`);\n const deleteCompanyGroupQuestions = (groupId: number, questionIds: number[]): Promise<void> =>\n httpDelete(`${BASE_URL}/${groupId}/questions`, questionIds);\n const updateCompanyGroupsQuestions = (groupIds: number[], questionIds: number[]): Promise<void> =>\n put(`${BASE_URL}/questions`, { companyEmployeeGroupIds: groupIds, questionIds });\n const updateCompanyGroupQuestions = (groupId: number, questionIds: number[]): Promise<void> =>\n put(`${BASE_URL}/${groupId}/questions`, questionIds);\n const geCompanyGroupQuestionAnswers = (groupId: number, questionId: number): Promise<QuestionWithAnswers> =>\n get(`${BASE_URL}/${groupId}/questions/${questionId}/answers`);\n const geCompanyGroupQuestionKpi = (groupId: number, questionId: number): Promise<QuestionKpiInfo> =>\n get(`${BASE_URL}/${groupId}/questions/${questionId}/kpi`);\n const toggleQuestionInGroupDashboard = (groupId: number, questionId: number, showInDashboard: boolean): Promise<void> =>\n post(`${BASE_URL}/${groupId}/questions/${questionId}/dashboard/${showInDashboard}`, { questionId, showInDashboard });\n const getGroupKpis = async (groupId: number): Promise<QuestionKpiInfo[]> => get<QuestionKpiInfo[]>(`${BASE_URL}/${groupId}/kpis`);\n\n return {\n getCompanyEmployeeGroups,\n getCompanyEmployeesWithGroups,\n getCompanyEmployeeGroup,\n getCompanyGroupEmployees,\n updateCompanyEmployeeGroup,\n deleteCompanyEmployeeGroup,\n createCompanyEmployeeGroup,\n setEmployeeRole,\n getCourses,\n setCourse,\n deleteCourse,\n getCompanyGroupsQuestions,\n getCompanyGroupQuestions,\n deleteCompanyGroupQuestions,\n updateCompanyGroupsQuestions,\n updateCompanyGroupQuestions,\n toggleQuestionInGroupDashboard,\n getGroupKpis,\n geCompanyGroupQuestionAnswers,\n geCompanyGroupQuestionKpi,\n loading,\n };\n};\n","<template>\n <div class=\"question_kpi\" data-cy=\"question_kpi\">\n <AppCard :title=\"kpiInfo.title\" :center-content=\"true\" :one-line-title=\"true\" :elegant=\"true\" :space-for-icon=\"true\">\n <AppIconOnlyButton\n class=\"question_kpi__remover\"\n size=\"xl\"\n :title=\"$t('pages.admin.ai_assistant.questions.grid.remove__from_dashboard')\"\n icon=\"close\"\n @click=\"remove\" />\n <div class=\"question_kpi__content\">\n <QuestionKpiData v-if=\"kpiInfo.answeredCount > 0\" :kpi-info=\"kpiInfo\" />\n <div v-else class=\"question_kpi__content\">\n <AppNoContentYet data-cy=\"app-card-no-content\" :text=\"$t('pages.admin.ai_assistant.questions.questions_with_no_answers')\" />\n </div>\n </div>\n </AppCard>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport AppIconOnlyButton from \"@/components/AppIconOnlyButton.vue\";\nimport AppCard from \"@/components/AppCard.vue\";\nimport type { QuestionKpiInfo } from \"@/models/questionKpi\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport QuestionKpiData from \"@/views/admin/ai-assistant/components/kpis/QuestionKpiData.vue\";\n\ninterface Props {\n kpiInfo: QuestionKpiInfo;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"remove\") => void>();\n\nconst remove = () => emit(\"remove\");\n</script>\n<style scoped lang=\"scss\">\n.question_kpi {\n position: relative;\n\n &__remover {\n position: absolute;\n right: 1rem;\n top: 1rem;\n }\n &__content {\n display: flex;\n flex-direction: column;\n place-items: center;\n justify-content: center;\n height: 240px;\n }\n}\n</style>\n","<template>\n <TransitionGroup name=\"fade\">\n <div class=\"questions-overview questions-overview--with-kpis\">\n <QuestionKpi v-for=\"kpi in kpis\" :key=\"kpi.id\" :kpi-info=\"kpi\" @remove=\"removeKpi(kpi)\" />\n </div>\n </TransitionGroup>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted } from \"vue\";\nimport QuestionKpi from \"@/views/admin/ai-assistant/components/kpis/QuestionKpi.vue\";\nimport type { QuestionKpiInfo } from \"@/models/questionKpi\";\nimport useCompanyEmployeeGroupsService from \"@/services/useCompanyEmployeeGroupsService\";\n\nconst { getGroupKpis } = useCompanyEmployeeGroupsService();\n\ninterface Props {\n groupId: number;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"removeGroupQuestionKpi\", questionId: number) => void>();\n\nconst kpis = ref<QuestionKpiInfo[]>([]);\n\nconst loadKpis = async () => (kpis.value = await getGroupKpis(props.groupId));\nconst removeKpi = (kpiInfo: QuestionKpiInfo) => {\n removeKpiById(kpiInfo.id);\n emit(\"removeGroupQuestionKpi\", kpiInfo.id);\n};\nconst removeKpiById = (kpiId: number) => {\n const kpiIndex = kpis.value.findIndex((kpi) => kpi.id === kpiId);\n kpis.value.splice(kpiIndex, 1);\n};\n\nonMounted(loadKpis);\n</script>\n\n<style scoped lang=\"scss\">\n.questions-overview {\n display: flex;\n flex-wrap: wrap;\n gap: var(--space-m);\n}\n</style>\n","<template>\n <AppPanel\n class=\"question-list\"\n :padding-header=\"false\"\n :padding-content=\"false\"\n :padding-footer=\"false\"\n data-cy=\"group-question-list-container\">\n <template #header>\n <div class=\"question-list__header\">\n <span class=\"text--bold\">{{ $t(\"shared.company_groups_questions.subtitle\") }}</span>\n <div id=\"group-question-list-navigation\"></div>\n </div>\n </template>\n <GroupQuestionsTable\n v-if=\"!showGroupKPIs\"\n :key=\"group.id\"\n :questions=\"filteredQuestions\"\n @updated-question=\"updatedQuestion\"\n @remove-question=\"removeQuestion\"\n @show-question-answers=\"showQuestionAnswers\"\n @show-question-kpi=\"showQuestionKPI\" />\n <GroupQuestionsKpis v-else :group-id=\"group.id\" @remove-group-question-kpi=\"removeGroupKPI\" />\n <QuestionAnswers\n v-if=\"currentQuestion && currentQuestionAnswers\"\n :title=\"currentQuestion.title\"\n :data=\"currentQuestionAnswers\"\n @closed=\"closeQuestionAnswers\" />\n <QuestionKpis\n v-if=\"currentQuestion && currentQuestionKPI\"\n :question=\"currentQuestion\"\n :data=\"currentQuestionKPI\"\n @update-kpi-status=\"toggleInGroupDashboard\"\n @closed=\"closeQuestionKPI\" />\n <template #footer>\n <div class=\"question-list__footer\">\n <AppButton\n v-if=\"!showGroupKPIs\"\n :text=\"$t('shared.company_groups_questions.remove')\"\n variant=\"secondary\"\n size=\"m\"\n :disabled=\"!selectedIds.length\"\n data-cy=\"question-list-remove\"\n @onclick=\"removeSelectedQuestionsFromGroup\" />\n <AppButton\n :text=\"calculateButtonText()\"\n variant=\"secondary\"\n size=\"m\"\n data-cy=\"question-list-view-kpis\"\n :disabled=\"!hasActiveKpis && !showGroupKPIs\"\n @onclick=\"showGroupKPIs = !showGroupKPIs\" />\n </div>\n </template>\n </AppPanel>\n</template>\n\n<script setup lang=\"ts\">\nimport { watch, ref, computed } from \"vue\";\nimport i18n from \"@/i18n\";\nimport GroupQuestionsTable from \"@/views/shared/company-groups-questions/components/GroupQuestionsTable.vue\";\nimport type { CompanyEmployeeGroupWithQuestions } from \"@/models/companyEmployeeGroup\";\nimport type { Question, QuestionSelectable } from \"@/models/question\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport useModal from \"@/components/modal/useModal\";\nimport useCompanyEmployeeGroupsService from \"@/services/useCompanyEmployeeGroupsService\";\nimport { containsInsensitive } from \"@/utils/stringUtils\";\nimport GroupQuestionsKpis from \"@/views/admin/ai-assistant/components/kpis/GroupQuestionsKpis.vue\";\nimport QuestionAnswers from \"@/views/shared/questions/QuestionAnswers.vue\";\nimport { QuestionWithAnswers } from \"@/models/questionAnswers\";\nimport { QuestionKpiInfo } from \"@/models/questionKpi\";\nimport QuestionKpis from \"@/views/shared/questions/QuestionKpis.vue\";\n\ninterface Props {\n group: CompanyEmployeeGroupWithQuestions;\n filter: string;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"updatedQuestion\", question: QuestionSelectable): void;\n (e: \"removeQuestions\", groupId: number, questionIds: number[]): void;\n (e: \"toggleInGroupDashboard\", groupId: number, questionIds: number, showInDashboard: boolean): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst { openTextModal } = useModal();\nconst { geCompanyGroupQuestionAnswers, geCompanyGroupQuestionKpi } = useCompanyEmployeeGroupsService();\n\nconst selectedIds = ref<number[]>([]);\nconst currentQuestion = ref<Question | undefined>();\nconst currentQuestionAnswers = ref<QuestionWithAnswers>();\nconst currentQuestionKPI = ref<QuestionKpiInfo>();\nconst showGroupKPIs = ref<boolean>(false);\nconst hasActiveKpis = computed<boolean>(() => props.group.questions.some((q: QuestionSelectable) => q.showInDashboard));\nconst filteredQuestions = computed(() => props.group.questions.filter((q) => containsInsensitive(q.title, props.filter)));\n\nconst showQuestionAnswers = async (question: Question): Promise<void> => {\n currentQuestion.value = question;\n const response = await geCompanyGroupQuestionAnswers(props.group.id, question.id);\n\n if (response) {\n currentQuestionAnswers.value = response;\n }\n};\nconst closeQuestionAnswers = () => {\n currentQuestion.value = undefined;\n currentQuestionAnswers.value = undefined;\n};\n\nconst showQuestionKPI = async (question: Question): Promise<void> => {\n currentQuestion.value = question;\n const response = await geCompanyGroupQuestionKpi(props.group.id, question.id);\n\n if (response) {\n currentQuestionKPI.value = response;\n }\n};\nconst closeQuestionKPI = () => {\n currentQuestion.value = undefined;\n currentQuestionKPI.value = undefined;\n};\n\nconst updatedQuestion = (question: Question) => emit(\"updatedQuestion\", question as QuestionSelectable);\nconst removeQuestion = (id: number) => removeQuestionsFromGroup([id]);\nconst removeSelectedQuestionsFromGroup = () => removeQuestionsFromGroup(selectedIds.value);\nconst toggleInGroupDashboard = (question: Question) => {\n emit(\"toggleInGroupDashboard\", props.group.id, question.id, !question.showInDashboard);\n closeQuestionKPI();\n};\n\nconst removeGroupKPI = (id: number) => {\n const question = props.group.questions.find((q) => q.id === id);\n if (question) {\n toggleInGroupDashboard(question);\n }\n};\n\nconst removeQuestionsFromGroup = (ids: number[], clearSelection = false) => {\n if (!ids.length) {\n return;\n }\n\n const callback = () => {\n emit(\"removeQuestions\", props.group.id, ids);\n if (clearSelection) {\n selectedIds.value = [];\n }\n };\n\n openTextModal({\n title: i18n.global.t(\"shared.are_you_sure\"),\n contentText: \"\",\n showCancelToClose: true,\n confirmCallback: callback,\n });\n};\n\nconst calculateButtonText = () =>\n showGroupKPIs.value\n ? i18n.global.t(\"shared.company_groups_questions.view_questions\")\n : i18n.global.t(\"shared.company_groups_questions.view_kpis\");\n\nwatch(\n () => props.group.questions,\n (value) => (selectedIds.value = value?.filter((question) => question.selected).map((question) => question.id) || []),\n { deep: true, immediate: true }\n);\n\nwatch(\n () => props.group,\n () => (showGroupKPIs.value = false),\n { immediate: true }\n);\n</script>\n\n<style lang=\"scss\" scoped>\n.question-list {\n margin-top: var(--space-m);\n\n &__header {\n padding: var(--space-s);\n border-bottom: 1px solid var(--color-border);\n color: var(--color-primary-accent1);\n }\n\n &__footer {\n padding: var(--space-s);\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n border-top: 1px solid var(--color-border);\n gap: var(--space-s);\n }\n}\n</style>\n","<template>\n <AppAutomaticModalOpener :modal-config=\"modalConfig\">\n <AppInformationMessage :message=\"$t('shared.company_groups_questions.send_to_groups.content')\" class=\"margin-b--m\" />\n <AppGenericFilter\n class=\"margin-b--m\"\n :placeholder=\"$t('shared.company_groups_questions.send_to_groups.search.placeholder')\"\n @filter-changed=\"filterChanged\" />\n <AppPanel :border=\"true\" :padding-content=\"false\">\n <AppTable\n data-cy=\"group-selector-list\"\n :columns=\"columns\"\n :items=\"filteredGroups\"\n :paginated=\"true\"\n :allow-select=\"true\"\n :default-order=\"defaultOrder\"\n :no-border=\"true\" />\n </AppPanel>\n <template #actions>\n <AppButton :text=\"$t('buttons.cancel')\" variant=\"secondary\" size=\"m\" data-cy=\"cancel\" @onclick=\"close\" />\n <AppButton\n :text=\"$t('shared.company_groups_questions.send_to_groups.buttons.send')\"\n variant=\"primary\"\n size=\"m\"\n :disabled=\"!selectedIds.length\"\n data-cy=\"send\"\n @onclick=\"send\" />\n </template>\n </AppAutomaticModalOpener>\n</template>\n\n<script setup lang=\"ts\">\nimport { watch, ref, computed } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppTable from \"@/components/table/AppTable.vue\";\nimport type { Column } from \"@/components/table/Column\";\nimport type { Order } from \"@/components/table/Order\";\nimport type { CompanyEmployeeGroupBase } from \"@/models/companyEmployeeGroup\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport type { ModalBase } from \"@/components/modal/models\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppInformationMessage from \"@/components/AppInformationMessage.vue\";\nimport AppGenericFilter from \"@/components/AppGenericFilter.vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport { containsInsensitive } from \"@/utils/stringUtils\";\n\ninterface Emits {\n (e: \"closed\"): void;\n (e: \"sendToGroups\", ids: number[]): void;\n}\nconst emit = defineEmits<Emits>();\n\ninterface Props {\n groups: CompanyEmployeeGroupBase[];\n}\nconst props = defineProps<Props>();\n\nconst selectedIds = ref<number[]>([]);\nconst searchText = ref<string>(\"\");\n\nconst filteredGroups = computed(() => props.groups.filter((g) => containsInsensitive(g.name, searchText.value)));\n\nconst close = () => emit(\"closed\");\n\nconst filterChanged = (newSearch: string) => (searchText.value = newSearch);\n\nconst send = () => {\n if (!selectedIds.value.length) {\n return;\n }\n emit(\"sendToGroups\", selectedIds.value);\n};\n\nconst modalConfig: ModalBase = {\n title: i18n.global.t(\"shared.company_groups_questions.send_to_groups.title\"),\n variant: \"large\",\n onClosed: close,\n};\n\nconst defaultOrder: Order = { direction: \"asc\", id: 1 };\n\nconst columns: Column<CompanyEmployeeGroupBase>[] = [\n {\n id: 1,\n headerText: i18n.global.t(\"shared.company_groups_questions.send_to_groups.fields.group_name\"),\n cssWidth: \"10fr\",\n align: \"left\",\n sortable: true,\n searchable: true,\n fieldName: \"name\",\n type: \"text-with-ellipsis\",\n },\n {\n id: 2,\n headerText: i18n.global.t(\"shared.company_groups_questions.send_to_groups.fields.people\"),\n cssWidth: \"1fr\",\n align: \"left\",\n sortable: true,\n searchable: false,\n type: \"text-with-ellipsis\",\n fieldName: \"employeeCount\",\n },\n];\n\nwatch(\n () => props.groups,\n (value) => (selectedIds.value = value?.filter(({ selected }) => selected).map(({ id }) => id) || []),\n { deep: true, immediate: true }\n);\n</script>\n","import type { CompanyEmployeeGroupWithQuestions } from \"@/models/companyEmployeeGroup\";\nimport type { QuestionSelectable } from \"@/models/question\";\n\nexport const tryUpdateQuestionData = (\n question: QuestionSelectable,\n availableQuestions: QuestionSelectable[],\n source: CompanyEmployeeGroupWithQuestions | CompanyEmployeeGroupWithQuestions[]\n): [QuestionSelectable[], CompanyEmployeeGroupWithQuestions | CompanyEmployeeGroupWithQuestions[]] => {\n question.edited = new Date();\n\n const previousQuestion = availableQuestions.find((q) => q.id === question.id);\n if (previousQuestion) {\n question.employeeGroups = previousQuestion.employeeGroups;\n }\n const updatedAvailableQuestions = [...availableQuestions.filter((q) => q.id !== question.id), { ...question }];\n\n (Array.isArray(source) ? source : [source]).forEach((g) => {\n const target = g.questions.find((q) => q.id === question.id);\n if (target) {\n question.sendDate = target.sendDate;\n g.questions = [...g.questions.filter((q) => q.id !== question.id), { ...question }];\n }\n });\n\n return [updatedAvailableQuestions, source];\n};\n","<template>\n <LayoutPage :title=\"$t('shared.company_groups_questions.title')\">\n <Teleport v-if=\"loaded\" to=\"#header-button-container\">\n <AppIconButton :text=\"$t('shared.back')\" size=\"l\" icon=\"arrow-back\" @onclick=\"back\" />\n </Teleport>\n <AppGenericFilter\n class=\"margin-b--m\"\n :placeholder=\"$t('shared.company_groups_questions.search.placeholder')\"\n :add-button-text=\"$t('shared.company_groups_questions.add_new_question')\"\n @filter-changed=\"(newSearch) => (searchText = newSearch)\"\n @create-new=\"openCreateQuestionDialog\" />\n <AppTab :tabs=\"tabs\" :tab-id=\"`group-${currentGroup?.id || 0}`\" data-cy=\"group-list-nav\" />\n <AppTip\n class=\"margin-t--m\"\n :title=\"$t('shared.company_groups_questions.tip.title')\"\n :content=\"$t('shared.company_groups_questions.tip.content')\"\n :no-icon=\"true\"\n unique-name=\"company_groups_questions\" />\n <GroupQuestionsPanel\n v-if=\"currentGroup\"\n :group=\"currentGroup\"\n :filter=\"searchText\"\n @remove-questions=\"removeQuestionsFromGroup\"\n @updated-question=\"updateQuestionData\"\n @toggle-in-group-dashboard=\"toggleInGroupDashboard\" />\n <AvailableQuestionsPanel\n v-else\n :key=\"allowedGroupNames.length\"\n :questions=\"questions\"\n :filter=\"searchText\"\n :allowed-group-names=\"allowedGroupNames\"\n @send-questions=\"sendQuestions\"\n @remove-questions=\"removeQuestions\"\n @updated-question=\"updateQuestionData\" />\n <GroupSelector\n v-if=\"showSendQuestionsDialog\"\n :groups=\"groups\"\n @closed=\"closeSendQuestionsDialog\"\n @send-to-groups=\"sendQuestionsToGroups\" />\n <QuestionWizard v-if=\"showCreateQuestionDialog\" mode=\"create\" @close=\"closeCreateQuestionDialog\" @saved=\"addNewQuestion\" />\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted } from \"vue\";\nimport i18n from \"@/i18n\";\nimport router from \"@/router/router\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport AppGenericFilter from \"@/components/AppGenericFilter.vue\";\nimport AppTab, { type Tab } from \"@/components/AppTab.vue\";\nimport AppIconButton from \"@/components/AppIconButton.vue\";\nimport AppTip from \"@/components/AppTip.vue\";\nimport QuestionWizard from \"@/views/admin/ai-assistant/components/wizard/QuestionWizard.vue\";\nimport AvailableQuestionsPanel from \"@/views/shared/company-groups-questions/components/AvailableQuestionsPanel.vue\";\nimport GroupQuestionsPanel from \"@/views/shared/company-groups-questions/components/GroupQuestionsPanel.vue\";\nimport GroupSelector from \"@/views/shared/company-groups-questions/components/GroupSelector.vue\";\nimport { tryUpdateQuestionData } from \"@/views/shared/company-groups-questions/utils/questionsHelper\";\nimport type { CompanyEmployeeGroupWithQuestions } from \"@/models/companyEmployeeGroup\";\nimport type { Question, QuestionSelectable } from \"@/models/question\";\nimport useCompanyEmployeeGroupsService from \"@/services/useCompanyEmployeeGroupsService\";\nimport useQuestionService from \"@/services/useQuestionService\";\n\nconst {\n getCompanyGroupsQuestions,\n deleteCompanyGroupQuestions,\n toggleQuestionInGroupDashboard,\n updateCompanyGroupsQuestions,\n updateCompanyGroupQuestions,\n} = useCompanyEmployeeGroupsService();\nconst { getUnpublishedQuestions, deleteQuestions } = useQuestionService();\n\nconst loaded = ref<boolean>(false);\nconst tabs = ref<Tab[]>([]);\nconst groups = ref<CompanyEmployeeGroupWithQuestions[]>([]);\nconst currentGroup = ref<CompanyEmployeeGroupWithQuestions>();\nconst questions = ref<QuestionSelectable[]>([]);\nconst selectedQuestionsIds = ref<number[]>([]);\nconst showSendQuestionsDialog = ref<boolean>(false);\nconst showCreateQuestionDialog = ref<boolean>(false);\nconst searchText = ref<string>(\"\");\nconst allowedGroupNames = ref<string[]>([]);\n\nconst back = () => router.push({ name: \"my-groups-overview\" });\n\nconst updateQuestionData = (question: QuestionSelectable) => {\n const [updatedQuestions, updatedSource] = tryUpdateQuestionData(question, questions.value, groups.value);\n\n questions.value = updatedQuestions;\n groups.value = updatedSource as CompanyEmployeeGroupWithQuestions[];\n};\n\nconst removeQuestionsFromGroup = async (groupId: number, questionIds: number[]) => {\n if (currentGroup.value) {\n currentGroup.value.questions = currentGroup.value.questions.filter((q) => !questionIds.includes(q.id));\n }\n await deleteCompanyGroupQuestions(groupId, questionIds);\n await fetchQuestionsData();\n};\n\nconst removeQuestions = async (questionIds: number[]) => {\n if (questions.value) {\n questions.value = questions.value.filter((q) => !questionIds.includes(q.id));\n }\n\n if (groups.value) {\n groups.value.forEach((g) => {\n g.questions = g.questions.filter((q) => !questionIds.includes(q.id));\n });\n }\n\n await deleteQuestions(questionIds);\n await fetchQuestionsData();\n};\n\nconst openCreateQuestionDialog = () => (showCreateQuestionDialog.value = true);\nconst closeCreateQuestionDialog = () => (showCreateQuestionDialog.value = false);\n\nconst openSendQuestionsDialog = () => (showSendQuestionsDialog.value = true);\nconst closeSendQuestionsDialog = () => (showSendQuestionsDialog.value = false);\n\nconst sendQuestions = (questionIds: number[]): void => {\n selectedQuestionsIds.value = questionIds;\n openSendQuestionsDialog();\n};\n\nconst sendQuestionsToGroups = async (groupIds: number[]): Promise<void> => {\n await updateCompanyGroupsQuestions(groupIds, selectedQuestionsIds.value);\n selectedQuestionsIds.value = [];\n closeSendQuestionsDialog();\n await fetchData();\n};\n\nconst selectGroup = (group: CompanyEmployeeGroupWithQuestions) => (currentGroup.value = group);\n\nconst createTabs = (source: CompanyEmployeeGroupWithQuestions[]): void => {\n allowedGroupNames.value = groups.value.map(({ name }) => name);\n tabs.value = source.map((group) => ({\n text: group.name,\n action: () => selectGroup(group),\n isChecked: currentGroup.value?.id === group.id,\n dataCy: `group-${group.id}`,\n }));\n\n tabs.value.unshift({\n text: i18n.global.t(\"shared.company_groups_questions.created_questions\"),\n action: () => (currentGroup.value = undefined),\n isChecked: true,\n dataCy: \"created-questions\",\n });\n};\n\nconst updateCurrentGroup = () => {\n if (currentGroup.value) {\n const updatedGroup = groups.value.find((group) => group.id === currentGroup.value?.id);\n if (updatedGroup) {\n selectGroup(updatedGroup);\n }\n }\n};\n\nconst fetchGroupsData = async () => {\n groups.value = await getCompanyGroupsQuestions();\n\n if (groups.value.length) {\n createTabs(groups.value);\n updateCurrentGroup();\n }\n};\n\nconst addNewQuestion = async (question: Question) => {\n if (currentGroup?.value) {\n await updateCompanyGroupQuestions(currentGroup.value.id, [question.id]);\n }\n\n await fetchData();\n};\n\nconst fetchQuestionsData = async () => (questions.value = (await getUnpublishedQuestions()) as QuestionSelectable[]);\n\nconst fetchData = async () => {\n const tasks = [fetchGroupsData(), fetchQuestionsData()];\n await Promise.all(tasks);\n loaded.value = true;\n};\n\nonMounted(fetchData);\n\nconst changeShowInDashboardInMemory = (groupId: number, questionId: number, showInDashboard: boolean) => {\n const group = groups.value.find((g) => g.id === groupId);\n const question = group?.questions.find((q) => q.id === questionId);\n if (question) {\n question.showInDashboard = showInDashboard;\n }\n};\n\nconst toggleInGroupDashboard = async (groupId: number, questionId: number, showInDashboard: boolean) => {\n await toggleQuestionInGroupDashboard(groupId, questionId, showInDashboard);\n changeShowInDashboardInMemory(groupId, questionId, showInDashboard);\n};\n</script>\n","import AppLayout from \"@/layout/app/AppLayout.vue\";\nimport AppMyProfileView from \"@/views/app/my-profile/AppMyProfileView.vue\";\nimport AppMyProfileOverviewView from \"@/views/app/my-profile/AppMyProfileOverviewView.vue\";\nimport AppMyProfileDashboardView from \"@/views/app/my-profile/AppMyProfileDashboardView.vue\";\nimport AppMyProfileDefaultView from \"@/views/app/my-profile/AppMyProfileDefaultView.vue\";\nimport AppAIAssistantView from \"@/views/app/ai-assistant/AppAIAssistantView.vue\";\nimport AppCurrentExperienceView from \"@/views/app/current-experience/AppCurrentExperienceView.vue\";\nimport AppGoalsChallengesView from \"@/views/app/goals-challenges/AppGoalsChallengesView.vue\";\nimport AppMyLearningView from \"@/views/app/my-learning/AppMyLearningView.vue\";\nimport AppMyLearningLearningView from \"@/views/app/my-learning/AppMyLearningLearningView.vue\";\nimport AppMyLearningLearningPathView from \"@/views/app/my-learning/AppMyLearningLearningPathView.vue\";\nimport AppMyLearningTrainingView from \"@/views/app/my-learning/AppMyLearningTrainingView.vue\";\nimport AppMyIdealJobView from \"@/views/app/my-ideal-job/AppMyIdealJobView.vue\";\nimport AppMyIdealJobLearningPathView from \"@/views/app/my-ideal-job/AppMyIdealJobLearningPathView.vue\";\nimport AppMyIdealJobMyTrainingView from \"@/views/app/my-ideal-job/AppMyIdealJobMyTrainingView.vue\";\nimport AppMyInterestsView from \"@/views/app/my-interests/AppMyInterestsView.vue\";\nimport AppMyGroupsView from \"@/views/app/my-groups/AppMyGroupsView.vue\";\nimport AppMyGroupsOverview from \"@/views/app/my-groups/AppMyGroupsOverviewView.vue\";\nimport EmployeeProfileView from \"@/views/shared/employee/EmployeeProfileView.vue\";\nimport AppMyGroupsQuestionsView from \"@/views/app/my-groups/AppMyGroupsQuestionsView.vue\";\n\nexport default [\n {\n path: \"/app\",\n component: AppLayout,\n children: [\n {\n path: \"\",\n name: \"default-app\",\n redirect: \"/app/my-profile\",\n },\n {\n path: \"my-profile\",\n name: \"my-profile\",\n component: AppMyProfileView,\n children: [\n {\n path: \"overview\",\n name: \"my-profile-overview\",\n component: AppMyProfileOverviewView,\n },\n {\n path: \"dashboard\",\n name: \"my-profile-dashboard\",\n component: AppMyProfileDashboardView,\n },\n {\n path: \"\",\n name: \"my-profile-default\",\n component: AppMyProfileDefaultView,\n },\n ],\n },\n {\n path: \"ai-assistant\",\n name: \"ai-assistant\",\n component: AppAIAssistantView,\n strict: true,\n },\n {\n path: \"my-interests\",\n name: \"my-interests\",\n component: AppMyInterestsView,\n },\n {\n path: \"my-current-job\",\n name: \"my-current-job\",\n component: AppCurrentExperienceView,\n },\n {\n path: \"goals-challenges\",\n name: \"goals-challenges\",\n component: AppGoalsChallengesView,\n },\n {\n path: \"my-learning\",\n name: \"my-learning\",\n component: AppMyLearningView,\n children: [\n {\n path: \"\",\n name: \"my-learning-learning\",\n component: AppMyLearningLearningView,\n },\n {\n path: \"my-learning-path\",\n name: \"my-learning-path\",\n component: AppMyLearningLearningPathView,\n },\n {\n path: \"my-training\",\n name: \"my-learning-training\",\n component: AppMyLearningTrainingView,\n },\n ],\n },\n {\n path: \"my-ideal-job\",\n name: \"my-ideal-job\",\n component: AppMyIdealJobView,\n children: [\n {\n path: \"\",\n name: \"my-ideal-job-learning\",\n component: AppMyIdealJobLearningPathView,\n },\n {\n path: \"my-training\",\n name: \"my-ideal-job-my-training\",\n component: AppMyIdealJobMyTrainingView,\n },\n {\n path: \"company-training\",\n name: \"my-ideal-job-company-training\",\n component: AppMyIdealJobLearningPathView,\n },\n ],\n },\n {\n path: \"my-groups\",\n name: \"my-groups\",\n component: AppMyGroupsView,\n children: [\n {\n path: \"\",\n name: \"my-groups-overview\",\n component: AppMyGroupsOverview,\n },\n {\n path: \"employees/:employeeId\",\n name: \"my-groups-employee\",\n props: {\n backRoute: \"my-groups-overview\",\n },\n component: EmployeeProfileView,\n },\n {\n path: \"questions\",\n name: \"my-groups-questions\",\n component: AppMyGroupsQuestionsView,\n },\n ],\n meta: {\n requiresGroupManager: true,\n },\n },\n ],\n meta: {\n requiresAuth: true,\n isAppArea: true,\n },\n },\n];\n","<template>\n <TransitionGroup name=\"fade\">\n <QuestionKpi v-for=\"kpi in kpis\" :key=\"kpi.id\" :kpi-info=\"kpi\" @remove=\"removeKpi(kpi)\" />\n </TransitionGroup>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted } from \"vue\";\nimport QuestionKpi from \"@/views/admin/ai-assistant/components/kpis/QuestionKpi.vue\";\nimport type { QuestionKpiInfo } from \"@/models/questionKpi\";\nimport useQuestionService from \"@/services/useQuestionService\";\nimport type { UseEventEmitterServiceReturn } from \"@/services/useEventEmitterService\";\nimport type { Question } from \"@/models/question\";\n\ninterface Props {\n eventEmitter: UseEventEmitterServiceReturn;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"loaded\", hasKpis: boolean): void;\n (e: \"kpiRemoved\", questionKpi: QuestionKpiInfo): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst { getKpis, toggleQuestionInDashboard } = useQuestionService();\n\nconst kpis = ref<QuestionKpiInfo[]>([]);\nconst loadKpis = async () => {\n kpis.value = await getKpis();\n emitLoaded();\n};\n\nconst removeKpi = async (kpiInfo: QuestionKpiInfo): Promise<void> => {\n await toggleQuestionInDashboard(kpiInfo.id, false);\n removeKpiById(kpiInfo.id);\n emit(\"kpiRemoved\", kpiInfo);\n};\nconst emitLoaded = () => emit(\"loaded\", kpis.value.length > 0);\nconst removeKpiById = (kpiId: number) => {\n const kpiIndex = kpis.value.findIndex((kpi) => kpi.id === kpiId);\n kpis.value.splice(kpiIndex, 1);\n emitLoaded();\n};\n\nonMounted(async () => {\n await loadKpis();\n props.eventEmitter.on(\"questionKpiToggled\", async (question: Question) => {\n if (question.showInDashboard) {\n await loadKpis();\n return;\n }\n removeKpiById(question.id);\n });\n props.eventEmitter.on(\"questionDeleted\", async (question: Question) => {\n if (question.showInDashboard) {\n removeKpiById(question.id);\n }\n });\n});\n</script>\n","export default \"__VITE_ASSET__f50a77e1__\"","<template>\n <AppBox :title=\"$t(`pages.admin.ai_assistant.create_new_survey_form.title`)\">\n <div class=\"box-content\">\n <div class=\"box-content__main\">\n <img src=\"@/assets/images/questions.png\" alt=\"\" />\n <div>\n <p class=\"text margin-b--m\">\n {{ $t(\"pages.admin.ai_assistant.create_new_survey_form.description\") }}\n </p>\n <AppButton\n data-cy=\"new-question\"\n :text=\"$t('pages.admin.ai_assistant.create_new_survey_form.new_question')\"\n size=\"m\"\n @onclick=\"creating = true\" />\n </div>\n </div>\n <AppTip\n icon=\"kpi\"\n :title=\"$t('pages.ai_assistant.header.title')\"\n :content=\"$t('pages.ai_assistant.header.subtitle')\"\n no-margin\n data-cy=\"ai-assistant-tip\" />\n <QuestionWizard v-if=\"creating\" mode=\"create\" @close=\"creating = false\" @saved=\"$emit('questionCreated')\" />\n </div>\n </AppBox>\n</template>\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport AppBox from \"@/components/AppBox.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppTip from \"@/components/AppTip.vue\";\nimport QuestionWizard from \"@/views/admin/ai-assistant/components/wizard/QuestionWizard.vue\";\n\ndefineEmits<(e: \"questionCreated\") => void>();\n\nconst creating = ref<boolean>(false);\n</script>\n\n<style scoped lang=\"scss\">\n.box-content {\n display: flex;\n padding: 2.4rem;\n align-items: center;\n column-gap: 2.4rem;\n flex-direction: column;\n &__main {\n display: flex;\n align-items: center;\n column-gap: 2.4rem;\n }\n}\n</style>\n","<template>\n <div class=\"no-content\">\n <AppNoContentYet\n :text=\"\n hasQuestionsDefined\n ? $t('pages.admin.ai_assistant.questions.allQuestionsPublished')\n : $t('pages.admin.ai_assistant.questions.noContentYet')\n \" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport { QuestionStatus } from \"@/models/questionStatus\";\nimport useQuestionService from \"@/services/useQuestionService\";\n\ninterface Props {\n questionStatus: QuestionStatus;\n}\nconst props = defineProps<Props>();\n\nconst { getPublishedQuestions } = useQuestionService();\n\nconst hasQuestionsDefined = ref<boolean>(true);\n\nconst checkQuestionsDefined = async () => {\n if (props.questionStatus === QuestionStatus.Unpublished) {\n hasQuestionsDefined.value = (await getPublishedQuestions(1)).length > 0;\n }\n};\n\nonMounted(checkQuestionsDefined);\n</script>\n\n<style scoped lang=\"scss\">\n.no-content {\n display: flex;\n justify-content: center;\n padding: var(--space-m);\n}\n</style>\n","<template>\n <LayoutPage :title=\"$t('pages.admin.ai_assistant.title')\">\n <div v-if=\"loaded\" class=\"questions-overview\" :class=\"{ 'questions-overview--with-kpis': hasKpis }\">\n <div class=\"questions\">\n <div class=\"questions__header text--bold\" data-cy=\"questions-header\">\n {{ $t(\"pages.admin.ai_assistant.questions.title\") }}\n </div>\n <div class=\"questions__subheader\">\n <div class=\"questions__navigation\">\n <AppTab :tabs=\"tabs\" :tab-id=\"$t('pages.admin.dashboard.welcome')\" />\n </div>\n <div class=\"padding-h--l\">\n <router-link to=\"/admin/ai-assistant/questions\">\n <span class=\"text text--bold text--link\" data-cy=\"questions-footer\">\n {{ $t(\"pages.admin.ai_assistant.questions.seeAllQuestions\") }}\n </span>\n </router-link>\n </div>\n </div>\n <div v-if=\"questions.length > 0\" class=\"questions__list\">\n <QuestionsTable\n :questions=\"questions\"\n :allow-add-to-dashboard=\"questionStatus === QuestionStatus.Published\"\n :question-status=\"questionStatus\"\n @question-dashboard-toggle=\"questionToggledFromTable\"\n @question-edited=\"fetchData\"\n @question-deleted=\"questionDeleted\" />\n </div>\n <div v-else>\n <AppSeparator class=\"margin-v--s\" />\n <NoQuestionsContent :question-status=\"questionStatus\" />\n </div>\n </div>\n <QuestionsOnBoarding v-if=\"!hasKpis\" @question-created=\"fetchData\" />\n <QuestionsKpis :event-emitter=\"eventEmitter\" @loaded=\"(kpisDefined:boolean) => hasKpis = kpisDefined\" @kpi-removed=\"kpiRemoved\" />\n </div>\n <AppModal name=\"question-preview\">\n <QuestionPreview v-if=\"selectedQuestion\" :item=\"selectedQuestion\" />\n </AppModal>\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport i18n from \"@/i18n\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport AppSeparator from \"@/components/AppSeparator.vue\";\nimport AppModal from \"@/components/modal/AppModal.vue\";\nimport AppTab, { type Tab } from \"@/components/AppTab.vue\";\nimport QuestionPreview from \"@/views/admin/ai-assistant/components/wizard/previews/QuestionPreview.vue\";\nimport QuestionsKpis from \"@/views/admin/ai-assistant/components/kpis/QuestionsKpis.vue\";\nimport QuestionsTable from \"@/views/admin/ai-assistant/components/grid/QuestionsTable.vue\";\nimport QuestionsOnBoarding from \"@/views/admin/ai-assistant/components/QuestionsOnBoarding.vue\";\nimport NoQuestionsContent from \"@/views/admin/ai-assistant/components/NoQuestionsContent.vue\";\nimport type { Question } from \"@/models/question\";\nimport { QuestionStatus } from \"@/models/questionStatus\";\nimport useQuestionService from \"@/services/useQuestionService\";\nimport useEventEmitterService from \"@/services/useEventEmitterService\";\nimport type { QuestionKpiInfo } from \"@/models/questionKpi\";\n\nconst { getPublishedQuestions, getUnpublishedQuestions } = useQuestionService();\nconst eventEmitter = useEventEmitterService();\n\nconst questionStatus = ref<QuestionStatus>(QuestionStatus.Unpublished);\nconst questions = ref<Question[]>([]);\nconst selectedQuestion = ref<Question | undefined>();\nconst hasKpis = ref<boolean>(true);\nconst loaded = ref<boolean>(false);\n\nconst pageSize = 8;\n\nconst fetchData = async (): Promise<void> => {\n const caller = questionStatus.value === QuestionStatus.Published ? getPublishedQuestions : getUnpublishedQuestions;\n questions.value = await caller(pageSize);\n};\nconst questionDeleted = async (question: Question): Promise<void> => {\n await eventEmitter.trigger(\"questionDeleted\", question);\n await fetchData();\n};\nconst questionToggledFromTable = (question: Question) => eventEmitter.trigger(\"questionKpiToggled\", question);\nconst kpiRemoved = (kpiRemoved: QuestionKpiInfo) => {\n const question = questions.value.find((q) => q.id === kpiRemoved.id);\n if (question) {\n question.showInDashboard = false;\n }\n};\n\nonMounted(async () => {\n await fetchData();\n loaded.value = true;\n});\n\nconst loadQuestions = async (newStatus: QuestionStatus) => {\n questionStatus.value = newStatus;\n await fetchData();\n};\n\nconst tabs: Tab[] = [\n {\n text: i18n.global.t(\"pages.admin.ai_assistant.questions.created_questions\"),\n action: () => loadQuestions(QuestionStatus.Unpublished),\n dataCy: \"created\",\n },\n {\n text: i18n.global.t(\"pages.admin.ai_assistant.questions.sent_questions\"),\n action: () => loadQuestions(QuestionStatus.Published),\n dataCy: \"sent\",\n },\n];\n</script>\n\n<style scoped lang=\"scss\">\n@import \"@/styles/utils/responsive\";\n.questions-overview {\n display: grid;\n grid-template-columns: 1fr;\n grid-row-gap: var(--space-s);\n\n @media only screen and (min-width: $medium-screen-breakpoint) {\n & {\n grid-column-gap: var(--space-s);\n grid-template-columns: repeat(2, 1fr);\n grid-template-areas:\n \"questions .\"\n \"questions .\";\n grid-row-gap: 0;\n }\n }\n &--with-kpis {\n grid-row-gap: var(--space-s);\n }\n}\n.questions {\n background-color: var(--color-card);\n border: 1px solid var(--color-border);\n border-radius: var(--default-border-radius);\n @media only screen and (min-width: $medium-screen-breakpoint) {\n & {\n grid-area: questions;\n }\n }\n\n &__header {\n padding: var(--size-s);\n color: var(--color-primary-accent1);\n }\n &__navigation {\n padding: var(--size-xs) var(--size-s);\n }\n &__list {\n padding: var(--size-s) 0;\n }\n &__subheader {\n padding-bottom: 0;\n color: var(--color-primary-accent1);\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n}\n</style>\n","<template>\n <LayoutPage :title=\"$t('pages.admin.ai_assistant.title')\">\n <AppGenericFilter :placeholder=\"$t('pages.admin.ai_assistant.questions.search')\" class=\"margin-b--m\" @filter-changed=\"filterChanged\" />\n <AppPanel :padding-content=\"false\" :padding-footer=\"false\" :padding-header=\"false\">\n <template #header>\n <div>\n <p class=\"text text--bold margin--s\">{{ $t(\"pages.admin.ai_assistant.questions.title\") }}</p>\n <div class=\"navigation\">\n <AppTab :tabs=\"tabs\" :tab-id=\"$t('pages.admin.dashboard.welcome')\" />\n <div>\n <span v-if=\"questionStatus === QuestionStatus.Unpublished\" class=\"text text--bold text--link\" @click=\"addNewQuestion\">\n <span class=\"icon icon-plus\"></span>\n {{ $t(\"pages.admin.ai_assistant.questions.add_new_question\") }}\n </span>\n </div>\n <AppButton\n v-if=\"questionStatus === QuestionStatus.Published\"\n :text=\"$t('pages.admin.ai_assistant.questions.do_not_send_questions')\"\n :disabled=\"selectedQuestionsCount === 0 || working\"\n variant=\"secondary\"\n size=\"m\"\n data-cy=\"unpublish\"\n @onclick=\"updateSelectedQuestionsStatus(QuestionStatus.Unpublished)\" />\n </div>\n </div>\n </template>\n <template #default>\n <QuestionsTable\n :questions=\"questionsInView\"\n :allow-select=\"true\"\n :allow-sort=\"true\"\n :allow-add-to-dashboard=\"questionStatus === QuestionStatus.Published\"\n :question-status=\"questionStatus\"\n :maximum-order=\"maximumOrder\"\n :minimum-order=\"minimumOrder\"\n :order=\"order\"\n @question-ascended=\"questionAscendedHandler\"\n @question-descended=\"questionDescendedHandler\"\n @question-deleted=\"questionDeletedHandler\"\n @question-edited=\"questionEditedHandler\" />\n </template>\n <template #footer>\n <div class=\"assistant__footer\">\n <AppButton\n v-if=\"questionStatus === QuestionStatus.Unpublished\"\n :text=\"$t('pages.admin.ai_assistant.questions.send_questions')\"\n :disabled=\"selectedQuestionsCount === 0 || working\"\n variant=\"secondary\"\n size=\"m\"\n data-cy=\"publish\"\n @onclick=\"updateSelectedQuestionsStatus(QuestionStatus.Published)\" />\n <AppButton\n v-if=\"questionStatus === QuestionStatus.Published\"\n :text=\"$t('pages.admin.ai_assistant.questions.do_not_send_questions')\"\n :disabled=\"selectedQuestionsCount === 0 || working\"\n variant=\"secondary\"\n size=\"m\"\n data-cy=\"unpublish\"\n @onclick=\"updateSelectedQuestionsStatus(QuestionStatus.Unpublished)\" />\n </div>\n </template>\n </AppPanel>\n <QuestionWizard v-if=\"creating\" mode=\"create\" @close=\"creating = false\" @saved=\"questionAdded\" />\n <AppModal name=\"question-preview\">\n <QuestionPreview v-if=\"selectedQuestion\" :item=\"selectedQuestion\" />\n </AppModal>\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppGenericFilter from \"@/components/AppGenericFilter.vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport AppModal from \"@/components/modal/AppModal.vue\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport AppTab, { type Tab } from \"@/components/AppTab.vue\";\nimport type { Question, QuestionSelectable } from \"@/models/question\";\nimport { QuestionStatus } from \"@/models/questionStatus\";\nimport useQuestionService from \"@/services/useQuestionService\";\nimport QuestionPreview from \"@/views/admin/ai-assistant/components/wizard/previews/QuestionPreview.vue\";\nimport QuestionWizard from \"@/views/admin/ai-assistant/components/wizard/QuestionWizard.vue\";\nimport { computed, onMounted, ref } from \"vue\";\nimport QuestionsTable from \"@/views/admin/ai-assistant/components/grid/QuestionsTable.vue\";\nimport type { Order } from \"@/components/table/Order\";\nimport useModal from \"@/components/modal/useModal\";\nimport i18n from \"@/i18n\";\n\nconst working = ref<boolean>(false);\nconst questionStatus = ref<QuestionStatus>(QuestionStatus.Unpublished);\nconst selectedAll = ref<boolean>(false);\nconst questionsInView = ref<QuestionSelectable[]>([]);\nconst selectedQuestion = ref<Question | undefined>();\nconst searchText = ref<string>(\"\");\nconst minimumOrder = ref<number>(0);\nconst maximumOrder = ref<number>(0);\nconst questions = ref<Question[]>([]);\nconst creating = ref<boolean>(false);\nconst order = ref<Order>({ direction: \"asc\", id: 2 });\nconst { getPublishedQuestions, getUnpublishedQuestions, publishQuestions, unpublishQuestions } = useQuestionService();\nconst { openTextModal } = useModal();\n\nconst addNewQuestion = (): void => {\n creating.value = true;\n};\n\nconst questionAdded = async (): Promise<void> => {\n creating.value = false;\n await loadQuestions();\n};\n\nconst updateSelectedQuestionsStatus = async (newStatus: QuestionStatus): Promise<void> => {\n const publishing = newStatus === QuestionStatus.Published;\n const messageKey = publishing ? \"send_questions\" : \"do_not_send_questions\";\n\n openTextModal({\n title: i18n.global.t(`pages.admin.ai_assistant.questions.${messageKey}`),\n contentText: i18n.global.t(\"shared.are_you_sure\"),\n icon: publishing ? undefined : { content: \"warning\", style: \"error\" },\n showCancelToClose: true,\n confirmCallback: async () => {\n working.value = true;\n try {\n await changePublishedStatusForSelectedQuestions(newStatus);\n } finally {\n working.value = false;\n selectedAll.value = false;\n await loadQuestions();\n }\n },\n });\n};\n\nconst changePublishedStatusForSelectedQuestions = async (newStatus: QuestionStatus): Promise<void> => {\n const selectedQuestions = questionsInView.value.filter((question) => question.selected);\n const questionHandle = newStatus === QuestionStatus.Published ? publishQuestions : unpublishQuestions;\n await questionHandle(selectedQuestions);\n};\nconst questionAscendedHandler = (question: Question): void => {\n const newOrder = (question.order ?? 0) - 1;\n const questionToSwap = questions.value.find((q) => q.order === newOrder);\n\n if (!questionToSwap) {\n return;\n }\n\n question.order = newOrder;\n questionToSwap.order = newOrder + 1;\n\n configureGrid();\n};\nconst questionDescendedHandler = (question: Question): void => {\n const newOrder = (question.order ?? 0) + 1;\n const questionToSwap = questions.value.find((q) => q.order === newOrder);\n\n if (!questionToSwap) {\n return;\n }\n\n question.order = newOrder;\n questionToSwap.order = newOrder - 1;\n\n configureGrid();\n};\nconst questionEditedHandler = (question: Question): void => {\n question.edited = new Date();\n questions.value = [...questions.value.filter((q) => q.id !== question.id), { ...question }];\n\n configureGrid();\n};\nconst questionDeletedHandler = (question: Question): void => {\n questions.value = questions.value.filter((q) => q.id !== question.id);\n\n const nextQuestions = questions.value.filter((q) => q.order && question.order && q.order > question.order);\n\n for (const question of nextQuestions) {\n question.order = (question.order ?? 0) - 1;\n }\n\n configureGrid();\n};\n\nconst selectedQuestionsCount = computed(() => questionsInView.value.filter((q) => q.selected).length);\n\nconst loadQuestions = async (): Promise<void> => {\n const caller = questionStatus.value === QuestionStatus.Published ? getPublishedQuestions : getUnpublishedQuestions;\n questions.value = await caller();\n configureGrid();\n};\n\nonMounted(loadQuestions);\n\nconst filterChanged = (newSearch: string) => {\n searchText.value = newSearch;\n configureGrid();\n};\n\nconst changeQuestionStatus = async (newQuestionStatus: QuestionStatus): Promise<void> => {\n if (questionStatus.value === newQuestionStatus) {\n return;\n }\n questionStatus.value = newQuestionStatus;\n order.value = {\n direction: \"asc\",\n id: questionStatus.value === QuestionStatus.Published ? 1 : 2,\n };\n await loadQuestions();\n};\n\nconst configureGrid = (): void => {\n minimumOrder.value = Math.min(...questions.value.map((q) => q.order ?? 0));\n maximumOrder.value = Math.max(...questions.value.map((q) => q.order ?? 0));\n questionsInView.value =\n questions.value\n .filter((q) => q.title.toLocaleUpperCase().indexOf(searchText.value.toLocaleUpperCase()) > -1)\n .map((q) => q as QuestionSelectable) || [];\n};\n\nconst tabs: Tab[] = [\n {\n text: i18n.global.t(\"pages.admin.ai_assistant.questions.created_questions\"),\n action: () => changeQuestionStatus(QuestionStatus.Unpublished),\n dataCy: \"created\",\n },\n {\n text: i18n.global.t(\"pages.admin.ai_assistant.questions.sent_questions\"),\n action: () => changeQuestionStatus(QuestionStatus.Published),\n dataCy: \"sent\",\n },\n];\n</script>\n\n<style scoped lang=\"scss\">\n.navigation {\n padding: 0 var(--space-s) var(--space-s) var(--space-s);\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.assistant__footer {\n padding: var(--space-m);\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n}\n</style>\n","<template>\n <div class=\"employee-goal\">\n <div>\n <AppProfileAvatar :size=\"size\" :information=\"employeeInformation\" />\n </div>\n <div class=\"employee-goal__info\">\n <span class=\"text--l text--bold text--link\" @click=\"viewEmployee\">{{\n $t(\"pages.admin.company_goals.goal_detail.employee_full_name\", { firstName: employee.firstName, lastName: employee.lastName })\n }}</span>\n <span class=\"text--s text--bold\">{{ currentJob ?? $t(\"shared.not_available\") }}</span>\n </div>\n <div class=\"employee-goal__progress\">\n <AppProgressBar :value=\"employee.goalTargetFit\" />\n </div>\n <span class=\"text text--s text--bold\">{{ $n(employee.goalTargetFit / 100, \"percent\") }}</span>\n <div v-if=\"displayDelete\" class=\"employee-goal__delete\" data-cy=\"delete-employee\" @click=\"deleteEmployee\">\n <span class=\"text text--link icon icon-close\"></span>\n </div>\n <div v-if=\"displayAdd\" class=\"employee-goal__add\" data-cy=\"add-employee\" @click=\"addEmployee\">\n <span class=\"text text--link icon icon-plus\"></span>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport AppProfileAvatar from \"@/components/AppProfileAvatar.vue\";\nimport AppProgressBar from \"@/components/AppProgressBar.vue\";\nimport type { CompanyGoalEmployee } from \"@/models/companyGoalEmployee\";\nimport type { AvatarInformation } from \"@/models/employee/avatarInformation\";\n\ninterface Props {\n employee: CompanyGoalEmployee;\n size?: \"s\" | \"m\";\n displayDelete?: boolean;\n displayAdd?: boolean;\n}\nconst props = withDefaults(defineProps<Props>(), { displayJob: true, size: \"m\" });\n\nconst currentJob = props.employee.currentPosition?.length > 0 ? props.employee.currentPosition[0] : undefined;\nconst employeeInformation: AvatarInformation = { ...props.employee, id: props.employee.employeeId };\n\ninterface Emits {\n (e: \"addClick\", employee: CompanyGoalEmployee): void;\n (e: \"deleteClick\", id: number): void;\n (e: \"detailsClick\", id: number): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst addEmployee = () => emit(\"addClick\", props.employee);\nconst deleteEmployee = () => emit(\"deleteClick\", props.employee.employeeId);\nconst viewEmployee = () => emit(\"detailsClick\", props.employee.employeeId);\n</script>\n\n<style lang=\"scss\">\n.employee-goal {\n display: flex;\n align-items: center;\n column-gap: var(--space-s);\n\n &__info {\n display: flex;\n flex-direction: column;\n flex: 1 100%;\n\n &--wrapper-m {\n display: flex;\n flex-direction: column;\n row-gap: 4px;\n padding-top: 4px;\n }\n\n &--wrapper-s {\n display: flex;\n gap: var(--space-xxs);\n padding-top: 4px;\n }\n }\n &__progress {\n width: 70%;\n }\n &__delete {\n cursor: pointer;\n }\n}\n</style>\n","import type { Ref } from \"vue\";\nimport type { CompanyGoal, CompanyGoalWithEmployees } from \"@/models/companyGoal\";\nimport type { CompanyGoalEmployee } from \"@/models/companyGoalEmployee\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\n\nconst BASE_URL = \"/api/company/goals\";\nconst { post, get, put, loading, httpDelete, appBaseUrl } = useHttpClient();\n\ninterface UseCompanyGoalsServiceReturn {\n addEmployeeToCompanyGoal: (goalId: number, employeeId: number) => Promise<void>;\n createCompanyGoal: (goal: CompanyGoal) => Promise<number>;\n deleteCompanyGoal: (goalId: number) => Promise<void>;\n deleteEmployeeFromCompanyGoal: (goalId: number, employeeId: number) => Promise<void>;\n getCompanyGoal: (goalId: number) => Promise<CompanyGoalWithEmployees>;\n getCompanyGoalRecommendedEmployees: (goalId: number) => Promise<CompanyGoalEmployee[]>;\n getCompanyGoals: () => Promise<CompanyGoal[]>;\n getGoalPictureUrl: (goalId: number) => string;\n launchCompanyGoal: (goalId: number) => Promise<void>;\n updateCompanyGoal: (goal: Partial<CompanyGoal>) => Promise<number>;\n setSuccessCompanyGoalResult: (goalId: number) => Promise<void>;\n setFailureCompanyGoalResult: (goalId: number) => Promise<void>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseCompanyGoalsServiceReturn => {\n const createCompanyGoal = (goal: CompanyGoal): Promise<number> => post(BASE_URL, goal);\n const updateCompanyGoal = (goal: Partial<CompanyGoal>): Promise<number> => put(`${BASE_URL}/${goal.id}`, goal);\n\n const getCompanyGoal = (goalId: number): Promise<CompanyGoalWithEmployees> => get(`${BASE_URL}/${goalId}`);\n const deleteCompanyGoal = (goalId: number): Promise<void> => httpDelete(`${BASE_URL}/${goalId}`);\n const getCompanyGoals = (): Promise<CompanyGoal[]> => get(BASE_URL);\n\n const deleteEmployeeFromCompanyGoal = (goalId: number, employeeId: number): Promise<void> =>\n httpDelete(`${BASE_URL}/${goalId}/employee/${employeeId}`);\n\n const getGoalPictureUrl = (goalId: number): string => `${appBaseUrl}${BASE_URL}/${goalId}/picture`;\n\n const addEmployeeToCompanyGoal = (goalId: number, employeeId: number): Promise<void> =>\n post(`${BASE_URL}/${goalId}/employee`, { employeeId });\n\n const getCompanyGoalRecommendedEmployees = (goalId: number): Promise<CompanyGoalEmployee[]> => get(`${BASE_URL}/${goalId}/recommended`);\n\n const launchCompanyGoal = (goalId: number): Promise<void> => post(`${BASE_URL}/${goalId}/launch`);\n\n const setSuccessCompanyGoalResult = (goalId: number): Promise<void> => post(`${BASE_URL}/${goalId}/success`);\n const setFailureCompanyGoalResult = (goalId: number): Promise<void> => post(`${BASE_URL}/${goalId}/failure`, {});\n\n return {\n createCompanyGoal,\n updateCompanyGoal,\n getCompanyGoal,\n deleteCompanyGoal,\n getCompanyGoals,\n deleteEmployeeFromCompanyGoal,\n getGoalPictureUrl,\n addEmployeeToCompanyGoal,\n getCompanyGoalRecommendedEmployees,\n launchCompanyGoal,\n setSuccessCompanyGoalResult,\n setFailureCompanyGoalResult,\n loading,\n };\n};\n","<template>\n <AppAutomaticModalOpener :modal-config=\"modalConfig\" :disable-key-enter=\"true\">\n <div class=\"admin-company-goals-applicants\" data-cy=\"employees-recommender\">\n <AppInputText\n v-model=\"searchText\"\n :placeholder=\"$t('pages.admin.company_goals.goal_detail.employees_modal.search.placeholder')\"\n :maxlength=\"200\"\n :bg-transparent=\"true\"\n class=\"search\" />\n <div class=\"text--bold margin-b--s\">\n {{ $t(`shared.applicants`, searchedEmployees.length) }}\n </div>\n <div v-if=\"employeesInView.length > 0\" class=\"employee-list\">\n <div class=\"employee-list__title margin-r--xl\">\n <span>{{ $t(\"pages.admin.company_goals.goal_detail.employees_modal.list_title.employee\") }}</span>\n <span>{{ $t(\"pages.admin.company_goals.goal_detail.employees_modal.list_title.match_with_goal\") }}</span>\n </div>\n <div>\n <AppSeparator />\n </div>\n <div class=\"employee-list__content margin-b--s\">\n <AppEmployeeGoalProfile\n v-for=\"employee in employeesInView\"\n :key=\"employee.employeeId\"\n :employee=\"employee\"\n class=\"employee-list__item\"\n size=\"s\"\n display-add\n @details-click=\"viewEmployee\"\n @add-click=\"addEmployee\" />\n </div>\n <div class=\"employee-list__actions\">\n <AppButton :text=\"$t('buttons.previous')\" variant=\"secondary\" size=\"m\" :disabled=\"currentPage === 1\" @onclick=\"previousPage\" />\n <AppTag :main-text=\"`${currentPage} / ${totalPages}`\" type=\"presence\" :limited-size=\"true\" />\n <AppButton\n :text=\"$t('buttons.next')\"\n variant=\"secondary\"\n size=\"m\"\n :disabled=\"currentPage * pageSize >= totalEmployees\"\n @onclick=\"nextPage\" />\n </div>\n </div>\n </div>\n </AppAutomaticModalOpener>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref, watch } from \"vue\";\nimport { containsInsensitive } from \"@/utils/stringUtils\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppEmployeeGoalProfile from \"@/components/AppEmployeeGoalProfile.vue\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppSeparator from \"@/components/AppSeparator.vue\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport i18n from \"@/i18n\";\nimport router from \"@/router/router\";\nimport type { CompanyGoalEmployee } from \"@/models/companyGoalEmployee\";\nimport type { CompanyGoalWithEmployees } from \"@/models/companyGoal\";\nimport useCompanyGoalsService from \"@/services/useCompanyGoalsService\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport type { ModalBase } from \"@/components/modal/models\";\n\ninterface Props {\n goal: CompanyGoalWithEmployees;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n (e: \"close-click\"): void;\n (e: \"add-click\", employee: CompanyGoalEmployee): void;\n}>();\n\nconst { getCompanyGoalRecommendedEmployees } = useCompanyGoalsService();\nconst employees = ref<CompanyGoalEmployee[]>([]);\nconst employeesInView = ref<CompanyGoalEmployee[]>([]);\nconst searchText = ref<string>(\"\");\n\nconst pageSize = 10;\nconst currentPage = ref<number>(1);\nconst totalEmployees = computed(() => searchedEmployees.value.length || 0);\nconst totalPages = computed(() => (totalEmployees.value > 0 ? Math.ceil(totalEmployees.value / pageSize) : 1));\n\nconst searchedEmployees = computed(() =>\n employees.value\n .filter((e) => containsInsensitive(`${e.firstName} ${e.lastName}`, searchText.value))\n .sort((a, b) => (a.goalTargetFit - b.goalTargetFit) * -1)\n);\n\nwatch(currentPage, () => refreshEmployeesInView());\nwatch(searchedEmployees, () => refreshEmployeesInView(true));\n\nonMounted(() => getEmployees());\n\nconst modalConfig: ModalBase = {\n title: i18n.global.t(\"pages.admin.company_goals.goal_detail.employees_modal.title\"),\n variant: \"floating\",\n closeCallback: () => emit(\"close-click\"),\n};\n\nconst getEmployees = async (): Promise<void> => {\n const allEmployees = props.goal.isPublic ? props.goal.queuedEmployees : await getCompanyGoalRecommendedEmployees(props.goal.id);\n\n employees.value = allEmployees.filter(\n (employee) =>\n !props.goal.assignedEmployees.find((assigned) => {\n return assigned.employeeId === employee.employeeId;\n })\n );\n};\n\nconst previousPage = (): void => {\n if (currentPage.value > 1) {\n currentPage.value--;\n }\n};\n\nconst nextPage = (): void => {\n if (currentPage.value <= totalPages.value) {\n currentPage.value++;\n }\n};\n\nconst viewEmployee = (employeeId: number) =>\n router.push({\n name: \"dashboard-admin-employee\",\n params: { employeeId },\n query: { backUrl: `/admin/corporate-goals/goal/${props.goal.id}` },\n });\n\nconst addEmployee = (employee: CompanyGoalEmployee): void => emit(\"add-click\", employee);\n\nconst refreshEmployeesInView = (isSearchingByText = false): void => (isSearchingByText ? refreshPageOne() : refreshSelectedPage());\n\nconst refreshPageOne = (): void => {\n employeesInView.value = searchedEmployees.value.slice(0, pageSize);\n currentPage.value = 1;\n};\n\nconst refreshSelectedPage = (): void => {\n const initialItem = (currentPage.value - 1) * pageSize;\n const finalItem = initialItem + pageSize;\n employeesInView.value = searchedEmployees.value.slice(initialItem, finalItem) || [];\n};\n</script>\n\n<style scoped lang=\"scss\">\n.admin-company-goals-applicants {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.employee-list {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n\n &__title {\n display: flex;\n justify-content: space-between;\n }\n\n &__content {\n display: flex;\n flex-direction: column;\n row-gap: var(--size-xs);\n overflow-y: auto;\n }\n\n &__item {\n padding: 6px;\n\n &:hover {\n background-color: var(--color-company-goals-employee-recommender-background--hover);\n border-radius: 4px;\n }\n }\n\n &__actions {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-top: auto;\n }\n}\n</style>\n","<template>\n <AppInputGeneric :label=\"label\" :error=\"error\">\n <input v-model=\"value\" type=\"number\" class=\"input text\" :min=\"min\" :step=\"step\" :disabled=\"disabled\" />\n </AppInputGeneric>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport AppInputGeneric from \"@/components/AppInputGeneric.vue\";\n\ninterface Props {\n modelValue?: number;\n step?: number;\n min?: number;\n label?: string;\n disabled?: boolean;\n error?: string;\n}\nconst props = withDefaults(defineProps<Props>(), {\n step: 1,\n disabled: false,\n error: undefined,\n});\n\nconst emit = defineEmits<(e: \"update:modelValue\", value: number | undefined) => void>();\n\nconst value = computed({\n get: () => props.modelValue,\n set: (val) => emit(\"update:modelValue\", (val as unknown as string) === \"\" ? undefined : val),\n});\n</script>\n","<template>\n <AppWizardPath\n :steps=\"steps\"\n :selected-step=\"selectedStep\"\n name-prefix=\"pages.admin.company_goals.add_new_goal.path\"\n @step-click=\"stepClick\" />\n</template>\n<script setup lang=\"ts\">\nimport AppWizardPath from \"@/components/AppWizardPath.vue\";\n\ninterface Props {\n selectedStep: number;\n}\ndefineProps<Props>();\n\nconst emit = defineEmits<(e: \"stepClick\", step: number) => void>();\n\nconst steps = [\n { number: 1, name: \"overview\" },\n { number: 2, name: \"general_skills\" },\n { number: 3, name: \"language_skills\" },\n];\nconst stepClick = (step: number) => emit(\"stepClick\", step);\n</script>\n","<template>\n <AppAutomaticModalOpener :modal-config=\"modalConfig\" :disable-key-enter=\"true\">\n <div class=\"wizard\" data-cy=\"wizard\">\n <GoalWizardPath :selected-step=\"currentStep\" @step-click=\"stepClick\" />\n <div v-if=\"currentStep === 1\" data-cy=\"step-1\">\n <AppForm class=\"margin-t--m\">\n <AppPanel v-if=\"isOpen || isOpen === undefined\" :dark=\"true\">\n <AppToggle v-model=\"isPublic\" :text=\"$t('pages.admin.company_goals.add_new_goal.fields.is_open.label')\" data-cy=\"isPublic\" />\n </AppPanel>\n <div class=\"margin-v--m\">\n <AppUploadDocument\n v-model=\"picture\"\n :label=\"$t('shared.attachment.label')\"\n :download-url=\"goal === undefined ? undefined : getGoalPictureUrl(goal.id)\"\n :name=\"picture?.fileName\"\n :accept=\"allowedImageExtensions.join()\"\n :maximum-size=\"maxFileSizeInMB\"\n :error=\"pictureError\"\n button-variant=\"secondary\"\n data-cy=\"picture\" />\n </div>\n\n <AppInputText\n v-model=\"title\"\n :label=\"$t('pages.admin.company_goals.add_new_goal.fields.title.label')\"\n :placeholder=\"$t('pages.admin.company_goals.add_new_goal.fields.title.placeholder')\"\n :maxlength=\"4000\"\n :error=\"titleError\"\n data-cy=\"title\" />\n <AppInputTextArea\n v-model=\"description\"\n :label=\"$t('pages.admin.company_goals.add_new_goal.fields.description.label')\"\n :placeholder=\"$t('pages.admin.company_goals.add_new_goal.fields.description.placeholder')\"\n :maxlength=\"2000\"\n :rows=\"6\"\n :error=\"descriptionError\"\n data-cy=\"description\" />\n <AppInputText\n v-model=\"link\"\n :label=\"$t('pages.admin.company_goals.add_new_goal.fields.link.label')\"\n :placeholder=\"$t('pages.admin.company_goals.add_new_goal.fields.link.placeholder')\"\n :maxlength=\"200\"\n :error=\"linkError\"\n data-cy=\"link\" />\n <div class=\"grid grid--two-columns\">\n <AppInputNumber\n v-model=\"numberOfPeopleNeeded\"\n :label=\"$t('pages.admin.company_goals.add_new_goal.fields.number_of_people_needed.label')\"\n :error=\"numberOfPeopleNeededError\"\n data-cy=\"numberOfPeopleNeeded\" />\n <AppInputDate\n v-if=\"isPublic\"\n v-model=\"applicationClosing\"\n :label=\"$t('pages.admin.company_goals.add_new_goal.fields.application_closing.label')\"\n :error=\"applicationClosingError\"\n :min-date=\"new Date()\"\n data-cy=\"applicationClosing\" />\n </div>\n <div class=\"grid grid--two-columns\">\n <AppInputText\n v-model=\"country\"\n :label=\"$t('pages.admin.company_goals.add_new_goal.fields.country.label')\"\n :placeholder=\"$t('pages.admin.company_goals.add_new_goal.fields.country.placeholder')\"\n :maxlength=\"200\"\n :error=\"countryError\"\n data-cy=\"country\" />\n <AppInputText\n v-model=\"city\"\n :label=\"$t('pages.admin.company_goals.add_new_goal.fields.city.label')\"\n :placeholder=\"$t('pages.admin.company_goals.add_new_goal.fields.city.placeholder')\"\n :maxlength=\"200\"\n :error=\"cityError\"\n data-cy=\"city\" />\n </div>\n <div class=\"grid grid--two-columns\">\n <AppInputDate\n v-model=\"start\"\n :label=\"$t('pages.admin.company_goals.add_new_goal.fields.start.label')\"\n :error=\"startError\"\n :min-date=\"new Date()\"\n data-cy=\"start\" />\n <AppInputDate\n v-model=\"end\"\n :label=\"$t('pages.admin.company_goals.add_new_goal.fields.end.label')\"\n :error=\"endError\"\n :min-date=\"new Date()\"\n data-cy=\"end\" />\n </div>\n </AppForm>\n </div>\n <div v-else-if=\"currentStep === 2\" data-cy=\"step-2\">\n <p class=\"margin-v--m\">{{ $t(\"pages.admin.company_goals.add_new_goal.path.general_skills.description\") }}</p>\n <AppSkillEditor\n :input=\"skillsGeneralNeeded\"\n :skills-type=\"SkillType.General\"\n data-cy=\"skillsGeneralNeeded\"\n @updated=\"skillsGeneralNeededUpdated\" />\n </div>\n <div v-else-if=\"currentStep === 3\" data-cy=\"step-3\">\n <p class=\"margin-v--m\">{{ $t(\"pages.admin.company_goals.add_new_goal.path.language_skills.description\") }}</p>\n <AppSkillEditor\n :input=\"skillsLanguageNeeded\"\n :skills-type=\"SkillType.Language\"\n data-cy=\"skillsLanguageNeeded\"\n @updated=\"skillsLanguageNeededUpdated\" />\n </div>\n </div>\n <template #actions>\n <div class=\"wizard__actions\">\n <div>\n <AppButton\n :text=\"$t('buttons.previous')\"\n variant=\"secondary\"\n size=\"m\"\n :disabled=\"currentStep === 1\"\n data-cy=\"prev\"\n @onclick=\"prev()\" />\n </div>\n <div>\n <AppButton\n v-if=\"currentStep !== lastStep\"\n :text=\"$t('buttons.next')\"\n variant=\"secondary\"\n size=\"m\"\n data-cy=\"next\"\n @onclick=\"next()\" />\n <AppButton\n v-if=\"currentStep === lastStep\"\n :text=\"$t('buttons.save_draft')\"\n variant=\"secondary\"\n size=\"m\"\n data-cy=\"draft\"\n @onclick=\"saveAsDraft()\" />\n <AppButton\n v-if=\"currentStep === lastStep\"\n :text=\"$t('buttons.publish')\"\n class=\"margin-l--m\"\n variant=\"primary\"\n size=\"m\"\n data-cy=\"save\"\n @onclick=\"publish()\" />\n </div>\n </div>\n </template>\n </AppAutomaticModalOpener>\n</template>\n\n<script setup lang=\"ts\">\nimport i18n from \"@/i18n\";\nimport { object as yupObject, date as yupDate, number as yupNumber, bool as yupBool } from \"yup\";\nimport { allowedImageExtensions, maxFileSizeInMB } from \"@/utils/fileUtils\";\nimport { convertDateOnlyToLocale } from \"@/utils/dateUtils\";\nimport { largeTextLength, mediumTextLength } from \"@/constants/restrictions\";\nimport { onMounted, ref } from \"vue\";\nimport { SkillType } from \"@/models/skillType\";\nimport { useField, useForm } from \"vee-validate\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppForm from \"@/components/AppForm.vue\";\nimport AppInputDate from \"@/components/AppInputDate.vue\";\nimport AppInputNumber from \"@/components/AppInputNumber.vue\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppInputTextArea from \"@/components/AppInputTextArea.vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport AppSkillEditor from \"@/components/AppSkillEditor.vue\";\nimport AppToggle from \"@/components/AppToggle.vue\";\nimport AppUploadDocument from \"@/components/uploadDocument/AppUploadDocument.vue\";\nimport GoalWizardPath from \"@/views/admin/company-goals/components/wizard/GoalWizardPath.vue\";\nimport type { CompanyGoal } from \"@/models/companyGoal\";\nimport type { FileAttachment } from \"@/models/fileAttachment\";\nimport type { ModalBase } from \"@/components/modal/models\";\nimport type { SkillWithProgression } from \"@/models/skillWithProgression\";\nimport useCompanyGoalsService from \"@/services/useCompanyGoalsService\";\nimport useFormSchema from \"@/services/useFormSchema\";\nimport useModal from \"@/components/modal/useModal\";\nimport useToaster from \"@/components/toaster/useToaster\";\nimport useFormValidator from \"@/services/useFormValidator\";\n\nconst { openTextModal } = useModal();\nconst { createCompanyGoal, updateCompanyGoal, getGoalPictureUrl } = useCompanyGoalsService();\nconst { openToaster } = useToaster();\nconst { startDateMinTodaySchema, endDateSchema, attachmentSchema, inputRequiredText, stringSchema, stringUrlSchema } = useFormSchema();\nconst { getObjectFromForm } = useFormValidator();\n\ninterface Props {\n goal?: CompanyGoal;\n isOpen?: boolean;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"close\"): void;\n (e: \"goal-created\", goal: CompanyGoal): void;\n (e: \"goal-edited\", goal: CompanyGoal): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst lastStep = 3;\nconst currentStep = ref<number>(1);\nconst skillsGeneralNeeded = ref<SkillWithProgression[]>([]);\nconst skillsLanguageNeeded = ref<SkillWithProgression[]>([]);\nconst applicationClosingSchemaNonPublic = startDateMinTodaySchema({ dateSet: props.goal?.applicationClosing });\n\nconst applicationClosingSchema = yupDate()\n .when(\"isPublic\", ([isPublic], schema) => (!isPublic ? schema : applicationClosingSchemaNonPublic))\n .test({\n name: \"max\",\n exclusive: false,\n params: {},\n message: i18n.global.t(\"inputs.a_date_has_to_be_after_another_date\", {\n first: i18n.global.t(\"pages.admin.company_goals.add_new_goal.fields.start.label\"),\n second: i18n.global.t(\"pages.admin.company_goals.add_new_goal.fields.application_closing.label\"),\n }),\n test: (value, context) => value === undefined || value < context.parent.start,\n });\n\nconst editionSchema = yupObject({\n id: yupNumber(),\n isPublic: yupBool().required().default(false),\n title: stringSchema({ required: true, maxLength: mediumTextLength }),\n description: stringSchema({ required: true, maxLength: largeTextLength }).min(1, inputRequiredText()),\n country: stringSchema({ required: true, maxLength: mediumTextLength }),\n city: stringSchema({ required: true, maxLength: mediumTextLength }),\n link: stringUrlSchema({ required: false }),\n numberOfPeopleNeeded: yupNumber()\n .required(inputRequiredText())\n .min(1, i18n.global.t(\"inputs.min_required\", { minimum: 1 }))\n .max(6, i18n.global.t(\"inputs.max_required\", { maximum: 6 })),\n applicationClosing: applicationClosingSchema,\n start: startDateMinTodaySchema({ dateSet: props.goal?.start }),\n end: endDateSchema({ startDateFieldName: \"start\", canBeEqualToStartDate: false }),\n picture: attachmentSchema(allowedImageExtensions, maxFileSizeInMB),\n});\n\nconst form = useForm({ validationSchema: editionSchema });\nconst { value: isPublic } = useField<boolean>(\"isPublic\");\nisPublic.value = props.isOpen ?? false;\nconst { value: title, errorMessage: titleError } = useField<string>(\"title\");\nconst { value: description, errorMessage: descriptionError } = useField<string>(\"description\");\nconst { value: numberOfPeopleNeeded, errorMessage: numberOfPeopleNeededError } = useField<number>(\"numberOfPeopleNeeded\");\nconst { value: country, errorMessage: countryError } = useField<string>(\"country\");\nconst { value: city, errorMessage: cityError } = useField<string>(\"city\");\nconst { value: link, errorMessage: linkError } = useField<string | undefined>(\"link\");\nconst { value: applicationClosing, errorMessage: applicationClosingError } = useField<Date | undefined>(\"applicationClosing\");\nconst { value: start, errorMessage: startError } = useField<Date>(\"start\");\nconst { value: end, errorMessage: endError } = useField<Date>(\"end\");\nconst { value: picture, errorMessage: pictureError } = useField<FileAttachment | undefined>(\"picture\");\n\nonMounted(() => {\n if (props.goal === undefined) {\n return;\n }\n\n isPublic.value = props.goal.isPublic;\n title.value = props.goal.title;\n description.value = props.goal.description;\n numberOfPeopleNeeded.value = props.goal.numberOfPeopleNeeded;\n country.value = props.goal.country;\n city.value = props.goal.city;\n link.value = props.goal.link;\n applicationClosing.value = props.goal.applicationClosing ? convertDateOnlyToLocale(props.goal.applicationClosing) : undefined;\n start.value = convertDateOnlyToLocale(props.goal.start);\n end.value = convertDateOnlyToLocale(props.goal.end);\n picture.value = props.goal.picture ? { fileName: props.goal.picture.fileName } : undefined;\n skillsGeneralNeeded.value = props.goal.skillsNeeded.filter((s) => s.type === SkillType.General);\n skillsLanguageNeeded.value = props.goal.skillsNeeded.filter((s) => s.type === SkillType.Language);\n});\n\nconst modalConfig: ModalBase = {\n title: props.goal ? title : i18n.global.t(\"pages.admin.company_goals.add_new_goal.title\"),\n variant: \"large\",\n closeCallback: () => emit(\"close\"),\n};\n\nconst skillsGeneralNeededUpdated = (updatedSkills: SkillWithProgression[] | undefined): void => {\n skillsGeneralNeeded.value = updatedSkills ?? [];\n};\nconst skillsLanguageNeededUpdated = (updatedSkills: SkillWithProgression[] | undefined): void => {\n skillsLanguageNeeded.value = updatedSkills ?? [];\n};\n\nconst next = async () => {\n if (currentStep.value === 1) {\n await form.validate();\n }\n if (currentStep.value < lastStep) {\n currentStep.value++;\n }\n};\nconst prev = () => {\n if (currentStep.value > 1) {\n currentStep.value--;\n }\n};\nconst stepClick = (step: number) => (currentStep.value = step);\nconst saveAsDraft = () => save(false);\n\nconst publish = () => {\n openTextModal({\n title: i18n.global.t(\"pages.admin.company_goals.add_new_goal.confirm_publish.title\"),\n contentText: i18n.global.t(\"pages.admin.company_goals.add_new_goal.confirm_publish.description\"),\n showCancelToClose: true,\n confirmCallback: async () => {\n await save(true);\n },\n });\n};\nconst save = async (publish: boolean): Promise<boolean> => {\n const validationResult = await form.validate();\n if (!validationResult.valid) {\n currentStep.value = 1;\n return false;\n }\n\n const goalFormForm = getObjectFromForm<CompanyGoal>(form);\n const goal: CompanyGoal = {\n ...goalFormForm,\n id: props.goal?.id ?? 0,\n isPublished: publish,\n isLaunched: false,\n applicationClosing: isPublic.value ? applicationClosing.value : undefined,\n skillsNeeded: [...skillsLanguageNeeded.value, ...skillsGeneralNeeded.value],\n created: new Date(),\n edited: new Date(),\n } as CompanyGoal;\n\n if (props.goal) {\n await updateCompanyGoal(goal);\n openToaster(\"success\", i18n.global.t(\"pages.admin.company_goals.add_new_goal.successfully_updated\"));\n emit(\"goal-edited\", goal);\n } else {\n goal.id = await createCompanyGoal(goal);\n openToaster(\"success\", i18n.global.t(\"pages.admin.company_goals.add_new_goal.successfully_created\"));\n emit(\"goal-created\", goal);\n }\n form.resetForm();\n\n emit(\"close\");\n\n return true;\n};\n</script>\n\n<style scoped lang=\"scss\">\n.wizard {\n &__actions {\n width: 100%;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n }\n}\n</style>\n","<template>\n <AppAutomaticModalOpener :modal-config=\"modalConfig\" :disable-key-enter=\"true\">\n <AppForm>\n <AppPanel v-if=\"!goal.isPublic\" dark :border=\"false\" class=\"margin-b--m\">\n <AppLabel :label=\"$t('pages.admin.company_goals.edit_goal.fields.is_not_open.label')\" />\n </AppPanel>\n <AppPanel v-else-if=\"isApplicationPhaseOpen(goal)\" dark :border=\"false\" class=\"margin-b--m\">\n <AppLabel :label=\"$t('pages.admin.company_goals.edit_goal.fields.is_open.label')\" />\n </AppPanel>\n <AppInputText\n v-model=\"title\"\n :label=\"$t('pages.admin.company_goals.edit_goal.fields.title.label')\"\n :placeholder=\"$t('pages.admin.company_goals.edit_goal.fields.title.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"titleError\"\n data-cy=\"title\" />\n <AppInputTextArea\n v-model=\"description\"\n :label=\"$t('pages.admin.company_goals.edit_goal.fields.description.label')\"\n :placeholder=\"$t('pages.admin.company_goals.edit_goal.fields.description.placeholder')\"\n :maxlength=\"largeTextLength\"\n :error=\"descriptionError\"\n data-cy=\"description\" />\n <AppInputText\n v-model=\"link\"\n :label=\"$t('pages.admin.company_goals.edit_goal.fields.link.label')\"\n :placeholder=\"$t('pages.admin.company_goals.edit_goal.fields.link.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"linkError\"\n data-cy=\"link\" />\n <div class=\"grid grid--two-columns\">\n <AppLabel\n class=\"margin-b--m\"\n :label=\"$t('pages.admin.company_goals.edit_goal.fields.number_of_people_needed.label')\"\n :value=\"goal.numberOfPeopleNeeded\"\n compress />\n <AppInputDate\n v-if=\"isApplicationClosingDateEditable(goal)\"\n v-model=\"applicationClosing\"\n :label=\"$t('pages.admin.company_goals.edit_goal.fields.application_closing.label')\"\n :error=\"applicationClosingError\"\n data-cy=\"applicationClosing\" />\n <AppLabel\n v-if=\"goal.isPublic && !isApplicationClosingDateEditable(goal)\"\n class=\"margin-b--m\"\n :label=\"$t('pages.admin.company_goals.edit_goal.fields.application_closing.label')\"\n :value=\"goal.applicationClosing\"\n compress />\n </div>\n <div class=\"grid grid--two-columns margin-b--m\">\n <AppLabel :label=\"$t('pages.admin.company_goals.edit_goal.fields.country.label')\" :value=\"goal.country\" compress />\n <AppLabel :label=\"$t('pages.admin.company_goals.edit_goal.fields.city.label')\" :value=\"goal.city\" compress />\n </div>\n <div class=\"grid grid--two-columns\">\n <AppInputDate\n v-if=\"isStartDateEditable(goal)\"\n v-model=\"start\"\n :label=\"$t('pages.admin.company_goals.edit_goal.fields.start.label')\"\n :error=\"startError\"\n data-cy=\"start\" />\n <AppLabel v-else :label=\"$t('pages.admin.company_goals.edit_goal.fields.start.label')\" :value=\"goal.start\" />\n <AppInputDate v-model=\"end\" :label=\"$t('pages.admin.company_goals.edit_goal.fields.end.label')\" :error=\"endError\" data-cy=\"end\" />\n </div>\n </AppForm>\n </AppAutomaticModalOpener>\n</template>\n\n<script setup lang=\"ts\">\nimport i18n from \"@/i18n\";\nimport { onMounted } from \"vue\";\nimport { useField, useForm } from \"vee-validate\";\nimport { object as yupObject, number as yupNumber } from \"yup\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport AppForm from \"@/components/AppForm.vue\";\nimport AppInputDate from \"@/components/AppInputDate.vue\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppInputTextArea from \"@/components/AppInputTextArea.vue\";\nimport AppLabel from \"@/components/AppLabel.vue\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport { convertDateOnlyToLocale } from \"@/utils/dateUtils\";\nimport { isStartDateEditable, isApplicationClosingDateEditable, isApplicationPhaseOpen } from \"@/services/modelServices/companyGoalService\";\nimport { largeTextLength, mediumTextLength } from \"@/constants/restrictions\";\nimport type { CompanyGoal } from \"@/models/companyGoal\";\nimport type { ModalBase } from \"@/components/modal/models\";\nimport useCompanyGoalsService from \"@/services/useCompanyGoalsService\";\nimport useToaster from \"@/components/toaster/useToaster\";\nimport useFormValidator from \"@/services/useFormValidator\";\nimport useFormSchema from \"@/services/useFormSchema\";\n\nconst { openToaster } = useToaster();\nconst { updateCompanyGoal } = useCompanyGoalsService();\nconst { getFormCallbackHandler, getObjectFromForm } = useFormValidator();\nconst { dateSchema, stringSchema, inputRequiredText, stringUrlSchema, startDateMinTodaySchema, endDateSchema } = useFormSchema();\n\ninterface Props {\n goal: CompanyGoal;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"close\"): void;\n (e: \"goal-edited\", goal: CompanyGoal): void;\n}\nconst emit = defineEmits<Emits>();\nconst getApplicationClosingSchema = () => {\n if (!isApplicationClosingDateEditable(props.goal)) {\n return dateSchema(false);\n }\n return startDateMinTodaySchema({ dateSet: props.goal.applicationClosing }).test({\n name: \"max\",\n exclusive: false,\n params: {},\n message: i18n.global.t(\"inputs.a_date_has_to_be_after_another_date\", {\n first: i18n.global.t(\"pages.admin.company_goals.add_new_goal.fields.start.label\"),\n second: i18n.global.t(\"pages.admin.company_goals.add_new_goal.fields.application_closing.label\"),\n }),\n test: (value, context) => value === undefined || value < context.parent.start,\n });\n};\n\nconst editionSchema = yupObject({\n id: yupNumber(),\n title: stringSchema(),\n description: stringSchema({ maxLength: largeTextLength }).min(1, inputRequiredText()),\n link: stringUrlSchema({ required: false }),\n applicationClosing: getApplicationClosingSchema(),\n start: isStartDateEditable(props.goal) ? startDateMinTodaySchema({ dateSet: props.goal.start }) : dateSchema(false),\n end: endDateSchema({ startDateFieldName: \"start\", canBeEqualToStartDate: false }),\n});\n\nconst form = useForm({ validationSchema: editionSchema });\nconst { value: title, errorMessage: titleError } = useField<string>(\"title\");\nconst { value: description, errorMessage: descriptionError } = useField<string>(\"description\");\nconst { value: link, errorMessage: linkError } = useField<string | undefined>(\"link\");\nconst { value: applicationClosing, errorMessage: applicationClosingError } = useField<Date | undefined>(\"applicationClosing\");\nconst { value: start, errorMessage: startError } = useField<Date>(\"start\");\nconst { value: end, errorMessage: endError } = useField<Date>(\"end\");\n\nonMounted(() => {\n title.value = props.goal.title;\n description.value = props.goal.description;\n link.value = props.goal.link;\n applicationClosing.value = props.goal.applicationClosing ? convertDateOnlyToLocale(props.goal.applicationClosing) : undefined;\n start.value = convertDateOnlyToLocale(props.goal.start);\n end.value = convertDateOnlyToLocale(props.goal.end);\n});\n\nconst editGoal = async () => {\n const goalFormForm = getObjectFromForm<CompanyGoal>(form);\n const goal: Partial<CompanyGoal> = {\n ...goalFormForm,\n id: props.goal.id,\n applicationClosing: props.goal.isPublic ? applicationClosing.value : undefined,\n isPublic: props.goal.isPublic,\n isPublished: props.goal.isPublished,\n country: props.goal.country,\n city: props.goal.city,\n numberOfPeopleNeeded: props.goal.numberOfPeopleNeeded,\n };\n await updateCompanyGoal(goal);\n form.resetForm();\n openToaster(\"success\", i18n.global.t(\"pages.admin.company_goals.edit_goal.successfully_edited\"));\n\n const updatedGoal: CompanyGoal = { ...props.goal, ...goal };\n emit(\"goal-edited\", updatedGoal);\n};\n\nconst modalConfig: ModalBase = {\n title: title,\n confirmText: i18n.global.t(\"pages.admin.company_goals.edit_goal.save\"),\n variant: \"floating\",\n showCancelToClose: true,\n confirmCallback: getFormCallbackHandler(form, editGoal),\n onClosed: () => emit(\"close\"),\n};\n</script>\n","<template>\n <div class=\"admin-company-goals-assigned\">\n <div class=\"comments\">\n <div class=\"comments__content\">\n <p>\n {{\n goal.isPublic && goalApplicationNotClosed\n ? $t(\"pages.admin.company_goals.goal_detail.ai_will_filter_candidates\")\n : $t(\"pages.admin.company_goals.goal_detail.ai_selected_candidate\")\n }}\n </p>\n </div>\n </div>\n <div class=\"assigned-counter\">\n <AppNoContentYet\n v-if=\"employeesOrdered.length === 0\"\n class=\"text--xs text--bold\"\n :text=\"$t('pages.admin.company_goals.goal_detail.no_assigned_yet')\" />\n <span v-else class=\"text text--bold\">{{ $t(\"shared.assigned\", employeesOrdered.length) }}</span>\n </div>\n <div class=\"assigned\">\n <div v-if=\"employeesOrdered.length > 0\" class=\"assigned__list\">\n <AppEmployeeGoalProfile\n v-for=\"employee in employeesOrdered\"\n :key=\"employee.employeeId\"\n :employee=\"employee\"\n :display-delete=\"!isFinished(goal)\"\n data-cy=\"applicant\"\n @delete-click=\"deleteEmployee\"\n @details-click=\"viewEmployee\" />\n </div>\n <AppButton\n v-if=\"canAddEmployees(goal)\"\n size=\"m\"\n variant=\"secondary\"\n data-cy=\"open-recommender\"\n :text=\"$t('pages.admin.company_goals.goal_detail.add_team_member')\"\n @onclick=\"emit('applicantsClick')\" />\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppEmployeeGoalProfile from \"@/components/AppEmployeeGoalProfile.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport router from \"@/router/router\";\nimport { canAddEmployees, isFinished } from \"@/services/modelServices/companyGoalService\";\nimport type { CompanyGoalWithEmployees } from \"@/models/companyGoal\";\nimport { compareNumbers } from \"@/utils/numberUtils\";\nimport { isBiggerThanToday } from \"@/utils/dateUtils\";\n\ninterface Props {\n goal: CompanyGoalWithEmployees;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"applicantsClick\"): void;\n (e: \"deleteClick\", employeeId: number): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst employeesOrdered = computed(() =>\n [...props.goal.assignedEmployees].sort((a, b) => compareNumbers(a.goalTargetFit, b.goalTargetFit, false))\n);\n\nconst goalApplicationNotClosed = props.goal.applicationClosing && isBiggerThanToday(props.goal.applicationClosing);\n\nconst viewEmployee = (employeeId: number) =>\n router.push({\n name: \"dashboard-admin-employee\",\n params: { employeeId },\n query: { backUrl: `/admin/corporate-goals/goal/${props.goal.id}` },\n });\n\nconst deleteEmployee = (employeeId: number): void => {\n emit(\"deleteClick\", employeeId);\n};\n</script>\n\n<style scoped lang=\"scss\">\n.admin-company-goals-assigned {\n border-radius: var(--default-border-radius);\n background: var(--color-neutral-100);\n}\n\n.header {\n display: flex;\n flex-direction: column;\n row-gap: var(--size-xs);\n padding: var(--size-s) var(--size-m);\n\n &__text {\n color: var(--color-primary-accent1);\n }\n}\n\n.selector {\n display: flex;\n justify-content: center;\n padding: var(--size-m) 0 var(--size-m) 0;\n}\n\n.comments {\n &__content {\n padding: var(--size-m);\n border-radius: var(--default-border-radius);\n background: var(--color-company-goals-employee-background);\n }\n}\n.assigned-counter {\n padding: var(--size-s) 0;\n}\n\n.assigned {\n display: flex;\n flex-direction: column;\n row-gap: var(--size-m);\n max-height: 940px;\n overflow-y: auto;\n\n &__list {\n display: flex;\n flex-direction: column;\n gap: var(--size-m);\n }\n}\n</style>\n","export const getStyleValue = (key: string): string => {\n return getComputedStyle(document.documentElement).getPropertyValue(key).trimStart();\n};\n","<template>\n <div>\n <h3 class=\"margin-b--m\">{{ $t(\"pages.admin.company_goals.detail_goals.team_skills.title\") }}</h3>\n <div v-if=\"goal\" class=\"advice\">\n <PercentageChart\n :percentage=\"goal.percentageTotal\"\n :height=\"180\"\n :width=\"180\"\n :color=\"getStyleValue('--color-company-goals-skills-main-chart')\" />\n <p class=\"advice__content text--s\">{{ $t(\"pages.admin.company_goals.detail_goals.team_skills.skills.description\") }}</p>\n </div>\n <div v-if=\"goal\" class=\"skills\">\n <h3 class=\"margin-v--m\">{{ $t(\"pages.admin.company_goals.detail_goals.team_skills.skills\") }}</h3>\n <div class=\"grid--three-columns@large grid--two-columns@big grid--one-columns@medium\">\n <div v-for=\"(percentageSkill, index) in goal.skillsPercentages\" :key=\"index\" class=\"skills__item\">\n <PercentageChart shape=\"fullSmall\" :percentage=\"percentageSkill.value\" />\n <div class=\"text text--bold text--xs\">{{ percentageSkill.name }}</div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted } from \"vue\";\nimport PercentageChart from \"@/components/AppPercentageChart.vue\";\nimport { getStyleValue } from \"@/utils/styleUtils\";\nimport type { CompanyGoalWithEmployees } from \"@/models/companyGoal\";\nimport useCompanyGoalsService from \"@/services/useCompanyGoalsService\";\n\nconst { getCompanyGoal } = useCompanyGoalsService();\n\nconst goal = ref<CompanyGoalWithEmployees>();\n\ninterface Props {\n goalId: number;\n}\nconst props = defineProps<Props>();\n\nonMounted(async () => {\n goal.value = await getCompanyGoal(props.goalId);\n});\n</script>\n\n<style scoped lang=\"scss\">\n@import \"@/styles/utils/responsive\";\n\n.advice {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n\n @media only screen and (max-width: $big-screen-breakpoint) {\n flex-direction: column;\n }\n\n &__content {\n background-color: var(--color-neutral-200);\n padding: var(--space-s);\n border-radius: var(--size-xs);\n }\n}\n\n.skills {\n &__item {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n}\n</style>\n","<template>\n <div class=\"admin-company-goals-actions\">\n <div class=\"header\">\n <p class=\"header__text text text--bold\">\n {{\n goal.isPublic\n ? $t(\"pages.admin.company_goals.goal_detail.employees_applying\")\n : $t(\"pages.admin.company_goals.goal_detail.employees_selected\")\n }}\n </p>\n <p v-if=\"goal.isPublic\">\n {{ `${$t(\"shared.lastUpdate\")}, ${!props.goal.edited ? $t(\"shared.not_available\") : parseDateToMonthLongDate(props.goal.edited)}` }}\n </p>\n </div>\n <AppSeparator />\n <div class=\"container\">\n <div class=\"container__selector\">\n <AppButton\n size=\"m\"\n grouped=\"start\"\n :variant=\"currentArea === 'employees' ? 'primary' : 'secondary'\"\n :text=\"$t('pages.admin.company_goals.goal_detail.employees')\"\n @click=\"currentArea = 'employees'\" />\n <AppButton\n size=\"m\"\n grouped=\"end\"\n :variant=\"currentArea === 'team_skills' ? 'primary' : 'secondary'\"\n :text=\"$t('pages.admin.company_goals.goal_detail.team_skills')\"\n @click=\"currentArea = 'team_skills'\" />\n </div>\n <AdminCompanyGoalsAssigned\n v-if=\"currentArea === 'employees'\"\n :goal=\"goal\"\n @applicants-click=\"emit('applicantsClick')\"\n @delete-click=\"deleteEmployee\" />\n <AdminCompanyGoalsSkills v-if=\"currentArea === 'team_skills'\" :goal-id=\"goal.id\" />\n <div class=\"container__actions actions\">\n <AppButton\n v-if=\"canBeLaunched(goal)\"\n size=\"m\"\n data-cy=\"launch\"\n :text=\"\n goal.isLaunched\n ? $t('pages.admin.company_goals.goal_detail.launched_goal')\n : $t('pages.admin.company_goals.goal_detail.launch_goal')\n \"\n @onclick=\"emit('launchClick')\" />\n </div>\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { canBeLaunched } from \"@/services/modelServices/companyGoalService\";\nimport { parseDateToMonthLongDate } from \"@/utils/dateUtils\";\nimport { ref } from \"vue\";\nimport AdminCompanyGoalsAssigned from \"@/views/admin/company-goals/components/AdminCompanyGoalsAssigned.vue\";\nimport AdminCompanyGoalsSkills from \"@/views/admin/company-goals/components/AdminCompanyGoalsSkills.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppSeparator from \"@/components/AppSeparator.vue\";\nimport i18n from \"@/i18n\";\nimport type { CompanyGoalWithEmployees } from \"@/models/companyGoal\";\nimport useModal from \"@/components/modal/useModal\";\n\nconst { openTextModal } = useModal();\n\ninterface Props {\n goal: CompanyGoalWithEmployees;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"applicantsClick\"): void;\n (e: \"deleteClick\", employeeId: number): void;\n (e: \"launchClick\"): void;\n}\nconst emit = defineEmits<Emits>();\n\ntype area = \"employees\" | \"team_skills\";\n\nconst currentArea = ref<area>(\"employees\");\n\nconst deleteEmployee = (employeeId: number): void => {\n openTextModal({\n title: i18n.global.t(\"pages.admin.company_goals.goal_detail.employees.delete.title\"),\n contentText: i18n.global.t(\"pages.admin.company_goals.goal_detail.employees.delete.content\"),\n icon: { content: \"warning\", style: \"error\" },\n showCancelToClose: true,\n confirmCallback: () => emit(\"deleteClick\", employeeId),\n });\n};\n</script>\n\n<style scoped lang=\"scss\">\n.admin-company-goals-actions {\n background: var(--color-neutral-100);\n border-radius: var(--default-border-radius);\n box-shadow: 0 var(--size-xs) var(--size-m) var(--color-company-goals-employee-shadow);\n}\n.header {\n padding: var(--size-m);\n\n &__text {\n color: var(--color-primary-accent1);\n }\n}\n\n.container {\n padding: 0 var(--size-m) var(--size-m) var(--size-m);\n\n &__selector {\n display: flex;\n justify-content: center;\n padding: var(--size-m) 0;\n }\n\n &__actions {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding-top: var(--size-m);\n }\n}\n</style>\n","<template>\n <div class=\"date-company-goal-detail\" :class=\"backgroundModifierClass\">\n <h3 class=\"margin-b--xs\" :class=\"titleColorModifierClass\">{{ props.title }}</h3>\n <p :class=\"dateColorModifierClass\">{{ parseDateToMonthLongDate(props.date) }}</p>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { parseDateToMonthLongDate } from \"@/utils/dateUtils\";\n\ninterface Props {\n date: Date;\n title?: string;\n type: \"start\" | \"end\" | \"disabled\";\n}\n\nconst props = defineProps<Props>();\nconst backgroundModifierClass = `date-company-goal-detail--${props.type}`;\nconst titleColorModifierClass = `title--${props.type}`;\nconst dateColorModifierClass = `date--${props.type}`;\n</script>\n\n<style scoped lang=\"scss\">\n.date-company-goal-detail {\n border-radius: var(--default-border-radius);\n padding: var(--space-m);\n width: 100%;\n\n &--start {\n background-color: var(--color-company-goals-start-background);\n }\n\n &--end {\n background-color: var(--color-company-goals-end-background);\n }\n\n &--disabled {\n background-color: var(--color-neutral-100);\n }\n}\n\n.title {\n &--start,\n &--end {\n color: var(--color-neutral-700);\n }\n\n &--disabled {\n color: var(--color-neutral-500);\n }\n}\n\n.date {\n &--start,\n &--end {\n color: var(--color-neutral-600);\n }\n\n &--disabled {\n color: var(--color-neutral-500);\n }\n}\n</style>\n","<template>\n <div class=\"date-items\">\n <AdminCompanyGoalsDatesDate\n v-if=\"start\"\n :title=\"$t('pages.admin.company_goals.goal_detail.dates.start', { title })\"\n :date=\"start\"\n :type=\"applyColors ? 'start' : 'disabled'\" />\n <AdminCompanyGoalsDatesDate\n v-if=\"end\"\n :title=\"$t('pages.admin.company_goals.goal_detail.dates.end', { title })\"\n :date=\"end\"\n :type=\"applyColors ? 'end' : 'disabled'\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { isDraft, isInProgress, isApplicationPhaseOpen } from \"@/services/modelServices/companyGoalService\";\nimport { computed } from \"vue\";\nimport AdminCompanyGoalsDatesDate from \"@/views/admin/company-goals/components/AdminCompanyGoalsDatesDate.vue\";\nimport type { CompanyGoal } from \"@/models/companyGoal\";\nimport i18n from \"@/i18n\";\n\ninterface Props {\n goal: CompanyGoal;\n type: \"application\" | \"goal\";\n}\n\nconst props = defineProps<Props>();\nconst isApplicationDate: boolean = props.type === \"application\";\nconst title: string | undefined = isApplicationDate ? i18n.global.t(\"pages.admin.company_goals.goal_detail.dates.application\") : undefined;\nconst start = computed(() => (isApplicationDate ? props.goal.created : props.goal.start));\nconst end = computed(() => (isApplicationDate ? props.goal.applicationClosing : props.goal.end));\nconst applyColors = computed(\n () =>\n !isDraft(props.goal) && ((isApplicationDate && isApplicationPhaseOpen(props.goal)) || (!isApplicationDate && isInProgress(props.goal)))\n);\n</script>\n<style scoped lang=\"scss\">\n.date-items {\n display: flex;\n gap: var(--space-m);\n}\n</style>\n","<template>\n <AppPanel :dark=\"true\" :border=\"false\">\n <div v-if=\"isInProgress(props.goal) || isFinished(props.goal)\">\n <div class=\"progress progress--progression\" data-cy=\"in-progress\">\n <p>{{ $t(\"pages.admin.company_goals.goal_detail.progress.label\") }}</p>\n <p class=\"text--bold text--l\">{{ `${formatNumber(goal.progression ?? 0)} %` }}</p>\n </div>\n <AppProgressBar :value=\"goal.progression\" />\n </div>\n <div v-else class=\"progress progress--no-progression\" data-cy=\"no-progress\">\n <span class=\"icon margin-r--s\" :class=\"iconClass\"></span>\n {{ noProgressionText }}\n </div>\n </AppPanel>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport AppProgressBar from \"@/components/AppProgressBar.vue\";\nimport type { CompanyGoalWithEmployees } from \"@/models/companyGoal\";\nimport {\n isApplicationPhaseOpen,\n isDraft,\n isFinished,\n isInProgress,\n isPublished,\n isTeamBuilt,\n} from \"@/services/modelServices/companyGoalService\";\nimport { formatNumber } from \"@/utils/numberUtils\";\n\ninterface Props {\n goal: CompanyGoalWithEmployees;\n}\n\nconst props = defineProps<Props>();\n\nconst iconClass = computed(() => ({\n \"icon-warning\": isDraft(props.goal),\n \"icon-calendar\": isApplicationPhaseOpen(props.goal),\n \"icon-team\": isPublished(props.goal) && !isApplicationPhaseOpen(props.goal),\n}));\n\nconst noProgressionText = computed(() => {\n const textMap = {\n draft: i18n.global.t(\"pages.admin.company_goals.goal_detail.progress.no_progression.draft\"),\n applicationPhaseOpen: i18n.global.t(\"pages.admin.company_goals.goal_detail.progress.no_progression.application_open\"),\n teamBuilt: i18n.global.t(\"pages.admin.company_goals.goal_detail.progress.no_progression.team_built\"),\n teamNotBuilt: i18n.global.t(\"pages.admin.company_goals.goal_detail.progress.no_progression.team_not_built\"),\n };\n if (isDraft(props.goal)) {\n return textMap.draft;\n }\n if (isApplicationPhaseOpen(props.goal)) {\n return textMap.applicationPhaseOpen;\n }\n\n return isTeamBuilt(props.goal) ? textMap.teamBuilt : textMap.teamNotBuilt;\n});\n</script>\n\n<style scoped lang=\"scss\">\n.progress {\n display: flex;\n\n &--progression {\n justify-content: space-between;\n }\n\n &--no-progression {\n align-items: center;\n }\n}\n\n.icon {\n font-size: 2.5rem;\n}\n</style>\n","<template>\n <AppPanel dark class=\"goals-result\" :class=\"resultModifierClass\">\n <div class=\"goals-result__content\">\n <span class=\"goals-result__icon icon\" :class=\"iconClass\"></span>\n {{ text }}\n </div>\n </AppPanel>\n</template>\n\n<script setup lang=\"ts\">\nimport { hasResult, isFailure, isSuccessful } from \"@/services/modelServices/companyGoalService\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport type { CompanyGoal } from \"@/models/companyGoal\";\nimport { computed } from \"vue\";\nimport i18n from \"@/i18n\";\n\ninterface Props {\n goal: CompanyGoal;\n}\n\nconst props = defineProps<Props>();\n\nconst resultModifierClass = computed(() => ({\n \"goals-result--success\": isSuccessful(props.goal),\n \"goals-result--failure\": isFailure(props.goal),\n}));\n\nconst iconClass = computed(() => ({\n \"icon-verified\": !hasResult(props.goal),\n \"icon-success\": isSuccessful(props.goal),\n \"icon-close-circle-outline\": isFailure(props.goal),\n}));\n\nconst text = computed(() => {\n if (isSuccessful(props.goal)) {\n return i18n.global.t(\"pages.admin.company_goals.goal_detail.result_succeeded\");\n }\n\n if (isFailure(props.goal)) {\n return i18n.global.t(\"pages.admin.company_goals.goal_detail.result_failed\");\n }\n\n return i18n.global.t(\"pages.admin.company_goals.goal_detail.result_not_set\");\n});\n</script>\n<style scoped lang=\"scss\">\n.goals-result {\n border: none;\n\n &--success {\n color: var(--color-neutral-100);\n background-color: var(--color-system-success);\n }\n\n &--failure {\n color: var(--color-neutral-100);\n background-color: var(--color-system-error);\n }\n\n &__content {\n align-items: center;\n display: flex;\n gap: var(--size-s);\n justify-content: flex-start;\n }\n\n &__icon {\n font-size: 1.8rem;\n }\n}\n</style>\n","<template>\n <div class=\"grid--two-thirds-one-third-columns@medium margin-t--l\">\n <div class=\"details__information\">\n <img v-if=\"goal.picture\" class=\"details__information-picture\" :src=\"getGoalPictureUrl(goal.id)\" :alt=\"goal.title\" />\n <div class=\"details__information-row\">\n <div class=\"details__information__row--item\">\n <h3>{{ $t(\"pages.admin.company_goals.goal_detail.open_for_applications\") }}</h3>\n <p>{{ booleanToYesNoString(goal.isPublic) }}</p>\n </div>\n <div class=\"details__information-row--item\">\n <h3>{{ $t(\"pages.admin.company_goals.goal_detail.people_needed\") }}</h3>\n <p>{{ goal.numberOfPeopleNeeded }}</p>\n </div>\n <div class=\"details__information-row--item\">\n <h3>{{ $t(\"pages.admin.company_goals.goal_detail.country\") }}</h3>\n <p>{{ goal.country }}</p>\n </div>\n <div class=\"details__information-row--item\">\n <h3>{{ $t(\"pages.admin.company_goals.goal_detail.city\") }}</h3>\n <p>{{ goal.city }}</p>\n </div>\n </div>\n <div v-if=\"isPublic(goal)\" class=\"details__information-dates\">\n <div class=\"details__information-dates-title\">\n <h3>{{ $t(\"pages.admin.company_goals.goal_detail.dates_candidates_application\") }}</h3>\n <AppTag type=\"status\" :main-text=\"applicationDatesTagText\" />\n </div>\n <AdminCompanyGoalsDates v-if=\"goal.applicationClosing\" :goal=\"goal\" type=\"application\" data-cy=\"dates-for-application\" />\n </div>\n <div class=\"details__information-dates\">\n <div class=\"details__information-dates-title\">\n <h3>{{ $t(\"pages.admin.company_goals.goal_detail.dates\") }}</h3>\n <AppTag type=\"status\" :main-text=\"goalDatesTagText\" />\n </div>\n <AdminCompanyGoalsDates :goal=\"goal\" type=\"goal\" />\n </div>\n <div>\n <h3 class=\"margin-b--s\">{{ $t(\"pages.admin.company_goals.goal_detail.description\") }}</h3>\n <p v-html=\"toHtml(goal.description)\"></p>\n </div>\n <div v-if=\"goal.link\">\n <h3 class=\"margin-b--s\">{{ $t(\"pages.admin.company_goals.goal_detail.link\") }}</h3>\n <a :href=\"goal.link\" class=\"text text--link\" target=\"_blank\">{{ goal.link }}</a>\n </div>\n <div>\n <h3 class=\"margin-b--s\">{{ $t(\"pages.admin.company_goals.goal_detail.progress.title\") }}</h3>\n <AdminCompanyGoalsProgress :goal=\"goal\" />\n </div>\n <div>\n <h3 class=\"margin-b--s\">{{ $t(\"pages.admin.company_goals.goal_detail.skills_needed\") }}</h3>\n <div v-if=\"goal.skillsNeeded && goal.skillsNeeded.length > 0\">\n <AppTag\n v-for=\"skill of goal.skillsNeeded\"\n :key=\"skill.id\"\n class=\"margin-b--xs margin-r--xs\"\n :main-text=\"skill.name\"\n :secondary-text=\"skill.progression.toLocaleUpperCase()\"\n icon=\"check\"\n type=\"skill\" />\n </div>\n <AppNoContentYet v-else class=\"margin-b--m\" :text=\"$t('pages.admin.company_goals.goal_detail.skills_needed.no_content_yet')\" />\n </div>\n <div v-if=\"isFinished(goal)\">\n <AdminCompanyGoalsResult :goal=\"goal\" />\n <div v-if=\"!hasResult(goal)\">\n <div class=\"details__information-result\">\n <AppButton\n size=\"m\"\n variant=\"secondary\"\n :text=\"$t('pages.admin.company_goals.goal_detail.result_failed')\"\n class=\"details__information-result-button\"\n @onclick=\"setResult(false)\" />\n <AppButton\n size=\"m\"\n variant=\"secondary\"\n :text=\"$t('pages.admin.company_goals.goal_detail.result_succeeded')\"\n class=\"details__information-result-button\"\n @onclick=\"setResult(true)\" />\n </div>\n </div>\n </div>\n </div>\n <AdminCompanyGoalsActions\n v-if=\"isPublished(goal)\"\n :goal=\"goal\"\n @applicants-click=\"applicants\"\n @delete-click=\"deleteEmployee\"\n @launch-click=\"launch\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { booleanToYesNoString } from \"@/utils/booleanUtils\";\nimport { computed } from \"vue\";\nimport {\n isApplicationPhaseOpen,\n isPublic,\n isFinished,\n hasResult,\n isPublished,\n isDraft,\n isInProgress,\n isPrivate,\n} from \"@/services/modelServices/companyGoalService\";\nimport { toHtml } from \"@/utils/stringUtils\";\nimport AdminCompanyGoalsActions from \"@/views/admin/company-goals/components/AdminCompanyGoalsActions.vue\";\nimport AdminCompanyGoalsDates from \"@/views/admin/company-goals/components/AdminCompanyGoalsDates.vue\";\nimport AdminCompanyGoalsProgress from \"@/views/admin/company-goals/components/AdminCompanyGoalsProgress.vue\";\nimport AdminCompanyGoalsResult from \"@/views/admin/company-goals/components/AdminCompanyGoalsResult.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport i18n from \"@/i18n\";\nimport type { CompanyGoalWithEmployees } from \"@/models/companyGoal\";\nimport useCompanyGoalsService from \"@/services/useCompanyGoalsService\";\n\ninterface Props {\n goal: CompanyGoalWithEmployees;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n (e: \"applicants\"): void;\n (e: \"deleteEmployee\", employeeId: number): void;\n (e: \"setResult\", result: boolean): void;\n (e: \"launch\"): void;\n}>();\n\nconst { getGoalPictureUrl } = useCompanyGoalsService();\n\nconst applicationDatesTagText = computed(() => {\n if (!props.goal || isPrivate(props.goal)) {\n return \"\";\n }\n\n const textMap = {\n draft: i18n.global.t(\"pages.admin.company_goals.goal_detail.application_phase.tag.draft\"),\n open: i18n.global.t(\"pages.admin.company_goals.goal_detail.application_phase.tag.open\"),\n closed: i18n.global.t(\"pages.admin.company_goals.goal_detail.application_phase.tag.closed\"),\n };\n if (isDraft(props.goal)) {\n return textMap.draft;\n }\n\n return isApplicationPhaseOpen(props.goal) ? textMap.open : textMap.closed;\n});\n\nconst goalDatesTagText = computed(() => {\n if (!props.goal) {\n return \"\";\n }\n\n const textMap = {\n draft: i18n.global.t(\"pages.admin.company_goals.goal_detail.dates.tag.draft\"),\n waitingCandidates: i18n.global.t(\"pages.admin.company_goals.goal_detail.dates.tag.waiting_candidates\"),\n inProgress: i18n.global.t(\"pages.admin.company_goals.goal_detail.dates.tag.in_progress\"),\n closed: i18n.global.t(\"pages.admin.company_goals.goal_detail.dates.tag.closed\"),\n standBy: i18n.global.t(\"pages.admin.company_goals.goal_detail.dates.tag.stand_by\"),\n };\n if (isDraft(props.goal)) {\n return textMap.draft;\n }\n if (isApplicationPhaseOpen(props.goal)) {\n return textMap.waitingCandidates;\n }\n if (isInProgress(props.goal)) {\n return textMap.inProgress;\n }\n return isFinished(props.goal) ? textMap.closed : textMap.standBy;\n});\n\nconst deleteEmployee = (employeeId: number) => emit(\"deleteEmployee\", employeeId);\nconst launch = () => emit(\"launch\");\nconst applicants = () => emit(\"applicants\");\nconst setResult = (isSuccessful: boolean) => emit(\"setResult\", isSuccessful);\n</script>\n\n<style scoped lang=\"scss\">\n.details__information {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n gap: var(--space-m);\n\n &-picture {\n object-fit: cover;\n width: 100%;\n }\n\n &-row {\n display: flex;\n gap: var(--space-s);\n flex-wrap: wrap;\n\n &--item {\n display: flex;\n flex-direction: column;\n gap: var(--space-xs);\n }\n }\n\n &-dates {\n display: flex;\n flex-direction: column;\n gap: var(--space-m);\n width: 100%;\n }\n\n &-dates-title {\n align-items: center;\n display: flex;\n gap: var(--space-xs);\n }\n\n &-result {\n display: flex;\n gap: var(--size-xs);\n justify-content: space-evenly;\n padding-top: var(--size-m);\n &-button {\n flex-grow: 1;\n }\n }\n}\n</style>\n","<template>\n <LayoutPage>\n <Teleport v-if=\"goal\" to=\"#header-button-container\">\n <AppIconButton :text=\"$t('shared.back')\" size=\"l\" icon=\"arrow-back\" @onclick=\"back\" />\n </Teleport>\n <div v-if=\"goal\" class=\"admin-company-goals-details details\">\n <div class=\"details__title\">\n <h2 data-cy=\"goal-title\">{{ goal.title }}</h2>\n <AppButton\n v-if=\"isEditable(goal)\"\n :text=\"$t('pages.admin.company_goals.goal_detail.edit_goal')\"\n size=\"m\"\n data-cy=\"edit-goal\"\n variant=\"secondary\"\n @onclick=\"editing = true\" />\n </div>\n <AppTag\n v-if=\"isApplicationPhaseOpen(goal)\"\n class=\"margin-t--xs\"\n type=\"status\"\n :main-text=\"$t('pages.admin.company_goals.goal_detail.published_for_applicants')\" />\n <AdminCompanyGoalDetailInformation\n :goal=\"goal\"\n @applicants=\"recommendingEmployees = true\"\n @delete-employee=\"deleteEmployee\"\n @launch=\"launch\"\n @set-result=\"setResult\" />\n <AdminCompanyGoalsApplicants\n v-if=\"recommendingEmployees\"\n :goal=\"goal\"\n @close-click=\"recommendingEmployees = false\"\n @add-click=\"addEmployee\" />\n </div>\n <Component\n :is=\"goal?.isPublished ? AdminCompanyGoalsSimpleEditor : AdminCompanyGoalsFullEditor\"\n v-if=\"editing\"\n :goal=\"goal\"\n @close=\"editing = false\"\n @goal-edited=\"getGoal\" />\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport { isApplicationPhaseOpen, isEditable } from \"@/services/modelServices/companyGoalService\";\nimport { useRoute } from \"vue-router\";\nimport AdminCompanyGoalsApplicants from \"@/views/admin/company-goals/components/AdminCompanyGoalsApplicants.vue\";\nimport AdminCompanyGoalsFullEditor from \"@/views/admin/company-goals/components/AdminCompanyGoalsFullEditor.vue\";\nimport AdminCompanyGoalsSimpleEditor from \"@/views/admin/company-goals/components/AdminCompanyGoalsSimpleEditor.vue\";\nimport AdminCompanyGoalDetailInformation from \"@/views/admin/company-goals/components/AdminCompanyGoalDetailInformation.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppIconButton from \"@/components/AppIconButton.vue\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport i18n from \"@/i18n\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport router from \"@/router/router\";\nimport type { CompanyGoalEmployee } from \"@/models/companyGoalEmployee\";\nimport type { CompanyGoalWithEmployees } from \"@/models/companyGoal\";\nimport useCompanyGoalsService from \"@/services/useCompanyGoalsService\";\nimport useModal from \"@/components/modal/useModal\";\nimport useToaster from \"@/components/toaster/useToaster\";\n\nconst route = useRoute();\nconst { openTextModal } = useModal();\nconst {\n getCompanyGoal,\n addEmployeeToCompanyGoal,\n deleteEmployeeFromCompanyGoal,\n launchCompanyGoal,\n setFailureCompanyGoalResult,\n setSuccessCompanyGoalResult,\n} = useCompanyGoalsService();\nconst { openToaster } = useToaster();\n\nconst editing = ref<boolean>(false);\nconst goal = ref<CompanyGoalWithEmployees>();\nconst goalId: number = parseInt(route.params.goalId as string);\nconst recommendingEmployees = ref(false);\n\nconst getGoal = async () => (goal.value = await getCompanyGoal(goalId));\nonMounted(getGoal);\n\nconst back = () => router.push({ name: \"corporate-goals-admin-overview\" });\n\nconst addEmployee = async (employee: CompanyGoalEmployee): Promise<void> => {\n if (!goal.value) {\n return;\n }\n await addEmployeeToCompanyGoal(goal.value.id, employee.employeeId);\n goal.value.assignedEmployees.push(employee);\n recommendingEmployees.value = false;\n};\n\nconst deleteEmployee = async (employeeId: number): Promise<void> => {\n if (!goal.value) {\n return;\n }\n await deleteEmployeeFromCompanyGoal(goal.value.id, employeeId);\n goal.value.assignedEmployees = goal.value.assignedEmployees.filter((e) => e.employeeId !== employeeId);\n};\n\nconst launch = async (): Promise<void> => {\n openTextModal({\n title: i18n.global.t(\"pages.admin.company_goals.goal_detail.confirm_launch.title\"),\n contentText: i18n.global.t(\"pages.admin.company_goals.goal_detail.confirm_launch.description\"),\n showCancelToClose: true,\n confirmCallback: confirmLaunch,\n });\n};\nconst confirmLaunch = async (): Promise<void> => {\n if (!goal.value) {\n return;\n }\n await launchCompanyGoal(goal.value.id);\n openToaster(\"success\", i18n.global.t(\"pages.admin.company_goals.goal_detail.successfully_launched\"));\n goal.value.isLaunched = true;\n};\nconst setResult = async (isSuccessful: boolean): Promise<void> => {\n const result = isSuccessful\n ? i18n.global.t(\"pages.admin.company_goals.goal_detail.result_succeeded\").toLocaleLowerCase()\n : i18n.global.t(\"pages.admin.company_goals.goal_detail.result_failed\").toLocaleLowerCase();\n\n openTextModal({\n title: i18n.global.t(\"pages.admin.company_goals.goal_detail.confirm_set_result.title\", { result }),\n contentText: i18n.global.t(\"pages.admin.company_goals.goal_detail.confirm_set_result.description\"),\n showCancelToClose: true,\n confirmCallback: async () => {\n await confirmResult(isSuccessful);\n },\n });\n};\nconst confirmResult = async (isSuccessful: boolean): Promise<void> => {\n if (!goal.value) {\n return;\n }\n if (isSuccessful) {\n await setSuccessCompanyGoalResult(goalId);\n } else {\n await setFailureCompanyGoalResult(goalId);\n }\n goal.value.isSuccessful = isSuccessful;\n openToaster(\"success\", i18n.global.t(\"pages.admin.company_goals.goal_detail.successfully_result_set\"));\n};\n</script>\n\n<style scoped lang=\"scss\">\n.details {\n &__title {\n align-items: center;\n display: flex;\n gap: var(--space-m);\n }\n}\n</style>\n","export default \"__VITE_ASSET__26fc9427__\"","export default \"__VITE_ASSET__124aa462__\"","<template>\n <div class=\"goal-company-goals\" :class=\"{ 'goal-company-goals--draft': !goal.isPublished }\" data-cy=\"goal-company-goals\">\n <div class=\"body\">\n <div class=\"body__title\">\n <div class=\"text text--l text--bold\" data-cy=\"goal-title\">\n {{ goal.title }}\n </div>\n <div class=\"body__actions\">\n <AppIconOnlyButton\n v-if=\"isEditable(goal)\"\n size=\"xl\"\n icon=\"pencil\"\n data-cy=\"edit-goal\"\n :title=\"$t('buttons.edit')\"\n @click=\"editGoal\" />\n <AppIconOnlyButton\n v-if=\"isDeletable(goal)\"\n size=\"xl\"\n icon=\"delete\"\n data-cy=\"delete-goal\"\n :title=\"$t('buttons.delete')\"\n @click=\"deleteGoal\" />\n </div>\n </div>\n <div v-if=\"goal.isPublished\">\n <AppTag v-if=\"isApplicationPhaseClosed(goal)\" :main-text=\"$t('pages.admin.company_goals.application_closed')\" type=\"danger\" />\n <AppTag v-if=\"isApplicationPhaseOpen(goal)\" :main-text=\"$t('pages.admin.company_goals.application_open')\" type=\"text\" />\n </div>\n <div v-else>\n <AppTag :main-text=\"$t('pages.admin.company_goals.draft')\" type=\"text\" />\n </div>\n <div class=\"margin-v--xs\">{{ $t(\"pages.admin.company_goals.last_updated\", { date: parseDateToString(goal.edited) }) }}</div>\n <div class=\"text text--bold\">\n {{\n $t(\"pages.admin.company_goals.goal_dates\", {\n start: parseDateToString(goal.start),\n end: parseDateToString(goal.end),\n })\n }}\n </div>\n <div class=\"text--line-clamp-3 margin-v--xs\">\n <p v-html=\"toHtml(goal.description)\"></p>\n </div>\n <AppLinkButton\n data-cy=\"more-information\"\n :bold=\"false\"\n :text=\"$t('pages.admin.company_goals.detail_goals.more_information')\"\n @click=\"goToGoalDetail\" />\n </div>\n <div v-if=\"isInProgress(goal)\" class=\"footer\">\n <div class=\"footer__percentage\">\n <div class=\"footer__bar\">{{ $t(\"pages.admin.company_goals.detail_goals.progress\") }}</div>\n <div class=\"text--bold text--l\">{{ $n((goal.progression ?? 0) / 100, \"percent\") }}</div>\n </div>\n <div class=\"footer__progress-bar\">\n <AppProgressBar :value=\"goal.progression\" />\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AppProgressBar from \"@/components/AppProgressBar.vue\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport AppIconOnlyButton from \"@/components/AppIconOnlyButton.vue\";\nimport AppLinkButton from \"@/components/AppLinkButton.vue\";\nimport useModal from \"@/components/modal/useModal\";\nimport useToaster from \"@/components/toaster/useToaster\";\nimport i18n from \"@/i18n\";\nimport type { CompanyGoal } from \"@/models/companyGoal\";\nimport router from \"@/router/router\";\nimport useCompanyGoalsService from \"@/services/useCompanyGoalsService\";\nimport {\n isApplicationPhaseClosed,\n isApplicationPhaseOpen,\n isEditable,\n isDeletable,\n isInProgress,\n} from \"@/services/modelServices/companyGoalService\";\nimport { parseDateToString } from \"@/utils/dateUtils\";\nimport { toHtml } from \"@/utils/stringUtils\";\n\nconst { openTextModal } = useModal();\nconst { openToaster } = useToaster();\nconst { deleteCompanyGoal } = useCompanyGoalsService();\n\ninterface Props {\n goal: CompanyGoal;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n (e: \"goal-deleted\", id: number): void;\n (e: \"goal-editing\", id: number): void;\n}>();\n\nconst deleteGoal = async (): Promise<void> => {\n openTextModal({\n title: i18n.global.t(\"pages.admin.company_goals.delete_goal.title\", { name: props.goal.title }),\n contentText: i18n.global.t(\"pages.admin.company_goals.delete_goal.description\", {\n name: props.goal.title,\n }),\n icon: { content: \"warning\", style: \"error\" },\n showCancelToClose: true,\n confirmCallback: async () => {\n await deleteCompanyGoal(props.goal.id);\n openToaster(\"success\", i18n.global.t(\"pages.admin.company_goals.delete_goal.successfully_deleted\"));\n emit(\"goal-deleted\", props.goal.id);\n },\n });\n};\n\nconst goToGoalDetail = () => router.push({ name: \"corporate-goals-admin-goal\", params: { goalId: props.goal.id } });\nconst editGoal = (): void => emit(\"goal-editing\", props.goal.id);\n</script>\n\n<style scoped lang=\"scss\">\n.goal-company-goals {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n box-shadow: 0 8px 24px var(--color-company-goals-border);\n background-color: var(--color-company-goals-goal-body);\n border-radius: var(--default-border-radius);\n\n &--draft {\n background-color: var(--color-company-goals-goal-body--draft);\n }\n}\n\n.body {\n padding: var(--space-xs) var(--space-s) var(--space-s) var(--space-s);\n width: 100%;\n border-radius: 6px 6px 0 0;\n display: flex;\n flex-direction: column;\n height: 100%;\n\n &__title {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n column-gap: var(--space-xs);\n margin-bottom: var(--space-xs);\n }\n\n &__actions {\n display: flex;\n justify-content: space-between;\n align-items: center;\n column-gap: var(--space-xs);\n }\n}\n\n.footer {\n width: 100%;\n border-radius: 0 0 6px 6px;\n background-color: var(--color-company-goals-goal-footer);\n padding: var(--space-s);\n min-height: 95px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n &--empty {\n background-color: var(--color-company-goals-goal-body);\n }\n\n &__percentage {\n display: flex;\n justify-content: space-between;\n }\n\n &__progress-bar {\n width: 100%;\n }\n}\n</style>\n","<template>\n <LayoutPage :title=\"$t('pages.admin.company_goals.title')\">\n <div v-if=\"goals.length > 0\" class=\"admin-company-goals\">\n <div class=\"admin-company-goals__filters\">\n <AppInputText\n v-model=\"searchText\"\n :placeholder=\"$t('pages.admin.company_goals.search.placeholder')\"\n :maxlength=\"200\"\n icon=\"magnify\"\n :keep-margin=\"false\"\n :bg-transparent=\"true\"\n data-cy=\"search\"\n @update:model-value=\"updateSearch\" />\n <AppSelect v-model=\"order\" :items=\"allowedOrders\" :keep-margin=\"false\" />\n </div>\n <div class=\"admin-company-goals__new-goal\">\n <AppButton\n :text=\"$t('pages.admin.company_goals.new_goal')\"\n size=\"m\"\n variant=\"primary\"\n data-cy=\"new-goal\"\n @onclick=\"addingNewGoal = true\" />\n </div>\n <div class=\"admin-company-goals__filter-options\">\n <AppTableFilters v-model=\"filters\" data-cy=\"filter-options\" />\n </div>\n </div>\n <div v-else class=\"grid--two-columns@medium\">\n <AppBox :title=\"$t(`pages.admin.company_goals.create.public`)\">\n <div class=\"box-content\">\n <img src=\"@/assets/images/goals/public_goal_characters.png\" alt=\"\" />\n <div>\n <p class=\"text margin-b--m\">\n {{ $t(\"pages.admin.company_goals.create.public.description\") }}\n </p>\n <AppButton\n data-cy=\"new-public-goal\"\n :text=\"$t('pages.admin.company_goals.create.new_public_goal')\"\n size=\"m\"\n @onclick=\"createPublicGoal\" />\n </div>\n </div>\n </AppBox>\n <AppBox :title=\"$t(`pages.admin.company_goals.create.private`)\">\n <div class=\"box-content\">\n <img src=\"@/assets/images/goals/private_goal_characters.png\" alt=\"\" />\n <div>\n <p class=\"text margin-b--m\">\n {{ $t(\"pages.admin.company_goals.create.private.description\") }}\n </p>\n <AppButton\n data-cy=\"new-private-goal\"\n :text=\"$t('pages.admin.company_goals.create.new_private_goal')\"\n size=\"m\"\n @onclick=\"createPrivateGoal\" />\n </div>\n </div>\n </AppBox>\n </div>\n <div class=\"grid--four-columns@large grid--two-columns@medium grid--one-column\" data-cy=\"goal-list\">\n <GoalCompanyGoalsView v-for=\"goal in searchedGoals\" :key=\"goal.id\" :goal=\"goal\" @goal-deleted=\"deleteGoal\" @goal-editing=\"editGoal\" />\n </div>\n\n <AdminCompanyGoalsFullEditor v-if=\"addingNewGoal\" :is-open=\"goalToAddOpen\" @close=\"addingNewGoal = false\" @goal-created=\"addGoal\" />\n <Component\n :is=\"editingGoal.isPublished ? AdminCompanyGoalsSimpleEditor : AdminCompanyGoalsFullEditor\"\n v-if=\"editingGoal\"\n :goal=\"editingGoal\"\n @close=\"editingGoal = undefined\"\n @goal-edited=\"updateGoal\" />\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { compareDates } from \"@/utils/dateUtils\";\nimport { compareStrings, containsInsensitive } from \"@/utils/stringUtils\";\nimport { meetsApplicationPhaseFilter, meetsStatusFilter, meetsVisibilityFilter } from \"@/services/modelServices/companyGoalService\";\nimport { onMounted, ref, computed } from \"vue\";\nimport { useDebounce } from \"@/services/useDebounce\";\nimport AdminCompanyGoalsFullEditor from \"@/views/admin/company-goals/components/AdminCompanyGoalsFullEditor.vue\";\nimport AdminCompanyGoalsSimpleEditor from \"@/views/admin/company-goals/components/AdminCompanyGoalsSimpleEditor.vue\";\nimport AppBox from \"@/components/AppBox.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppSelect from \"@/components/AppSelect.vue\";\nimport AppTableFilters from \"@/components/table/AppTableFilters.vue\";\nimport GoalCompanyGoalsView from \"@/views/admin/company-goals/components/GoalCompanyGoalsView.vue\";\nimport i18n from \"@/i18n\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport type { CompanyGoal } from \"@/models/companyGoal\";\nimport type { Filter } from \"@/components/table/TableFilter\";\nimport useCompanyGoalsService from \"@/services/useCompanyGoalsService\";\nimport { DEBOUNCE_SEARCH_TIMEOUT } from \"@/constants/debounce\";\n\nconst { getCompanyGoal, getCompanyGoals } = useCompanyGoalsService();\nconst { after } = useDebounce();\n\ntype Orders = \"start_date_desc\" | \"start_date_asc\" | \"end_date_desc\" | \"end_date_asc\" | \"title_desc\" | \"title_asc\";\n\nconst allowedOrders: {\n value: Orders;\n text: string;\n}[] = [\n { value: \"start_date_desc\", text: i18n.global.t(\"pages.admin.company_goals.search.order.start_date_desc\") },\n { value: \"start_date_asc\", text: i18n.global.t(\"pages.admin.company_goals.search.order.start_date_asc\") },\n { value: \"end_date_desc\", text: i18n.global.t(\"pages.admin.company_goals.search.order.end_date_desc\") },\n { value: \"end_date_asc\", text: i18n.global.t(\"pages.admin.company_goals.search.order.end_date_asc\") },\n { value: \"title_desc\", text: i18n.global.t(\"pages.admin.company_goals.search.order.title_desc\") },\n { value: \"title_asc\", text: i18n.global.t(\"pages.admin.company_goals.search.order.title_asc\") },\n];\n\nconst searchText = ref<string>(\"\");\nconst searchTextDebounced = ref<string>(\"\");\nconst goals = ref<CompanyGoal[]>([]);\nconst order = ref<Orders>(allowedOrders[0].value);\nconst filters = ref<Filter[]>([\n {\n title: i18n.global.t(\"pages.admin.company_goals.search.options.view_visibility\"),\n fieldName: \"visibility\",\n filterOptions: [\n { label: i18n.global.t(\"pages.admin.company_goals.search.options.view_all\"), value: \"all\" },\n { label: i18n.global.t(\"pages.admin.company_goals.search.options.view_public\"), value: \"public\" },\n { label: i18n.global.t(\"pages.admin.company_goals.search.options.view_private\"), value: \"private\" },\n ],\n selectedOption: \"all\",\n },\n {\n title: i18n.global.t(\"pages.admin.company_goals.search.options.view_application_phase\"),\n fieldName: \"applicationPhase\",\n filterOptions: [\n { label: i18n.global.t(\"pages.admin.company_goals.search.options.view_all\"), value: \"all\" },\n { label: i18n.global.t(\"pages.admin.company_goals.search.options.view_application_phase_open\"), value: \"open\" },\n { label: i18n.global.t(\"pages.admin.company_goals.search.options.view_application_phase_closed\"), value: \"closed\" },\n ],\n selectedOption: \"all\",\n },\n {\n title: i18n.global.t(\"pages.admin.company_goals.search.options.view_status\"),\n fieldName: \"status\",\n filterOptions: [\n { label: i18n.global.t(\"pages.admin.company_goals.search.options.view_all\"), value: \"all\" },\n { label: i18n.global.t(\"pages.admin.company_goals.search.options.view_draft\"), value: \"draft\" },\n { label: i18n.global.t(\"pages.admin.company_goals.search.options.view_published\"), value: \"published\" },\n { label: i18n.global.t(\"pages.admin.company_goals.search.options.view_launched\"), value: \"launched\" },\n { label: i18n.global.t(\"pages.admin.company_goals.search.options.view_finished\"), value: \"finished\" },\n ],\n selectedOption: \"all\",\n },\n]);\n\nconst addingNewGoal = ref<boolean>(false);\nconst goalToAddOpen = ref<boolean>();\nconst editingGoal = ref<CompanyGoal>();\n\nconst orderingMethods: Record<Orders, (g1: CompanyGoal, g2: CompanyGoal) => number> = {\n start_date_asc: (g1, g2): number => compareDates(g1.start, g2.start, true),\n start_date_desc: (g1, g2): number => compareDates(g1.start, g2.start, false),\n end_date_asc: (g1, g2): number => compareDates(g1.end, g2.end, true),\n end_date_desc: (g1, g2): number => compareDates(g1.end, g2.end, false),\n title_asc: (g1, g2): number => compareStrings(g1.title, g2.title, true),\n title_desc: (g1, g2): number => compareStrings(g1.title, g2.title, false),\n};\n\nconst searchedGoals = computed(() => {\n let filteredGoals = goals.value.filter((g) => containsInsensitive(g.title, searchTextDebounced.value));\n\n const visibilityFilter = filters.value.find((f) => f.fieldName === \"visibility\");\n const applicationPhaseFilter = filters.value.find((f) => f.fieldName === \"applicationPhase\");\n const statusFilter = filters.value.find((f) => f.fieldName === \"status\");\n\n filteredGoals = filteredGoals.filter((g) => meetsVisibilityFilter(g, visibilityFilter?.selectedOption));\n filteredGoals = filteredGoals.filter((g) => meetsApplicationPhaseFilter(g, applicationPhaseFilter?.selectedOption));\n filteredGoals = filteredGoals.filter((g) => meetsStatusFilter(g, statusFilter?.selectedOption));\n return filteredGoals.sort(orderingMethods[order.value]);\n});\n\nonMounted(() => fetchInitData());\n\nconst fetchInitData = async () => (goals.value = await getCompanyGoals());\n\nconst createPublicGoal = () => {\n addingNewGoal.value = goalToAddOpen.value = true;\n};\n\nconst createPrivateGoal = () => {\n addingNewGoal.value = true;\n goalToAddOpen.value = false;\n};\n\nconst addGoal = (goal: CompanyGoal) => {\n goals.value.push(goal);\n goalToAddOpen.value = undefined;\n};\n\nconst updateGoal = (goal: CompanyGoal) => {\n goals.value = goals.value.filter((g) => g.id !== goal.id);\n goals.value.push(goal);\n};\n\nconst deleteGoal = (goalId: number) => {\n goals.value = goals.value.filter((g) => g.id !== goalId);\n};\n\nconst editGoal = async (goalId: number) => {\n const goal = await getCompanyGoal(goalId);\n editingGoal.value = goal as CompanyGoal;\n};\n\nconst updateSearch = (searchText: string) => after(DEBOUNCE_SEARCH_TIMEOUT, () => (searchTextDebounced.value = searchText));\n</script>\n\n<style scoped lang=\"scss\">\n@import \"@/styles/utils/responsive\";\n.admin-company-goals {\n --items-gap: 1rem;\n\n display: grid;\n grid-template-columns: 3fr 1fr;\n grid-template-rows: auto 1fr;\n column-gap: var(--items-gap);\n row-gap: 0;\n\n &__filters {\n display: flex;\n width: 100%;\n justify-content: space-between;\n align-items: stretch;\n column-gap: var(--space-m);\n }\n\n &__new-goal {\n display: flex;\n justify-content: flex-end;\n align-items: flex-start;\n }\n &__filter-options {\n grid-column-start: 1;\n grid-column-end: 3;\n margin-bottom: var(--space-s);\n }\n}\n@media only screen and (max-width: $medium-screen-breakpoint) {\n .admin-company-goals {\n display: block;\n &__filters {\n display: block;\n }\n &__new-goal {\n padding-top: var(--size-m);\n }\n }\n}\n\n.box-content {\n display: flex;\n padding: 2.4rem;\n align-items: center;\n column-gap: 2.4rem;\n}\n</style>\n","<template>\n <AppBox :title=\"$t(`pages.admin.dashboard.welcome.shortcuts.${prefix}.title`)\">\n <div class=\"box-content\">\n <img :src=\"imageUrl\" :alt=\"$t(`pages.admin.dashboard.welcome.shortcuts.${prefix}.title`)\" />\n <div>\n <p class=\"text margin-b--m\">\n {{ $t(`pages.admin.dashboard.welcome.shortcuts.${prefix}.content`) }}\n </p>\n <AppButton\n :data-cy=\"`shortcut-${prefix}`\"\n :text=\"$t(`pages.admin.dashboard.welcome.shortcuts.${prefix}.button`)\"\n size=\"m\"\n @onclick=\"click\" />\n </div>\n </div>\n </AppBox>\n</template>\n\n<script setup lang=\"ts\">\nimport AppBox from \"@/components/AppBox.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport router from \"@/router/router\";\n\ninterface Props {\n prefix: string;\n route: string;\n imageUrl: string;\n}\nconst props = defineProps<Props>();\n\nconst click = () => router.push({ name: props.route });\n</script>\n\n<style scoped lang=\"scss\">\n.box-content {\n display: flex;\n padding: var(--size-m);\n align-items: center;\n column-gap: var(--size-m);\n}\n</style>\n","export default \"__VITE_ASSET__d027b867__\"","export default \"__VITE_ASSET__9a950bec__\"","<template>\n <LayoutPage :title=\"$t('pages.admin.dashboard.welcome')\">\n <div class=\"admin-dashboard__overview\">\n <h3>{{ $t(\"pages.admin.dashboard.search.introduction\") }}</h3>\n <EmployeeSearch :placeholder=\"$t('pages.admin.dashboard.search.placeholder')\" @select-item=\"click\" />\n </div>\n <AdminDashboardOverviewShortcuts v-if=\"isUserAdministrator\" />\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted } from \"vue\";\nimport router from \"@/router/router\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport AdminDashboardOverviewShortcuts from \"@/views/admin/dashboard/components/AdminDashboardOverviewShortcuts.vue\";\nimport useAuthenticationService from \"@/services/useAuthenticationService\";\nimport EmployeeSearch from \"@/views/shared/employee/components/EmployeeSearch.vue\";\n\nconst { isAdministrator } = useAuthenticationService();\n\nconst isUserAdministrator = ref<boolean>(false);\n\nconst click = (employeeId: number) => router.push({ name: \"dashboard-admin-employee\", params: { employeeId } });\n\nonMounted(async () => {\n isUserAdministrator.value = await isAdministrator();\n});\n</script>\n\n<style scoped lang=\"scss\">\n@import \"@/styles/utils/responsive\";\n.admin-dashboard {\n &__overview {\n width: 50%;\n min-width: 20rem;\n display: flex;\n flex-direction: column;\n gap: 2rem;\n padding-bottom: 2rem;\n\n @media only screen and (max-width: $medium-screen-breakpoint) {\n width: 100%;\n }\n }\n}\n</style>\n","<template>\n <LayoutBase :menu-options=\"menuOptions\" root-url=\"/admin\" />\n</template>\n\n<script setup lang=\"ts\">\nimport LayoutBase from \"@/layout/shared/LayoutBase.vue\";\nimport { useLayout } from \"@/layout/shared/useLayout\";\nimport type { MenuOption } from \"@/layout/models/menu-option\";\n\nconst { getOption } = useLayout(\"admin\");\n\nconst menuOptions: MenuOption[] = [\n getOption(\"dashboard\"),\n getOption(\"ai-assistant\"),\n getOption(\"goals\", \"corporate-goals\", \"pages.admin.company_goals.title\"),\n getOption(\"talent\", \"talent-detection\", \"pages.admin.talent_detection.title\"),\n getOption(\"learning\", undefined, \"pages.admin.learning.title.short\"),\n getOption(\"settings\", \"company-settings\", \"pages.admin.company_settings.title\"),\n];\n</script>\n","export default \"__VITE_ASSET__67dd1fb5__\"","<template>\n <AppInputGeneric :label=\"label\" :error=\"error\">\n <input v-model=\"value\" type=\"time\" class=\"input text\" :disabled=\"disabled\" />\n </AppInputGeneric>\n</template>\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport AppInputGeneric from \"@/components/AppInputGeneric.vue\";\n\ninterface Props {\n modelValue?: string;\n label?: string;\n disabled?: boolean;\n error?: string;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"update:modelValue\", value: string | undefined) => void>();\n\nconst value = computed({\n get: () => props.modelValue,\n set: (val) => emit(\"update:modelValue\", val),\n});\n</script>\n","<template>\n <div class=\"onsite\" data-cy=\"course-onsite\">\n <p class=\"text text--bold margin-b--s\">{{ $t(\"pages.admin.learning.form.fields.onsiteInformation.label\") }}</p>\n <div class=\"grid grid--two-columns\">\n <AppInputText\n v-model=\"onsiteCountry\"\n :label=\"$t('pages.admin.learning.form.fields.onsiteCountry.label')\"\n :placeholder=\"$t('pages.admin.learning.form.fields.onsiteCountry.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"onsiteCountryError\"\n data-cy=\"course-country\" />\n <AppInputText\n v-model=\"onsiteCity\"\n :label=\"$t('pages.admin.learning.form.fields.onsiteCity.label')\"\n :placeholder=\"$t('pages.admin.learning.form.fields.onsiteCity.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"onsiteCityError\"\n data-cy=\"course-city\" />\n </div>\n <AppInputText\n v-model=\"onsiteAddress\"\n :label=\"$t('pages.admin.learning.form.fields.onsiteAddress.label')\"\n :placeholder=\"$t('pages.admin.learning.form.fields.onsiteAddress.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"onsiteAddressError\"\n data-cy=\"course-address\" />\n <div class=\"grid grid--three-columns\">\n <AppInputText\n v-model=\"onsiteFloor\"\n :label=\"$t('pages.admin.learning.form.fields.onsiteFloor.label')\"\n :placeholder=\"$t('pages.admin.learning.form.fields.onsiteFloor.placeholder')\"\n :maxlength=\"smallTextLength\"\n :error=\"onsiteFloorError\"\n data-cy=\"course-floor\" />\n <AppInputText\n v-model=\"onsiteRoom\"\n :label=\"$t('pages.admin.learning.form.fields.onsiteRoom.label')\"\n :placeholder=\"$t('pages.admin.learning.form.fields.onsiteRoom.placeholder')\"\n :maxlength=\"smallTextLength\"\n :error=\"onsiteRoomError\"\n data-cy=\"course-room\" />\n <AppInputText\n v-model=\"onsiteSchedule\"\n :label=\"$t('pages.admin.learning.form.fields.onsiteSchedule.label')\"\n :placeholder=\"$t('pages.admin.learning.form.fields.onsiteSchedule.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"onsiteScheduleError\"\n data-cy=\"course-schedule\" />\n </div>\n <div class=\"grid grid--three-columns\">\n <AppInputTime\n v-model=\"onsiteStartTime\"\n :label=\"$t('pages.admin.learning.form.fields.onsiteStartTime.label')\"\n :error=\"onsiteStartTimeError\"\n data-cy=\"course-startTime\" />\n <AppInputTime\n v-model=\"onsiteEndTime\"\n :label=\"$t('pages.admin.learning.form.fields.onsiteEndTime.label')\"\n :error=\"onsiteEndTimeError\"\n data-cy=\"course-endTime\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Schema as yupSchema } from \"yup\";\nimport useFormSchema from \"@/services/useFormSchema\";\n\nconst { inputRequiredText, stringSchema, yupObject } = useFormSchema();\nconst schemaRequired = (schema: yupSchema) => schema.required(inputRequiredText());\n\n//script setup does not allow export const => we need this to use in the main component\nexport const onSiteCourseDataSchema = yupObject({\n onsiteCountry: stringSchema({ required: false }).when(\"mode\", {\n is: EducationMode.Presence,\n then: schemaRequired,\n }),\n onsiteCity: stringSchema({ required: false }).when(\"mode\", {\n is: EducationMode.Presence,\n then: schemaRequired,\n }),\n onsiteAddress: stringSchema({ required: false }).when(\"mode\", {\n is: EducationMode.Presence,\n then: schemaRequired,\n }),\n onsiteFloor: stringSchema({ required: false }).when(\"mode\", {\n is: EducationMode.Presence,\n then: schemaRequired,\n }),\n onsiteRoom: stringSchema({ required: false }).when(\"mode\", {\n is: EducationMode.Presence,\n then: schemaRequired,\n }),\n onsiteSchedule: stringSchema({ required: false }).when(\"mode\", {\n is: EducationMode.Presence,\n then: schemaRequired,\n }),\n onsiteStartTime: stringSchema({ required: false }).when(\"mode\", {\n is: EducationMode.Presence,\n then: schemaRequired,\n }),\n onsiteEndTime: stringSchema({ required: false }).when(\"mode\", {\n is: EducationMode.Presence,\n then: schemaRequired,\n }),\n});\n</script>\n\n<script setup lang=\"ts\">\nimport { onMounted } from \"vue\";\nimport { useField } from \"vee-validate\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppInputTime from \"@/components/AppInputTime.vue\";\nimport { smallTextLength, mediumTextLength } from \"@/constants/restrictions\";\nimport { type CourseBase } from \"@/models/course\";\nimport { EducationMode } from \"@/models/educationMode\";\n\ninterface Props {\n course?: CourseBase;\n}\nconst props = defineProps<Props>();\n\nonMounted(() => setFormValues());\n\nconst setFormValues = (): void => {\n if (!props.course?.companyCourseInformation) {\n return;\n }\n onsiteCountry.value = props.course.companyCourseInformation.country;\n onsiteCity.value = props.course.companyCourseInformation.city;\n onsiteAddress.value = props.course.companyCourseInformation.address;\n onsiteFloor.value = props.course.companyCourseInformation.floor;\n onsiteRoom.value = props.course.companyCourseInformation.room;\n onsiteSchedule.value = props.course.companyCourseInformation.schedule;\n onsiteStartTime.value = props.course.companyCourseInformation.startTime;\n onsiteEndTime.value = props.course.companyCourseInformation.endTime;\n};\nconst getField = (fieldName: string) =>\n useField<string | undefined>(fieldName, undefined, {\n keepValueOnUnmount: true,\n });\n\nconst { value: onsiteCountry, errorMessage: onsiteCountryError } = getField(\"onsiteCountry\");\nconst { value: onsiteCity, errorMessage: onsiteCityError } = getField(\"onsiteCity\");\nconst { value: onsiteAddress, errorMessage: onsiteAddressError } = getField(\"onsiteAddress\");\nconst { value: onsiteFloor, errorMessage: onsiteFloorError } = getField(\"onsiteFloor\");\nconst { value: onsiteRoom, errorMessage: onsiteRoomError } = getField(\"onsiteRoom\");\nconst { value: onsiteSchedule, errorMessage: onsiteScheduleError } = getField(\"onsiteSchedule\");\nconst { value: onsiteStartTime, errorMessage: onsiteStartTimeError } = getField(\"onsiteStartTime\");\nconst { value: onsiteEndTime, errorMessage: onsiteEndTimeError } = getField(\"onsiteEndTime\");\n</script>\n\n<style scoped lang=\"scss\">\n.onsite {\n padding: var(--size-m);\n background-color: var(--color-system-info--light);\n border-radius: var(--default-border-radius);\n}\n</style>\n","<template>\n <AppSelect v-model=\"value\" :items=\"availableLevels\" :label=\"$t('pages.admin.learning.form.fields.level.label')\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppSelect from \"@/components/AppSelect.vue\";\nimport { CourseLevel } from \"@/models/course\";\n\ninterface Props {\n modelValue?: CourseLevel;\n}\nconst props = withDefaults(defineProps<Props>(), { modelValue: CourseLevel.Beginner });\n\nconst emit = defineEmits<(e: \"update:modelValue\", value: CourseLevel) => void>();\n\nconst availableLevels = Object.keys(CourseLevel)\n .filter((value) => Number(value) >= 0)\n .map((courseLevel) => ({\n value: courseLevel,\n text: i18n.global.t(`entities.courses.level.${courseLevel}`),\n }));\n\nconst value = computed({\n get: () => props.modelValue.toString(),\n set: (val: string) => emit(\"update:modelValue\", Number(val)),\n});\n</script>\n","<template>\n <div>\n <AppInputText\n v-model=\"title\"\n data-cy=\"course-title\"\n :label=\"$t('pages.admin.learning.form.fields.title.label')\"\n :placeholder=\"$t('pages.admin.learning.form.fields.title.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"titleError\" />\n <AppInputTextArea\n v-model=\"description\"\n data-cy=\"course-description\"\n :label=\"$t('pages.admin.learning.form.fields.description.label')\"\n :placeholder=\"$t('pages.admin.learning.form.fields.description.placeholder')\"\n :maxlength=\"largeTextLength\"\n :error=\"descriptionError\"\n :rows=\"3\" />\n <div class=\"grid--two-columns\">\n <AppInputDate\n v-model=\"startDate\"\n data-cy=\"course-startDate\"\n :label=\"$t('pages.admin.learning.form.fields.startDate.label')\"\n :error=\"startDateError\" />\n <AppInputDate\n v-model=\"endDate\"\n data-cy=\"course-endDate\"\n :label=\"$t('pages.admin.learning.form.fields.endDate.label')\"\n :error=\"endDateError\" />\n </div>\n <div class=\"grid--two-columns\">\n <CourseLevelSelector v-model=\"courseLevel\" data-cy=\"course-level\" />\n <AppInputNumber\n v-model=\"durationHours\"\n :step=\"0.5\"\n :min=\"0.5\"\n data-cy=\"course-duration\"\n :label=\"$t('pages.admin.learning.form.fields.duration.label')\"\n :error=\"durationError\" />\n </div>\n <AppInputText\n v-model=\"topics\"\n data-cy=\"course-topics\"\n :label=\"$t('pages.admin.learning.form.fields.topics.label')\"\n :placeholder=\"$t('pages.admin.learning.form.fields.topics.placeholder')\"\n :maxlength=\"800\"\n :error=\"topicsError\" />\n <div class=\"grid--two-columns\">\n <AppSelect\n v-model=\"language\"\n data-cy=\"course-language\"\n :label=\"$t('pages.admin.learning.form.fields.language.label')\"\n :items=\"companyLanguages\" />\n <AppEducationMode v-model=\"mode\" :in-row=\"true\" @update:model-value=\"modeChanged\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport i18n from \"@/i18n\";\nimport { AnyObject, ObjectSchema, mixed as yupMixed, number as yupNumber } from \"yup\";\nimport useFormSchema from \"@/services/useFormSchema\";\n\nconst { startDateMinTodaySchema, endDateSchema, inputRequiredText, yupObject, stringSchema } = useFormSchema();\n\n//script setup does not allow export const => we need this to use in the main component\nexport const getMainCourseDataSchema = (initialStartDate: Date | undefined): ObjectSchema<AnyObject> =>\n yupObject({\n title: stringSchema(),\n description: stringSchema({ maxLength: largeTextLength }).min(1, inputRequiredText()),\n startDate: startDateMinTodaySchema({ dateSet: initialStartDate }),\n endDate: endDateSchema({ startDateFieldName: \"startDate\", canBeEqualToStartDate: true, required: false }),\n level: yupMixed<CourseLevel>(),\n durationHours: yupNumber()\n .nullable()\n .transform((o, c) => (o === undefined ? null : c))\n .min(0.5, i18n.global.t(\"inputs.min_required\", { minimum: \"0,5\" })),\n topics: stringSchema({ maxLength: 800 }),\n language: stringSchema(),\n mode: yupMixed<EducationMode>().oneOf(Object.values(EducationMode)),\n });\n</script>\n<script setup lang=\"ts\">\nimport { onBeforeMount } from \"vue\";\nimport { useField } from \"vee-validate\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppInputNumber from \"@/components/AppInputNumber.vue\";\nimport AppInputTextArea from \"@/components/AppInputTextArea.vue\";\nimport AppInputDate from \"@/components/AppInputDate.vue\";\nimport AppSelect from \"@/components/AppSelect.vue\";\nimport AppEducationMode from \"@/components/AppEducationMode.vue\";\nimport CourseLevelSelector from \"@/views/admin/learning/components/CourseLevelSelector.vue\";\nimport { mediumTextLength, largeTextLength } from \"@/constants/restrictions\";\nimport { getLanguages } from \"@/utils/languageUtils\";\nimport { convertDateOnlyToLocale } from \"@/utils/dateUtils\";\nimport { CourseLevel, type CourseBase } from \"@/models/course\";\nimport { EducationMode } from \"@/models/educationMode\";\n\ninterface Props {\n course?: CourseBase;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"modeChanged\", newMode: EducationMode) => void>();\n\nconst companyLanguages = getLanguages().map((l) => ({\n text: l.displayName,\n value: l.displayName,\n}));\n\nonBeforeMount(() => setFormValues());\n\nconst setFormValues = (): void => {\n if (!props.course) {\n language.value = companyLanguages[0].value;\n courseLevel.value = CourseLevel.Beginner;\n mode.value = EducationMode.Online;\n modeChanged();\n return;\n }\n\n title.value = props.course.title;\n description.value = props.course.description;\n startDate.value = convertDateOnlyToLocale(props.course.start);\n endDate.value = props.course.end ? convertDateOnlyToLocale(props.course.end) : undefined;\n courseLevel.value = CourseLevel[props.course?.level as keyof typeof CourseLevel] ?? CourseLevel.Beginner;\n durationHours.value = props.course.durationHours;\n topics.value = props.course.topics;\n language.value = props.course.language;\n mode.value = props.course.onLine ? EducationMode.Online : EducationMode.Presence;\n modeChanged();\n};\n\nconst modeChanged = () => emit(\"modeChanged\", mode.value);\n\nconst { value: title, errorMessage: titleError } = useField<string>(\"title\");\nconst { value: description, errorMessage: descriptionError } = useField<string>(\"description\");\nconst { value: startDate, errorMessage: startDateError } = useField<Date>(\"startDate\");\nconst { value: endDate, errorMessage: endDateError } = useField<Date | undefined>(\"endDate\");\nconst { value: courseLevel } = useField<CourseLevel>(\"level\");\nconst { value: durationHours, errorMessage: durationError } = useField<number | undefined>(\"durationHours\");\nconst { value: topics, errorMessage: topicsError } = useField<string>(\"topics\");\nconst { value: language } = useField<string>(\"language\");\nconst { value: mode } = useField<EducationMode>(\"mode\");\n</script>\n","<template>\n <AppAutomaticModalOpener :modal-config=\"modalConfig\" :disable-key-enter=\"true\">\n <AppForm class=\"course-editor\">\n <CourseEditorMainData :course=\"course\" @mode-changed=\"modeChanged\" />\n <CourseEditorOnSiteData v-if=\"selectedMode === EducationMode.Presence\" :course=\"course\" />\n <AppUploadDocument\n v-model=\"attachment\"\n data-cy=\"attachment\"\n :label=\"$t('pages.admin.learning.form.fields.attachment.label')\"\n :download-url=\"undefined\"\n :name=\"course?.companyCourseInformation?.imageCoverName\"\n :accept=\"basicAllowedImageExtensions.join()\"\n :maximum-size=\"maxFileSizeInMB\"\n :error=\"attachmentError\" />\n <div class=\"course-url\">\n <span class=\"text--xxl text--bold icon-learning\"></span>\n <div class=\"course-url__content\">\n <p class=\"text--s text--bold\">{{ $t(\"pages.admin.learning.form.fields.courseUrl.title\") }}</p>\n <p>{{ $t(\"pages.admin.learning.form.fields.courseUrl.description\") }}</p>\n <AppInputText\n v-model=\"courseUrl\"\n data-cy=\"courseUrl\"\n :label=\"$t('pages.admin.learning.form.fields.courseUrl.label')\"\n :placeholder=\"$t('pages.admin.learning.form.fields.courseUrl.placeholder')\"\n :maxlength=\"mediumTextLength\"\n :error=\"courseUrlError\" />\n </div>\n </div>\n </AppForm>\n </AppAutomaticModalOpener>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport i18n from \"@/i18n\";\nimport { useField, useForm } from \"vee-validate\";\nimport AppForm from \"@/components/AppForm.vue\";\nimport AppInputText from \"@/components/AppInputText.vue\";\nimport AppUploadDocument from \"@/components/uploadDocument/AppUploadDocument.vue\";\nimport AppAutomaticModalOpener from \"@/components/modal/AppAutomaticModalOpener.vue\";\nimport CourseEditorOnSiteData, { onSiteCourseDataSchema } from \"@/views/admin/learning/components/CourseEditorOnSiteData.vue\";\nimport CourseEditorMainData, { getMainCourseDataSchema } from \"@/views/admin/learning/components/CourseEditorMainData.vue\";\nimport { mediumTextLength } from \"@/constants/restrictions\";\nimport type { FileAttachment } from \"@/models/fileAttachment\";\nimport type { LearningCourse } from \"@/models/learningCourse\";\nimport { CourseLevel, type CourseBase } from \"@/models/course\";\nimport { EducationMode } from \"@/models/educationMode\";\nimport type { ModalBase } from \"@/components/modal/models\";\nimport { basicAllowedImageExtensions, maxFileSizeInMB } from \"@/utils/fileUtils\";\nimport useToaster from \"@/components/toaster/useToaster\";\nimport useCompanyCoursesService from \"@/services/useCompanyCoursesService\";\nimport useFormSchema from \"@/services/useFormSchema\";\nimport type { UseEventEmitterServiceReturn } from \"@/services/useEventEmitterService\";\nimport useFormValidator from \"@/services/useFormValidator\";\n\nconst { createLearningCourse, updateLearningCourse } = useCompanyCoursesService();\nconst { attachmentSchema, inputRequiredText, yupObject, stringUrlSchema } = useFormSchema();\nconst { openToaster } = useToaster();\nconst { getFormCallbackHandler } = useFormValidator();\n\ninterface Props {\n course?: CourseBase;\n eventEmitter?: UseEventEmitterServiceReturn;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"closed\") => void>();\n\nonMounted(() => setFormValues());\n\nconst setFormValues = (): void => {\n if (!props.course) {\n return;\n }\n courseUrl.value = props.course.url;\n};\n\nconst resourceSchema = yupObject({\n attachment: attachmentSchema(basicAllowedImageExtensions, maxFileSizeInMB),\n courseUrl: stringUrlSchema({ required: false }).when(\"mode\", {\n is: EducationMode.Online,\n then: (schema) => schema.required(inputRequiredText()),\n }),\n});\nconst fullSchema = resourceSchema.concat(onSiteCourseDataSchema).concat(getMainCourseDataSchema(props.course?.start));\nconst form = useForm({ validationSchema: fullSchema });\nconst { value: attachment, errorMessage: attachmentError } = useField<FileAttachment | undefined>(\"attachment\");\nconst { value: courseUrl, errorMessage: courseUrlError } = useField<string | undefined>(\"courseUrl\");\n\nconst selectedMode = ref<EducationMode>();\n\nconst modeChanged = (newMode: EducationMode) => (selectedMode.value = newMode);\n\nconst save = async (): Promise<void> => {\n const courseData = form.values;\n\n const learningCourseModel: LearningCourse = {\n id: props.course?.id ?? 0,\n title: courseData.title,\n description: courseData.description,\n startDate: courseData.startDate,\n endDate: courseData.endDate,\n durationHours: courseData.durationHours,\n topics: courseData.topics,\n language: courseData.language,\n mode: courseData.mode,\n level: CourseLevel[courseData.level],\n country: courseData.onsiteCountry,\n city: courseData.onsiteCity,\n address: courseData.onsiteAddress,\n floor: courseData.onsiteFloor,\n room: courseData.onsiteRoom,\n schedule: courseData.onsiteSchedule,\n startTime: courseData.onsiteStartTime,\n endTime: courseData.onsiteEndTime,\n attachment: courseData.attachment,\n courseUrl: courseData.courseUrl,\n };\n\n if (props.course) {\n await updateLearningCourse(learningCourseModel);\n } else {\n learningCourseModel.id = await createLearningCourse(learningCourseModel);\n openToaster(\"success\", i18n.global.t(\"pages.admin.learning.create_new_learning_form.successfully_created\"));\n }\n await props.eventEmitter?.trigger(\"courseEdited\", { course: learningCourseModel, added: !props.course });\n};\n\nconst modalConfig: ModalBase = {\n title: i18n.global.t(`pages.admin.learning.form.${props.course ? \"edit\" : \"create\"}`),\n showCancelToClose: true,\n confirmText: props.course ? i18n.global.t(\"buttons.save\") : i18n.global.t(\"pages.admin.learning.form.save\"),\n variant: \"floating\",\n confirmCallback: getFormCallbackHandler(form, save),\n onClosed: () => emit(\"closed\"),\n};\n</script>\n\n<style scoped lang=\"scss\">\n.course-editor {\n display: flex;\n flex-direction: column;\n gap: var(--space-s);\n}\n.course-url {\n padding: var(--size-s) var(--size-m);\n display: flex;\n gap: var(--size-s);\n background-color: var(--color-company-course-url-background);\n border-radius: var(--default-border-radius);\n\n &__content {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n gap: var(--size-s);\n }\n}\n</style>\n","<template>\n <div v-if=\"courses.length > 0\" class=\"company-courses\" data-cy=\"company-courses\">\n <AppGenericFilter\n data-cy=\"input-search\"\n :add-button-text=\"$t('pages.admin.learning.create_new_learning_form.new_learning')\"\n :placeholder=\"$t('pages.admin.learning.search_placeholder')\"\n class=\"margin-b--xs\"\n @create-new=\"emit('creating')\"\n @filter-changed=\"(newSearch) => (searchTerm = newSearch)\" />\n <transition name=\"fade\">\n <div\n v-if=\"filteredCourses.length\"\n class=\"company-courses__container grid--four-columns@large grid--two-columns@medium grid--one-column\">\n <CourseCard\n v-for=\"course in filteredCourses\"\n :key=\"course.id\"\n :course=\"course\"\n :show-admin-options=\"true\"\n @click=\"cardClick\"\n @edit=\"editClick\"\n @delete=\"deleteCourseHandle\" />\n </div>\n </transition>\n <AppPanel v-if=\"searchTerm && !filteredCourses.length\" :padding-content=\"false\" class=\"margin-t--xs\">\n <p class=\"padding--m\">{{ $t(\"pages.learning.search.no_results\") }}</p>\n </AppPanel>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, computed } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppPanel from \"@/components/AppPanel.vue\";\nimport CourseCard from \"@/views/shared/learning/CourseCard.vue\";\nimport AppGenericFilter from \"@/components/AppGenericFilter.vue\";\nimport { containsInsensitive, isBlank } from \"@/utils/stringUtils\";\nimport type { UseEventEmitterServiceReturn } from \"@/services/useEventEmitterService\";\nimport useCompanyCoursesService from \"@/services/useCompanyCoursesService\";\nimport useModal from \"@/components/modal/useModal\";\nimport type { CourseBase } from \"@/models/course\";\n\ninterface Props {\n eventEmitter?: UseEventEmitterServiceReturn;\n}\nconst props = defineProps<Props>();\n\ninterface Emits {\n (e: \"courseSelected\", course: CourseBase): void;\n (e: \"editCourse\", course: CourseBase): void;\n (e: \"coursesLoaded\", hasCoursesDefined: boolean): void;\n (e: \"creating\"): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst { deleteLearningCourse, getCourses } = useCompanyCoursesService();\nconst { openTextModal } = useModal();\n\nconst courses = ref<CourseBase[]>([]);\nconst searchTerm = ref<string>(\"\");\n\nconst filteredCourses = computed<CourseBase[]>(() => {\n if (isBlank(searchTerm.value)) {\n return courses.value;\n }\n return courses.value.filter(\n (course) => containsInsensitive(course.title, searchTerm.value) || containsInsensitive(course.description, searchTerm.value)\n );\n});\n\nonMounted(async () => {\n if (props.eventEmitter) {\n props.eventEmitter.on(\"courseEdited\", search);\n }\n await search();\n});\n\nconst search = async (): Promise<void> => {\n courses.value = await getCourses(searchTerm.value);\n emit(\"coursesLoaded\", courses.value.length > 0);\n};\n\nconst deleteCourseHandle = (course: CourseBase): void => {\n openTextModal({\n title: i18n.global.t(\"pages.admin.learning.prompt.delete.title\"),\n contentText: i18n.global.t(\"pages.admin.learning.prompt.delete.description\"),\n showCancelToClose: true,\n confirmCallback: async () => {\n await deleteLearningCourse(course.id);\n await search();\n },\n });\n};\n\nconst cardClick = (course: CourseBase): void => emit(\"courseSelected\", course);\nconst editClick = (course: CourseBase): void => emit(\"editCourse\", course);\n</script>\n\n<style lang=\"scss\" scoped>\n.company-courses {\n display: flex;\n flex-direction: column;\n gap: 2rem;\n}\n</style>\n","<template>\n <LayoutPage :title=\"$t('pages.admin.learning.title')\">\n <div class=\"learning-view\">\n <CompanyCourses\n :event-emitter=\"eventEmitter\"\n @course-selected=\"cardClick\"\n @edit-course=\"editClick\"\n @courses-loaded=\"coursesLoaded\"\n @creating=\"editing = true\" />\n <AppBox v-if=\"!hasCoursesDefined\" :title=\"$t(`pages.admin.learning.create_new_learning_form.title`)\">\n <div class=\"box-content\">\n <img src=\"@/assets/images/training.png\" :alt=\"$t(`pages.admin.learning.create_new_learning_form.title`)\" />\n <div>\n <p class=\"text margin-b--m\">\n {{ $t(\"pages.admin.learning.create_new_learning_form.description\") }}\n </p>\n <AppButton\n data-cy=\"new-learning\"\n :text=\"$t('pages.admin.learning.create_new_learning_form.new_learning')\"\n size=\"m\"\n @onclick=\"editing = true\" />\n </div>\n </div>\n </AppBox>\n <CourseDetails v-if=\"!editing && selectedCourse\" :course=\"selectedCourse\" @closed=\"selectedCourse = undefined\" />\n </div>\n <CourseEditor v-if=\"editing\" :course=\"selectedCourse\" :event-emitter=\"eventEmitter\" @closed=\"editorCloseHandler\" />\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport AppBox from \"@/components/AppBox.vue\";\nimport AppButton from \"@/components/AppButton.vue\";\nimport CourseDetails from \"@/views/shared/learning/CourseDetails.vue\";\nimport CourseEditor from \"@/views/admin/learning/components/CourseEditor.vue\";\nimport CompanyCourses from \"@/views/admin/learning/components/CompanyCourses.vue\";\nimport useEventEmitterService from \"@/services/useEventEmitterService\";\nimport type { CourseBase } from \"@/models/course\";\n\nconst eventEmitter = useEventEmitterService();\n\nconst selectedCourse = ref<CourseBase | undefined>();\nconst hasCoursesDefined = ref<boolean>(true);\nconst editing = ref<boolean>(false);\n\nconst coursesLoaded = (hasCourses: boolean) => (hasCoursesDefined.value = hasCourses);\nconst cardClick = (course: CourseBase) => (selectedCourse.value = course);\nconst editClick = (course: CourseBase) => {\n editing.value = true;\n selectedCourse.value = course;\n};\nconst editorCloseHandler = () => {\n editing.value = false;\n selectedCourse.value = undefined;\n};\n</script>\n<style scoped lang=\"scss\">\n.box-content {\n display: flex;\n padding: var(--size-m);\n align-items: center;\n column-gap: var(--size-m);\n}\n\n.onsite {\n padding: var(--size-m);\n background-color: var(--color-system-info--light);\n border-radius: var(--default-border-radius);\n}\n\n.course-url {\n padding: var(--size-m);\n display: flex;\n gap: var(--size-s);\n background-color: var(--color-company-course-url-background);\n border-radius: var(--default-border-radius);\n\n &__content {\n display: flex;\n flex-direction: column;\n gap: var(--size-m);\n }\n}\n\n.learning-view {\n display: flex;\n flex-direction: column;\n gap: 2rem;\n}\n</style>\n","export default \"__VITE_ASSET__e4ba3415__\"","import i18n from \"@/i18n\";\nimport { HobbyCategory } from \"@/models/hobbyCategory\";\n\nexport const ageRanges = [\"< 35\", \"35 - 50\", \"50 <\"];\n\nexport const hobbiesColorMap = {\n [HobbyCategory.Sport]: \"#5AC3E6\",\n [HobbyCategory.Music]: \"#8D83DB\",\n [HobbyCategory.Culture]: \"#E7AD6C\",\n [HobbyCategory.Technology]: \"#DF7BB2\",\n [HobbyCategory.Others]: \"#B2AEF2\",\n};\n\nconst hobbyCategories: { [index: number]: HobbyCategory } = {\n 0: HobbyCategory.Sport,\n 1: HobbyCategory.Music,\n 2: HobbyCategory.Culture,\n 3: HobbyCategory.Technology,\n 4: HobbyCategory.Others,\n};\n\nexport const getHobbyCategoryFromIndex = (index: number): HobbyCategory => hobbyCategories[index];\n\nexport const getSeriesLabel = (category: HobbyCategory): string =>\n i18n.global.t(`entities.my_interests.hobbies.category.${category.toLowerCase()}`);\n","import type { EmployeeMotivation } from \"@/models/employee/employeeMotivation\";\nimport type { HobbyCategory } from \"@/models/hobbyCategory\";\nimport type { ServiceSeriesData, GroupSeriesData, GroupHobbySeriesData } from \"@/models/talent-detection/seriesData\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\nimport type { Ref } from \"vue\";\n\nconst BASE_URL = \"/api/company/talent-detection\";\nconst { get, loading } = useHttpClient();\n\ninterface UseCompanyTalentDetectionServiceReturn {\n getSeriesDataByAge: () => Promise<ServiceSeriesData[]>;\n getSeriesDataByAgeAndHobby: (hobbyId: number) => Promise<ServiceSeriesData>;\n getSeriesDataByGroup: () => Promise<GroupSeriesData>;\n getSeriesDataByGroupAndHobby: (hobbyId: number) => Promise<GroupHobbySeriesData>;\n getEmployeesByAge: (hobbiesCategory?: HobbyCategory, hobbyId?: number, fromAge?: number, toAge?: number) => Promise<EmployeeMotivation[]>;\n getEmployeesByGroup: (hobbiesCategory: HobbyCategory, groupId?: number, hobbyId?: number) => Promise<EmployeeMotivation[]>;\n loading: Ref<boolean>;\n}\n\nexport default (): UseCompanyTalentDetectionServiceReturn => {\n const getSeriesDataByAge = (): Promise<ServiceSeriesData[]> => get(`${BASE_URL}/series/age`);\n const getSeriesDataByAgeAndHobby = (hobbyId: number): Promise<ServiceSeriesData> => get(`${BASE_URL}/series/age/${hobbyId}`);\n const getSeriesDataByGroup = (): Promise<GroupSeriesData> => get(`${BASE_URL}/series/group`);\n const getSeriesDataByGroupAndHobby = (hobbyId: number): Promise<GroupHobbySeriesData> => get(`${BASE_URL}/series/group/${hobbyId}`);\n const getEmployeesByAge = (\n hobbiesCategory?: HobbyCategory,\n hobbyId?: number,\n fromAge?: number,\n toAge?: number\n ): Promise<EmployeeMotivation[]> =>\n get(`${BASE_URL}/employees/age?${getQueryStringEmployeesByAge(hobbiesCategory, hobbyId, fromAge, toAge)}`);\n\n const getEmployeesByGroup = (hobbiesCategory: HobbyCategory, groupId?: number, hobbyId?: number): Promise<EmployeeMotivation[]> =>\n get(`${BASE_URL}/employees/group?${getQueryStringEmployeesByGroup(hobbiesCategory, groupId, hobbyId)}`);\n\n return {\n getSeriesDataByAge,\n getSeriesDataByAgeAndHobby,\n getSeriesDataByGroup,\n getSeriesDataByGroupAndHobby,\n getEmployeesByAge,\n getEmployeesByGroup,\n loading,\n };\n};\n\nconst getQueryStringEmployeesByAge = (hobbiesCategory?: HobbyCategory, hobbyId?: number, fromAge?: number, toAge?: number): string => {\n const params = new URLSearchParams();\n if (hobbiesCategory) {\n params.set(\"hobbiesCategory\", hobbiesCategory);\n }\n if (hobbyId) {\n params.set(\"hobbyId\", hobbyId.toString());\n }\n if (fromAge) {\n params.set(\"fromAge\", fromAge.toString());\n }\n if (toAge) {\n params.set(\"toAge\", toAge.toString());\n }\n return params.toString();\n};\n\nconst getQueryStringEmployeesByGroup = (hobbiesCategory: HobbyCategory, groupId?: number, hobbyId?: number): string => {\n const params = new URLSearchParams();\n params.set(\"hobbiesCategory\", hobbiesCategory);\n if (groupId) {\n params.set(\"groupId\", groupId.toString());\n }\n if (hobbyId) {\n params.set(\"hobbyId\", hobbyId.toString());\n }\n return params.toString();\n};\n","<template>\n <div class=\"admin-talent-detection__chart\">\n <NoContentChart v-if=\"showNoContent\" />\n <div v-else id=\"chart\" data-cy=\"talent-chart-category-by-age\">\n <apexchart :options=\"chartOptions\" :series=\"chartSeriesData\" @click=\"getSelection\" />\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from \"vue\";\nimport i18n from \"@/i18n\";\nimport NoContentChart from \"@/views/admin/talent-detection/components/charts/AdminTalentDetectionNoContentChart.vue\";\nimport { getHobbyCategoryFromIndex, getSeriesLabel, hobbiesColorMap } from \"@/views/admin/talent-detection/utils\";\nimport type { AgeChartSelection } from \"@/models/talent-detection/chartSelections\";\nimport type { ChartSeriesData, ServiceSeriesData } from \"@/models/talent-detection/seriesData\";\nimport useCompanyTalentDetectionService from \"@/services/useCompanyTalentDetectionService\";\n\nconst { getSeriesDataByAge } = useCompanyTalentDetectionService();\nconst serviceData = ref<ServiceSeriesData[]>();\nconst chartSeriesData = ref<ChartSeriesData[]>([]);\nconst requested = ref<boolean>(false);\nconst showNoContent = computed(() => requested.value && !chartSeriesData.value.length);\n\ninterface XaxisRange {\n from?: number;\n to?: number;\n}\n\nconst xaxisRanges: { [key: string]: XaxisRange } = {\n \"< 35\": { to: 34 },\n \"35 - 50\": { from: 35, to: 50 },\n \"50 <\": { from: 51 },\n};\n\nconst seriesColors = [\n hobbiesColorMap.Sport,\n hobbiesColorMap.Music,\n hobbiesColorMap.Culture,\n hobbiesColorMap.Technology,\n hobbiesColorMap.Others,\n];\n\nconst xaxisLabels = Object.keys(xaxisRanges);\nconst xaxisText = i18n.global.t(\"entities.my_interests.hobbies.age\");\n\nconst emit = defineEmits<(e: \"clicked\", value: AgeChartSelection | undefined) => void>();\n\nonMounted(async () => {\n await getTalentDetectionSeriesData();\n requested.value = true;\n});\n\nconst getTalentDetectionSeriesData = async (): Promise<void> => {\n serviceData.value = await getSeriesDataByAge();\n serviceData.value.forEach((c) => {\n chartSeriesData.value.push({ name: getSeriesLabel(c.category), data: [...c.data] });\n });\n};\n\nconst chartOptions = {\n chart: {\n type: \"bar\",\n stacked: true,\n stackType: \"100%\",\n toolbar: {\n show: false,\n },\n },\n xaxis: {\n type: \"category\",\n categories: xaxisLabels,\n },\n colors: seriesColors,\n fill: {\n opacity: 1,\n },\n plotOptions: {\n bar: {\n columnWidth: \"100%\",\n },\n },\n dataLabels: {\n enabled: false,\n },\n tooltip: {\n followCursor: true,\n x: {\n formatter: function (val: string) {\n return `${xaxisText} ` + val;\n },\n },\n },\n legend: {\n position: \"bottom\",\n horizontalAlign: \"center\",\n offsetY: 30,\n itemMargin: {\n horizontal: 20,\n },\n },\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst getSelection = (_event: any, _chartContext: any, config: any): void => {\n if (config.seriesIndex < 0 || config.dataPointIndex < 0) {\n return;\n }\n\n const selectedDataPointsLength = config.globals.selectedDataPoints.length;\n const selectedDataPoint = config.globals.selectedDataPoints[selectedDataPointsLength - 1];\n\n if (!selectedDataPoint?.length) {\n emit(\"clicked\", undefined);\n return;\n }\n\n const hobbyCategory = getHobbyCategoryFromIndex(config.seriesIndex);\n const xaxisLabel = chartOptions.xaxis.categories[config.dataPointIndex];\n const xaxisRange = xaxisRanges[xaxisLabel];\n\n const selection: AgeChartSelection = {\n ageRange: xaxisRange,\n hobbiesCategory: hobbyCategory,\n };\n\n emit(\"clicked\", selection);\n};\n</script>\n","<template>\n <div class=\"admin-talent-detection__chart\">\n <NoContentChart v-if=\"showNoContent\" />\n <div v-else id=\"chart\" data-cy=\"talent-chart-category-by-group\">\n <apexchart :options=\"options\" :series=\"series\" @click=\"getSelection\" />\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { getHobbyCategoryFromIndex, getSeriesLabel, hobbiesColorMap } from \"@/views/admin/talent-detection/utils\";\nimport { computed, onMounted, ref } from \"vue\";\nimport NoContentChart from \"@/views/admin/talent-detection/components/charts/AdminTalentDetectionNoContentChart.vue\";\nimport type { ChartSeriesData } from \"@/models/talent-detection/seriesData\";\nimport type { Group } from \"@/models/talent-detection/group\";\nimport type { GroupChartSelection } from \"@/models/talent-detection/chartSelections\";\nimport useCompanyTalentDetectionService from \"@/services/useCompanyTalentDetectionService\";\n\nconst emit = defineEmits<(e: \"clicked\", value: GroupChartSelection | undefined) => void>();\n\nconst { getSeriesDataByGroup } = useCompanyTalentDetectionService();\nconst groups = ref<Group[]>([]);\nconst series = ref<ChartSeriesData[]>([]);\nconst requested = ref<boolean>(false);\nconst showNoContent = computed(() => requested.value === true && !series.value.length);\nconst options = {\n chart: {\n type: \"bar\",\n height: 350,\n stacked: true,\n stackType: \"100%\",\n toolbar: {\n show: false,\n },\n },\n colors: Object.values(hobbiesColorMap),\n plotOptions: {\n bar: {\n horizontal: true,\n },\n },\n xaxis: {\n categories: [\"\"],\n labels: {\n formatter: (percentage: string) => `${percentage}%`,\n },\n },\n tooltip: {\n y: {\n formatter: (employeesCount: string) => employeesCount,\n },\n },\n fill: {\n opacity: 1,\n },\n legend: {\n position: \"bottom\",\n horizontalAlign: \"center\",\n offsetY: 30,\n itemMargin: {\n horizontal: 20,\n },\n },\n dataLabels: {\n enabled: false,\n },\n};\n\nonMounted(async () => {\n await fetchData();\n requested.value = true;\n});\n\nconst fetchData = async (): Promise<void> => {\n const response = await getSeriesDataByGroup();\n response.data.forEach((serie) => {\n series.value.push({ name: getSeriesLabel(serie.category), data: [...serie.data] });\n });\n\n groups.value = [...response.groups];\n options.xaxis.categories.splice(0, 1, ...groups.value.map((g) => g.name));\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst getSelection = (_event: any, _chartContext: any, config: any): void => {\n if (config.seriesIndex < 0 || config.dataPointIndex < 0) {\n return;\n }\n\n const selectedDataPointsLength = config.globals.selectedDataPoints.length;\n const selectedDataPoint = config.globals.selectedDataPoints[selectedDataPointsLength - 1];\n\n if (!selectedDataPoint?.length) {\n emit(\"clicked\", undefined);\n return;\n }\n\n const groupName = options.xaxis.categories[config.dataPointIndex];\n const group = groups.value.find((g) => g.name === groupName);\n if (group === undefined) {\n return;\n }\n\n const category = getHobbyCategoryFromIndex(config.seriesIndex);\n emit(\"clicked\", { group, hobbiesCategory: category });\n};\n</script>\n","<template>\n <div class=\"profile-information\">\n <div class=\"profile-information__avatar\">\n <AppProfileAvatar :size=\"size\" :information=\"employeeInformation\" />\n </div>\n <div class=\"profile-information__details details\" :class=\"`profile-information__details--${direction}`\">\n <span class=\"text--m text--bold text--link margin-r--xs\" @click=\"detailsClick\">\n {{ `${employee.firstName} ${employee.lastName}` }}\n </span>\n <span v-if=\"employee.currentJob\" class=\"text text--tertiary text--s text--bold\">{{ employee.currentJob }}</span>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport AppProfileAvatar from \"@/components/AppProfileAvatar.vue\";\nimport type { AvatarInformation } from \"@/models/employee/avatarInformation\";\nimport type { EmployeeProfileInformation } from \"@/models/employeeProfileInformation\";\n\ninterface Props {\n size: \"s\" | \"m\";\n direction: \"row\" | \"column\";\n employee: EmployeeProfileInformation;\n}\nconst props = defineProps<Props>();\nconst employeeInformation: AvatarInformation = { ...props.employee };\n\nconst emit = defineEmits<(e: \"detailsClick\", id: number) => void>();\n\nconst detailsClick = () => emit(\"detailsClick\", props.employee.id);\n</script>\n<style lang=\"scss\" scoped>\n.profile-information {\n display: flex;\n gap: var(--space-s);\n align-items: center;\n\n &__avatar {\n min-width: inherit;\n }\n\n &__details {\n display: flex;\n }\n\n &__details--row {\n display: block;\n }\n\n &__details--column {\n flex-direction: column;\n }\n}\n</style>\n","<template>\n <div class=\"admin-talent-detection__employee-list employee-list\">\n <div v-if=\"employees.length\" class=\"employee-list__content\">\n <div class=\"employee-list__content-title\">\n <span class=\"employee-list__content-title-category\" :style=\"{ 'background-color': categoryColor }\"></span>\n <span class=\"text text--bold text--primary-accent1\">{{ title }}</span>\n </div>\n <div class=\"employee-list__content-profiles\">\n <div\n v-for=\"(employee, index) in employees\"\n :key=\"employee.id\"\n class=\"employee-list__content-profiles-item item\"\n data-cy=\"employee-list\">\n <span class=\"text text--bold text--tertiary\">{{ index + 1 }}</span>\n <ProfileInformation size=\"s\" :employee=\"employee\" direction=\"column\" @details-click=\"goToProfile\" />\n <div v-if=\"showProgress\" class=\"item__progression\">\n <AppProgressBar :value=\"employee.motivation\" />\n <span class=\"text text--s text--bold\">{{ $n(employee.motivation / 100, \"percent\") }}</span>\n </div>\n </div>\n </div>\n </div>\n <div v-else class=\"employee-list__no-content\" data-cy=\"no-talent-employee-list\">\n <AppNoContentYet :text=\"$t('pages.admin.talent_detection.employees.no_content')\" />\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { hobbiesColorMap } from \"@/views/admin/talent-detection/utils\";\nimport { HobbyCategory } from \"@/models/hobbyCategory\";\nimport AppNoContentYet from \"@/components/AppNoContentYet.vue\";\nimport AppProgressBar from \"@/components/AppProgressBar.vue\";\nimport ProfileInformation from \"@/components/AppProfileInformation.vue\";\nimport router from \"@/router/router\";\nimport type { EmployeeMotivation } from \"@/models/employee/employeeMotivation\";\n\ninterface Props {\n employees: EmployeeMotivation[];\n category?: HobbyCategory;\n title?: string;\n}\nconst props = defineProps<Props>();\n\nconst showProgress = false;\nconst categoryColor = computed(() => (props.category ? hobbiesColorMap[props.category] : hobbiesColorMap[HobbyCategory.Sport]));\n\nconst goToProfile = (employeeId: number) =>\n router.push({\n name: \"dashboard-admin-employee\",\n params: { employeeId },\n query: { backRoute: \"talent-detection-admin\" },\n });\n</script>\n<style lang=\"scss\" scoped>\n.employee-list {\n background-color: var(--color-card);\n border-radius: var(--default-border-radius);\n box-shadow: 0 var(--space-xs) var(--space-m) rgba(26, 26, 26, 0.04);\n height: 100%;\n min-height: 60rem;\n min-width: 40rem;\n\n &__content {\n display: flex;\n flex-direction: column;\n }\n\n &__content-title {\n padding: var(--space-m) var(--space-l) var(--space-s);\n }\n\n &__content-title-category {\n border-radius: var(--size-xxs);\n display: inline-block;\n height: 20px;\n margin-right: 12px;\n vertical-align: bottom;\n width: 20px;\n }\n\n &__content-profiles {\n display: flex;\n flex-direction: column;\n max-height: 80rem;\n overflow: auto;\n border-radius: 0 0 6px 6px;\n }\n\n &__no-content {\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 100%;\n }\n}\n\n.item {\n align-items: center;\n border-bottom: 1px solid var(--color-border);\n display: grid;\n gap: var(--space-s);\n grid-template-columns: 2rem 1fr;\n min-height: 80px;\n padding: var(--space-xs) var(--space-l);\n text-align: left;\n\n &__progression {\n display: flex;\n align-items: center;\n gap: var(--space-s);\n }\n}\n</style>\n","<template>\n <EmployeeList :employees=\"employees\" :title=\"title\" :category=\"selection?.hobbiesCategory\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from \"vue\";\nimport EmployeeList from \"@/views/admin/talent-detection/components/employee-lists/AdminTalentDetectionEmployeeList.vue\";\nimport i18n from \"@/i18n\";\nimport type { AgeChartSelection } from \"@/models/talent-detection/chartSelections\";\nimport type { EmployeeMotivation } from \"@/models/employee/employeeMotivation\";\nimport useCompanyTalentDetectionService from \"@/services/useCompanyTalentDetectionService\";\n\nconst { getEmployeesByAge } = useCompanyTalentDetectionService();\n\ninterface Props {\n selection?: AgeChartSelection;\n}\n\nconst props = defineProps<Props>();\nconst employees = ref<EmployeeMotivation[]>([]);\n\nconst calculateSuffix = (from: number | undefined, to: number | undefined) => {\n if (!from && !to) {\n return \"all\";\n }\n if (from && to) {\n return \"range\";\n }\n return to ? \"to\" : \"from\";\n};\n\nconst title = computed(() => {\n if (!props.selection) {\n return;\n }\n\n const results = employees.value.length;\n const category = props.selection?.hobby?.name ?? props.selection?.hobbiesCategory;\n const from = props.selection.ageRange?.from;\n const to = props.selection.ageRange?.to;\n const suffix = calculateSuffix(from, to);\n return i18n.global.t(`pages.admin.talent_detection.employees_age.title.age_${suffix}`, {\n n: results,\n category: category,\n from: from,\n to: to,\n });\n});\n\nwatch(\n () => props.selection,\n async () => refreshEmployees()\n);\n\nconst refreshEmployees = async () => {\n if (!props.selection) {\n employees.value = [];\n return;\n }\n\n employees.value = await getEmployeesByAge(\n props.selection.hobbiesCategory,\n props.selection.hobby?.id,\n props.selection.ageRange?.from,\n props.selection.ageRange?.to\n );\n};\n</script>\n","<template>\n <EmployeeList :employees=\"employees\" :title=\"title\" :category=\"selection?.hobbiesCategory\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from \"vue\";\nimport EmployeeList from \"@/views/admin/talent-detection/components/employee-lists/AdminTalentDetectionEmployeeList.vue\";\nimport i18n from \"@/i18n\";\nimport type { GroupChartSelection } from \"@/models/talent-detection/chartSelections\";\nimport type { EmployeeMotivation } from \"@/models/employee/employeeMotivation\";\nimport useCompanyTalentDetectionService from \"@/services/useCompanyTalentDetectionService\";\n\nconst { getEmployeesByGroup } = useCompanyTalentDetectionService();\n\ninterface Props {\n selection?: GroupChartSelection;\n}\n\nconst props = defineProps<Props>();\nconst employees = ref<EmployeeMotivation[]>([]);\n\nconst title = computed(() => {\n if (!props.selection) {\n return;\n }\n return i18n.global.t(\"pages.admin.talent_detection.employees_group.title\", {\n n: employees.value.length,\n group: props.selection.group?.name,\n category: props.selection?.hobby?.name ?? props.selection?.hobbiesCategory,\n });\n});\n\nwatch(\n () => props.selection,\n () => refreshEmployees()\n);\n\nconst refreshEmployees = async () => {\n if (!props.selection?.hobbiesCategory) {\n employees.value = [];\n return;\n }\n employees.value = await getEmployeesByGroup(props.selection.hobbiesCategory, props.selection.group?.id, props.selection.hobby?.id);\n};\n</script>\n","<template>\n <div class=\"admin-talent-detection__chart\">\n <NoContentChart v-if=\"showNoContent\" />\n <div v-else id=\"chart\" data-cy=\"talent-chart-hobby-by-age\">\n <apexchart :options=\"chartOptions\" :series=\"chartSeriesData\" @click=\"getSelection\" />\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, watch, onMounted, ref } from \"vue\";\nimport { hobbiesColorMap, ageRanges } from \"@/views/admin/talent-detection/utils\";\nimport { HobbyCategory } from \"@/models/hobbyCategory\";\nimport i18n from \"@/i18n\";\nimport NoContentChart from \"@/views/admin/talent-detection/components/charts/AdminTalentDetectionNoContentChart.vue\";\nimport type { AgeChartSelection } from \"@/models/talent-detection/chartSelections\";\nimport type { AgeRange } from \"@/models/talent-detection/ageRange\";\nimport type { Hobby } from \"@/models/hobby\";\nimport type { ServiceSeriesData, ChartSeriesData } from \"@/models/talent-detection/seriesData\";\nimport useCompanyTalentDetectionService from \"@/services/useCompanyTalentDetectionService\";\n\nconst { getSeriesDataByAgeAndHobby } = useCompanyTalentDetectionService();\nconst chartSeriesData = ref<ChartSeriesData[]>([]);\nconst requested = ref<boolean>(false);\nconst showNoContent = computed(() => requested.value && !chartSeriesData.value.length);\nconst xaxisLabels = ageRanges;\nconst xaxisText = i18n.global.t(\"entities.my_interests.hobbies.age\");\nconst defaultSeriesColor = hobbiesColorMap[HobbyCategory.Sport];\n\ninterface Props {\n hobby?: Hobby;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"clicked\", value: AgeChartSelection | undefined) => void>();\n\nconst chartOptions = computed(() => {\n const hobbyColor = hobbiesColorMap[props.hobby?.category ?? HobbyCategory.Sport];\n return {\n ...defaultChartOptions,\n ...{\n title: {\n text: props.hobby?.name ?? \"\",\n ...titleOptions,\n },\n colors: [hobbyColor],\n },\n };\n});\n\nwatch(\n () => props.hobby,\n () => getHobbySeriesData()\n);\n\nonMounted(async () => {\n await getHobbySeriesData();\n requested.value = true;\n});\n\nconst getHobbySeriesData = async () => {\n try {\n if (props.hobby) {\n chartSeriesData.value = [];\n const hobbySeriesData: ServiceSeriesData = await getSeriesDataByAgeAndHobby(props.hobby.id);\n const noData = hobbySeriesData.data.every((value) => value === 0);\n if (noData) {\n return;\n }\n chartSeriesData.value.push({ name: getSeriesLabel(hobbySeriesData.category), data: [...hobbySeriesData.data] });\n }\n } catch (error) {\n return false;\n }\n};\n\nconst getSeriesLabel = (category: HobbyCategory) => i18n.global.t(`entities.my_interests.hobbies.category.${category.toLowerCase()}`);\n\nconst titleOptions = {\n align: \"center\",\n style: {\n fontSize: \"20px\",\n fontWeight: \"700\",\n fontFamily: undefined,\n },\n};\n\nconst defaultChartOptions = {\n chart: {\n type: \"bar\",\n toolbar: {\n show: false,\n },\n },\n title: {\n ...titleOptions,\n },\n xaxis: {\n type: \"category\",\n categories: xaxisLabels,\n },\n yaxis: {\n max: 100,\n labels: {\n formatter: function (value: string) {\n return value + \"%\";\n },\n },\n },\n colors: defaultSeriesColor,\n fill: {\n opacity: 1,\n },\n legend: {\n showForSingleSeries: true,\n position: \"bottom\",\n horizontalAlign: \"center\",\n offsetY: 30,\n },\n plotOptions: {\n bar: {\n columnWidth: \"100%\",\n },\n },\n dataLabels: {\n enabled: false,\n },\n tooltip: {\n followCursor: true,\n x: {\n formatter: function (val: string) {\n return `${xaxisText} ` + val;\n },\n },\n },\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst getSelection = (_event: any, _chartContext: any, config: any): void => {\n if (config.seriesIndex < 0 || config.dataPointIndex < 0) {\n return;\n }\n\n const selectedDataPoint = config.globals.selectedDataPoints[0];\n if (!selectedDataPoint?.length) {\n emit(\"clicked\", undefined);\n return;\n }\n\n const ageRange = getAgeRangeFromIndex(config.dataPointIndex);\n\n const selection: AgeChartSelection = {\n ageRange: ageRange,\n hobby: props.hobby,\n };\n\n emit(\"clicked\", selection);\n};\n\nconst getAgeRangeFromIndex = (index: number): AgeRange => {\n const hobbyCategories: { [index: number]: AgeRange } = {\n 0: { from: undefined, to: 34 },\n 1: { from: 35, to: 50 },\n 2: { from: 51, to: undefined },\n };\n\n return hobbyCategories[index];\n};\n</script>\n","<template>\n <div class=\"admin-talent-detection__chart\">\n <NoContentChart v-if=\"showNoContent\" />\n <div v-else id=\"chart\" data-cy=\"talent-chart-hobby-by-group\">\n <apexchart :options=\"options\" :series=\"series\" @click=\"getSelection\" />\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { getSeriesLabel, hobbiesColorMap } from \"@/views/admin/talent-detection/utils\";\nimport { HobbyCategory } from \"@/models/hobbyCategory\";\nimport { computed, onMounted, ref } from \"vue\";\nimport NoContentChart from \"@/views/admin/talent-detection/components/charts/AdminTalentDetectionNoContentChart.vue\";\nimport type { ChartSeriesData } from \"@/models/talent-detection/seriesData\";\nimport type { Group } from \"@/models/talent-detection/group\";\nimport type { GroupChartSelection } from \"@/models/talent-detection/chartSelections\";\nimport type { Hobby } from \"@/models/hobby\";\nimport useCompanyTalentDetectionService from \"@/services/useCompanyTalentDetectionService\";\n\nconst { getSeriesDataByGroupAndHobby } = useCompanyTalentDetectionService();\n\ninterface Props {\n hobby: Hobby;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"clicked\", value: GroupChartSelection | undefined) => void>();\n\nconst groups = ref<Group[]>([]);\nconst series = ref<ChartSeriesData[]>([]);\nconst hobbyColor = hobbiesColorMap[props.hobby.category ?? HobbyCategory.Sport];\nconst requested = ref<boolean>(false);\nconst showNoContent = computed(() => requested.value && !series.value.length);\nconst options = {\n chart: {\n type: \"bar\",\n height: 350,\n stacked: true,\n toolbar: {\n show: false,\n },\n },\n colors: [hobbyColor],\n plotOptions: {\n bar: {\n horizontal: true,\n },\n },\n xaxis: {\n max: 100,\n categories: [\"\"],\n labels: {\n formatter: (percentage: string) => `${percentage}%`,\n },\n },\n tooltip: {\n y: {\n formatter: (percentage: string) => `${percentage}%`,\n },\n },\n dataLabels: {\n enabled: false,\n },\n fill: {\n opacity: 1,\n },\n legend: {\n position: \"bottom\",\n horizontalAlign: \"center\",\n showForSingleSeries: true,\n offsetY: 30,\n itemMargin: {\n horizontal: 20,\n },\n },\n title: {\n align: \"center\",\n text: props.hobby?.name ?? \"\",\n style: {\n fontSize: \"20px\",\n fontWeight: \"700\",\n fontFamily: undefined,\n },\n },\n};\n\nonMounted(async () => {\n await fetchData();\n requested.value = true;\n});\n\nconst fetchData = async (): Promise<void> => {\n const response = await getSeriesDataByGroupAndHobby(props.hobby.id);\n const groupsWithData = response.groups.filter((_, index) => response.data[index] !== 0);\n const data = response.data.filter((value) => value !== 0);\n\n if (!groupsWithData.length) {\n return;\n }\n\n groups.value = [...groupsWithData];\n options.xaxis.categories.splice(0, 1, ...groups.value.map((g) => g.name));\n series.value.push({ name: getSeriesLabel(response.category), data: [...data] });\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst getSelection = (_event: any, _chartContext: any, config: any): void => {\n if (config.seriesIndex < 0 || config.dataPointIndex < 0) {\n return;\n }\n\n const selectedDataPointsLength = config.globals.selectedDataPoints.length;\n const selectedDataPoint = config.globals.selectedDataPoints[selectedDataPointsLength - 1];\n\n if (!selectedDataPoint?.length) {\n emit(\"clicked\", undefined);\n return;\n }\n\n const groupName = options.xaxis.categories[config.dataPointIndex];\n const group = groups.value.find((g) => g.name === groupName);\n if (group === undefined) {\n return;\n }\n\n emit(\"clicked\", {\n group,\n hobbiesCategory: props.hobby.category,\n hobby: props.hobby,\n });\n};\n</script>\n","<template>\n <LayoutPage class=\"admin-talent-detection\" :title=\"$t('pages.admin.talent_detection.title')\" data-cy=\"talent-detection-title\">\n <div class=\"grid grid--two-thirds-one-third-columns@medium\">\n <div class=\"admin-talent-detection__main main\">\n <AppAutocomplete\n :items=\"items\"\n :placeholder=\"$t('entities.my_interests.hobbies.edit-modal.search')\"\n :maxlength=\"mediumTextLength\"\n :self-filtering=\"true\"\n :keep-selection=\"true\"\n @cleaned=\"onSearchClean\"\n @click=\"onHobbyClick\" />\n <AppTip\n class=\"margin-t--m\"\n unique-name=\"talent-detection\"\n :title=\"$t('pages.admin.talent_detection.tip.title')\"\n :content=\"$t('pages.admin.talent_detection.tip.content')\" />\n <AppTab class=\"margin-v--m\" :tabs=\"tabs\" tab-id=\"talent-detection\" :show-if-only-one-available=\"false\" />\n <div v-if=\"currentView === CurrentView.ByAge\">\n <HobbyByAgeChart v-if=\"selectedHobby\" :hobby=\"selectedHobby\" data-cy=\"hobby-chart\" @clicked=\"setHobbyAgeSelection\" />\n <CategoryByAgeChart v-else data-cy=\"category-chart\" @clicked=\"setCategoryAgeSelection\" />\n </div>\n <div v-if=\"currentView === CurrentView.ByGroup\">\n <HobbyByGroupChart v-if=\"selectedHobby\" :hobby=\"selectedHobby\" @clicked=\"setHobbyGroupSelection\" />\n <CategoryByGroupChart v-else @clicked=\"setCategoryGroupSelection\" />\n </div>\n </div>\n <div class=\"admin-talent-detection__aside\">\n <EmployeeByAgeList v-if=\"currentView === CurrentView.ByAge\" :selection=\"ageChartSelection\" />\n <EmployeeByGroupList v-else :selection=\"groupChartSelection\" />\n </div>\n </div>\n </LayoutPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { mediumTextLength } from \"@/constants/restrictions\";\nimport { onMounted, ref } from \"vue\";\nimport AppAutocomplete from \"@/components/AppAutocomplete.vue\";\nimport AppTab, { type Tab } from \"@/components/AppTab.vue\";\nimport AppTip from \"@/components/AppTip.vue\";\nimport CategoryByAgeChart from \"@/views/admin/talent-detection/components/charts/AdminTalentDetectionCategoryByAgeChart.vue\";\nimport CategoryByGroupChart from \"@/views/admin/talent-detection/components/charts/AdminTalentDetectionCategoryByGroupChart.vue\";\nimport EmployeeByAgeList from \"@/views/admin/talent-detection/components/employee-lists/AdminTalentDetectionEmployeeByAgeList.vue\";\nimport EmployeeByGroupList from \"@/views/admin/talent-detection/components/employee-lists/AdminTalentDetectionEmployeeByGroupList.vue\";\nimport HobbyByAgeChart from \"@/views/admin/talent-detection/components/charts/AdminTalentDetectionHobbyByAgeChart.vue\";\nimport HobbyByGroupChart from \"@/views/admin/talent-detection/components/charts/AdminTalentDetectionHobbyByGroupChart.vue\";\nimport i18n from \"@/i18n\";\nimport LayoutPage from \"@/layout/shared/LayoutPage.vue\";\nimport type { AgeChartSelection, GroupChartSelection } from \"@/models/talent-detection/chartSelections\";\nimport type { Hobby } from \"@/models/hobby\";\nimport type { HobbyAutocompleteItem } from \"@/models/autocompleteItem\";\nimport useHobbiesService from \"@/services/useHobbiesService\";\n\nconst { getHobbies } = useHobbiesService();\n\nconst ageChartSelection = ref<AgeChartSelection>();\nconst groupChartSelection = ref<GroupChartSelection>();\n\nenum CurrentView {\n ByAge = \"byAge\",\n ByGroup = \"byGroup\",\n}\nconst currentView = ref<CurrentView>(CurrentView.ByAge);\n\nconst items = ref<HobbyAutocompleteItem[]>([]);\nconst selectedHobby = ref<Hobby>();\n\nonMounted(async () => {\n const hobbies = await getHobbies();\n items.value = hobbies.map((e) => ({\n id: e.id,\n text: e.name,\n category: e.category,\n }));\n});\n\nconst onHobbyClick = (item: HobbyAutocompleteItem) => {\n selectedHobby.value = { ...item, name: item.text };\n return currentView.value === CurrentView.ByAge ? setHobbyAgeSelection() : setHobbyGroupSelection();\n};\n\nconst onSearchClean = () => {\n selectedHobby.value = undefined;\n resetSelection();\n};\nconst resetSelection = () => {\n ageChartSelection.value = undefined;\n groupChartSelection.value = undefined;\n};\nconst setCategoryAgeSelection = (selection?: AgeChartSelection) => (ageChartSelection.value = selection ?? undefined);\nconst setCategoryGroupSelection = (selection?: GroupChartSelection) => (groupChartSelection.value = selection ?? undefined);\n\nconst setHobbyAgeSelection = (selection?: AgeChartSelection) => {\n const { ageRange } = selection ?? {};\n ageChartSelection.value = {\n hobbiesCategory: selectedHobby.value?.category,\n hobby: selectedHobby.value,\n ageRange: ageRange ?? undefined,\n };\n};\n\nconst setHobbyGroupSelection = (selection?: GroupChartSelection) => {\n const { group } = selection ?? {};\n groupChartSelection.value = {\n hobbiesCategory: selectedHobby.value?.category,\n hobby: selectedHobby.value,\n group: group ?? undefined,\n };\n};\n\nconst tabs: Tab[] = [\n {\n text: i18n.global.t(\"pages.admin.talent_detection.chart.by_age\"),\n action: () => {\n currentView.value = CurrentView.ByAge;\n resetSelection();\n },\n dataCy: \"chart-by-age\",\n },\n {\n text: i18n.global.t(\"pages.admin.talent_detection.chart.by_group\"),\n action: () => {\n currentView.value = CurrentView.ByGroup;\n resetSelection();\n },\n dataCy: \"chart-by-group\",\n },\n];\n</script>\n<style lang=\"scss\" scoped>\n.admin-talent-detection {\n &__aside {\n display: flex;\n flex-direction: column;\n }\n}\n</style>\n","<template>\n <AppTable\n :no-border=\"true\"\n :columns=\"columns\"\n :items=\"employeesInView\"\n :paginated=\"true\"\n :allow-select=\"true\"\n :default-order=\"defaultOrder\"\n select-column-width=\"3rem\"\n @select-item=\"selectItem\"\n @select-all=\"selectAll\" />\n</template>\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppTable from \"@/components/table/AppTable.vue\";\nimport type { Column } from \"@/components/table/Column\";\nimport useTableHelper from \"@/components/table/useTableHelper\";\nimport type { EmployeeInformation } from \"@/models/employee/employeeInformation\";\nimport type { TableItemSelectable } from \"@/components/table/TableItem\";\nimport type { Order } from \"@/components/table/Order\";\nimport EmployeeAvatar from \"@/views/admin/company-settings/company-employee-groups/components/EmployeeAvatar.vue\";\n\ninterface Props {\n employees: EmployeeInformation[];\n searchText?: string;\n}\nconst props: Props = defineProps<Props>();\n\ninterface Emits {\n (e: \"selectItem\", item: TableItemSelectable): void;\n (e: \"selectAll\", selected: boolean, filtered: boolean, filteredIds: number[]): void;\n}\nconst emit = defineEmits<Emits>();\n\nconst { filterByText } = useTableHelper();\n\nconst employeesInView = computed<EmployeeInformation[]>(() => filterByText(props.employees, props.searchText, columns));\n\nconst selectItem = (item: TableItemSelectable) => emit(\"selectItem\", item);\n\nconst selectAll = (selected: boolean) => {\n const isFiltered = employeesInView.value.length !== props.employees.length;\n const filteredIds = isFiltered ? employeesInView.value.map(({ id }) => id) : [];\n\n emit(\"selectAll\", selected, isFiltered, filteredIds);\n};\n\nconst defaultOrder: Order = { direction: \"asc\", id: 2 };\n\nconst columns: Column<EmployeeInformation>[] = [\n {\n id: 1,\n cssWidth: \"5rem\",\n align: \"left\",\n sortable: false,\n searchable: false,\n customRenderer: EmployeeAvatar,\n },\n {\n id: 2,\n headerText: i18n.global.t(\"shared.company-groups.grid.full_name\"),\n cssWidth: \"1fr\",\n align: \"left\",\n sortable: true,\n searchable: true,\n type: \"text-with-ellipsis\",\n formatter: ({ firstName, lastName }: EmployeeInformation) => i18n.global.t(\"shared.employee.full_name\", { firstName, lastName }),\n },\n {\n id: 3,\n headerText: i18n.global.t(\"shared.company-groups.grid.email\"),\n cssWidth: \"1fr\",\n align: \"left\",\n sortable: true,\n searchable: true,\n fieldName: \"email\",\n type: \"text-with-ellipsis\",\n },\n];\n</script>\n","<template>\n <div class=\"company-employee-group-current\">\n <p data-cy=\"company-employee-group-current-counter\">\n {{\n $t(\"pages.admin.company_settings.employee_groups.editor.selected_employees\", {\n n: selectedEmployees.length,\n count: employeesCount,\n })\n }}\n </p>\n <div class=\"company-employee-group-current__tags\">\n <AppTag\n v-for=\"employee of selectedEmployeesOrdered\"\n :key=\"employee.id\"\n class=\"margin-b--xs margin-r--xs\"\n data-cy=\"company-employee-group-editor-tag\"\n :main-text=\"getEmployeeName(employee)\"\n type=\"employee\"\n :deletable=\"true\"\n @delete-tag=\"remove(employee)\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport i18n from \"@/i18n\";\nimport AppTag from \"@/components/AppTag.vue\";\nimport { compareStrings } from \"@/utils/stringUtils\";\nimport type { EmployeeInformation } from \"@/models/employee/employeeInformation\";\n\ninterface Props {\n selectedEmployees: EmployeeInformation[];\n employeesCount: number;\n}\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<(e: \"removeEmployee\", employee: EmployeeInformation) => void>();\n\nconst selectedEmployeesOrdered = computed(() =>\n [...props.selectedEmployees].sort((a, b) => compareStrings(getEmployeeName(a), getEmployeeName(b), true))\n);\n\nconst remove = (employee: EmployeeInformation) => emit(\"removeEmployee\", employee);\n\nconst getEmployeeName = ({ firstName, lastName }: EmployeeInformation) =>\n i18n.global.t(\"shared.employee.full_name\", { firstName, lastName });\n</script>\n\n<style lang=\"scss\" scoped>\n.company-employee-group-current {\n display: flex;\n flex-basis: 0;\n flex-direction: column;\n flex-grow: 1;\n min-height: 25rem;\n overflow-y: hidden;\n\n &__tags {\n border: 1px solid var(--color-input-border);\n height: 100%;\n margin-top: 10px;\n overflow-y: auto;\n padding: 9px 9px;\n resize: none;\n }\n}\n</style>\n","import { EmployeeGroupRole, type EmployeeWithGroups, type EmployeeWithGroupsEmployee } from \"@/models/companyEmployeeGroup\";\nimport router from \"@/router/router\";\nimport type { AllowedSettingsTabs } from \"@/views/admin/company-settings/components/AdminCompanySettingsNavigation.vue\";\n\nconst settingsOverviewRoute = \"company-settings-overview\";\nconst editorRoute = \"company-settings-company-employee-groups-editor\";\nconst manageRoute = \"company-settings-company-employee-groups-group-manage\";\n\nexport const createNewGroup = async (tabId: AllowedSettingsTabs): Promise<void> => {\n await router.push({ name: editorRoute, params: { backTabId: tabId } });\n};\nexport const editGroup = async (groupId: number, tabId: AllowedSettingsTabs): Promise<void> => {\n await router.push({ name: editorRoute, params: { backTabId: tabId, groupId } });\n};\nexport const manageGroup = async (groupId: number, tabId: AllowedSettingsTabs): Promise<void> => {\n await router.push({ name: manageRoute, params: { backTabId: tabId, groupId } });\n};\nexport const backToList = async (): Promise<void> => {\n const tabId: AllowedSettingsTabs = (router.currentRoute.value.params.backTabId as AllowedSettingsTabs) || \"GeneralInfo\";\n await router.push({ name: settingsOverviewRoute, params: { tabId } });\n};\nexport const filterEmployeesByRole = (employees: EmployeeWithGroups[], role?: EmployeeGroupRole): EmployeeWithGroups[] => {\n if (!role || !(role in EmployeeGroupRole)) {\n return employees;\n }\n return employees.filter((e) => e.groups.some((g) => g.employeeRole === role));\n};\nexport const filterEmployeesGroupsByRole = (\n groups: EmployeeWithGroupsEmployee[],\n role?: EmployeeGroupRole\n): EmployeeWithGroupsEmployee[] => {\n if (!role || !(role in EmployeeGroupRole)) {\n return groups;\n }\n return groups.filter((g) => g.employeeRole === role);\n};\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.18.5';\nvar current_codepage = 1200, current_ansi = 1252;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t/*::[*/0/*::]*/: 1252, /* ANSI */\n\t/*::[*/1/*::]*/: 65001, /* DEFAULT */\n\t/*::[*/2/*::]*/: 65001, /* SYMBOL */\n\t/*::[*/77/*::]*/: 10000, /* MAC */\n\t/*::[*/128/*::]*/: 932, /* SHIFTJIS */\n\t/*::[*/129/*::]*/: 949, /* HANGUL */\n\t/*::[*/130/*::]*/: 1361, /* JOHAB */\n\t/*::[*/134/*::]*/: 936, /* GB2312 */\n\t/*::[*/136/*::]*/: 950, /* CHINESEBIG5 */\n\t/*::[*/161/*::]*/: 1253, /* GREEK */\n\t/*::[*/162/*::]*/: 1254, /* TURKISH */\n\t/*::[*/163/*::]*/: 1258, /* VIETNAMESE */\n\t/*::[*/177/*::]*/: 1255, /* HEBREW */\n\t/*::[*/178/*::]*/: 1256, /* ARABIC */\n\t/*::[*/186/*::]*/: 1257, /* BALTIC */\n\t/*::[*/204/*::]*/: 1251, /* RUSSIAN */\n\t/*::[*/222/*::]*/: 874, /* THAI */\n\t/*::[*/238/*::]*/: 1250, /* EASTEUROPE */\n\t/*::[*/255/*::]*/: 1252, /* OEM */\n\t/*::[*/69/*::]*/: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array<number>*/ { var o/*:Array<number>*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data/*:string*/)/*:string*/ {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nvar $cptable;\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return $cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x/*:number*/)/*:string*/ {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn $cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nexport { set_cptable };\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n input = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array<string>*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array<number>*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array<number>*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") { throw \"wtf\"; }\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array<string>};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days/*:Array<Array<string> >*/ = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months/*:Array<Array<string> >*/ = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction SSF_init_table(t/*:any*/) {\n\tif(!t) t = {};\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array<number>*/ {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = SSF_fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nvar SSFbasedate = /*#__PURE__*/new Date(1899, 11, 31, 0, 0, 0);\nvar SSFdnthresh = /*#__PURE__*/SSFbasedate.getTime();\nvar SSFbase1904 = /*#__PURE__*/new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= SSFbase1904) epoch += 24*60*60*1000;\n\treturn (epoch - (SSFdnthresh + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/SSFbasedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return SSF_format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r/*:Array<string>*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r/*:Array<string>*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str/*:string*/)/*:string*/ {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array<string>*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(/*::(*/r/*::||[\"\"])*/[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_flt(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(/*::String(*/r[4]/*::)*/.length,7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", /*::String(*/r[1]/*::)*/, ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + /*::String(*/r[2]/*::)*/ + \"/\" + /*::String(*/r[3]/*::)*/;\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = pad0r(val, 0);\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0?]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\tri = dec(val, r[1].length);\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(flr(val)).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(ri,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,##0.00\": return write_num_flt(type, \"#,##0.00\", val);\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(pad0r(aval,0)); return x !== \"0\" ? sign + x : \"\";\n\t\tcase \"###,###.00\": return write_num_flt(type, \"###,##0.00\",val).replace(/^0\\./,\".\");\n\t\tcase \"#,###.00\": return write_num_flt(type, \"#,##0.00\",val).replace(/^0\\./,\".\");\n\t\tdefault:\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num_cm2(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_pct2(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_exp2(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp2(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(!o.match(/[Ee]/)) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nfunction write_num_int(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array<string>*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_int(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(/*::String(*/r[4]/*::)*/.length,7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", /*::String(*/r[1]/*::)*/, ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + /*::String(*/r[2]/*::)*/ + \"/\" + /*::String(*/r[3]/*::)*/;\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = \"\" + val;\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify(\"\"+val).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(0,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(\"\"+aval); return x !== \"0\" ? sign + x : \"\";\n\t\tdefault:\n\t\t\tif(fmt.match(/\\.[0#?]*$/)) return write_num_int(type, fmt.slice(0,fmt.lastIndexOf(\".\")), val) + hashq(fmt.slice(fmt.lastIndexOf(\".\")));\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\treturn (val|0) === val ? write_num_int(type, fmt, val) : write_num_flt(type, fmt, val);\n}\nfunction SSF_split_fmt(fmt/*:string*/)/*:Array<string>*/ {\n\tvar out/*:Array<string>*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!SSF_isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t}\n\t\telse if(decpt !== out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tjj = ostr.indexOf(\".\")-1;\n\t\t\tfor(i=decpt; i>= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t\tjj = ostr.indexOf(\".\")+1;\n\t\t\tfor(i=decpt; i<out.length; ++i) {\n\t\t\t\tif(out[i] == null || ('n?('.indexOf(out[i].t) === -1 && i !== decpt)) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j<out[i].v.length; ++j) {\n\t\t\t\t\tif(jj<ostr.length) vv += ostr.charAt(jj++);\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t}\n\t}\n\tfor(i=0; i<out.length; ++i) if(out[i] != null && 'n?'.indexOf(out[i].t)>-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\n\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\n};\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array<string>*/)/*:string*/ {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array<number>;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array<number>;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array<number>*/ = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array<number>*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array<number>*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports = {};\nexports.version = '1.2.1';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf/*:CFBlob*/)/*:Date*/ {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = {}); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs/*:Array<number>*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = /*::(*/file.slice(0,ssz)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors/*:Array<RawBytes>*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files/*:CFBFiles*/ = {}, Paths/*:Array<string>*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob/*:CFBlob*/)/*:[number, number]*/ {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file/*:RawBytes*/, ssz/*:number*/)/*:Array<RawBytes>*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array<RawBytes>*/ = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array<string>*/, Paths/*:Array<string>*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array<number>*/ = [], q/*:Array<number>*/ = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx/*:number*/, cnt/*:number*/, sectors/*:Array<RawBytes>*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors/*:Array<RawBytes>*/, start/*:number*/, fat_addrs/*:Array<number>*/, ssz/*:number*/, chkd/*:?Array<boolean>*/)/*:SectorEntry*/ {\n\tvar buf/*:Array<number>*/ = [], buf_chain/*:Array<any>*/ = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors/*:Array<RawBytes>*/, dir_start/*:number*/, fat_addrs/*:Array<number>*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array<boolean>*/ = [], buf/*:Array<number>*/ = [], buf_chain/*:Array<RawBytes>*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array<number>*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array<RawBytes>*/, Paths/*:Array<string>*/, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o/*:CFBEntry*/ = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size)/*:any*/);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = fullPaths[dad];\n\t\tif(!s) {\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\n\t\t}\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array<number>*/{\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\n\t\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\t\tvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w/*:number*/)/*:void*/ {\n\t\tfor(T += w; i<T-1; ++i) o.write_shift(-4, i+1);\n\t\tif(w) { ++i; o.write_shift(-4, ENDOFCHAIN); }\n\t};\n\tT = i = 0;\n\tfor(T+=L[1]; i<T; ++i) o.write_shift(-4, consts.DIFSECT);\n\tfor(T+=L[2]; i<T; ++i) o.write_shift(-4, consts.FATSECT);\n\tchainit(L[3]);\n\tchainit(L[4]);\n\tvar j/*:number*/ = 0, flen/*:number*/ = 0;\n\tvar file/*:CFBEntry*/ = cfb.FileIndex[0];\n\tfor(; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(flen < 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x01FF) >> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm/*:string*/ = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array<string>*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array<string>*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : o;\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<<n)-1);\n\tvar v = buf[h] >>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < L; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<<cleni)] = (cleni&15) | (i<<4);\n\t\t}\n\t}\n\treturn maxlen;\n}\n\n/* Fixed Huffman */\nvar fix_lmap = use_typed_arrays ? new Uint16Array(512) : zero_fill_array(512);\nvar fix_dmap = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\nif(!use_typed_arrays) {\n\tfor(var i = 0; i < 512; ++i) fix_lmap[i] = 0;\n\tfor(i = 0; i < 32; ++i) fix_dmap[i] = 0;\n}\n(function() {\n\tvar dlens/*:Array<number>*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array<number>*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t}\n\n\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n}\n/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<<cleni)] = (cleni&7) | (i<<3);\n\t\t}\n\t}\n\n\t/* read literal and dist codes at once */\n\tvar hcodes/*:Array<number>*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz/*:number*/) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else if((header >> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt + 100); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(/*::(*/blob.slice(blob.l+namelen, blob.l+namelen+efsz)/*:: :any)*/);\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(/*::(*/blob.slice(blob.l, blob.l + efsz)/*:: :any)*/);\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break; // TODO: scan for magic number\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(/*::((*/fi.content/*::||[]):any)*/, 0);\n\n\t\tvar outbuf = fi.content/*::||[]*/;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n<table class=3DMsoTableGrid border=3D1 cellspacing=3D0 cellpadding=3D0 width=\n=\"70%\"\n```\n*/\nfunction write_quoted_printable(text/*:string*/)/*:string*/ {\n\tvar encoded = text.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF=]/g, function(c) {\n\t\tvar w = c.charCodeAt(0).toString(16).toUpperCase();\n\t\treturn \"=\" + (w.length == 1 ? \"0\" + w : w);\n\t});\n\n\tencoded = encoded.replace(/ $/mg, \"=20\").replace(/\\t$/mg, \"=09\");\n\n\tif(encoded.charAt(0) == \"\\n\") encoded = \"=0D\" + encoded.slice(1);\n\tencoded = encoded.replace(/\\r(?!\\n)/mg, \"=0D\").replace(/\\n\\n/mg, \"\\n=0A\").replace(/([^\\r\\n])\\n/mg, \"$1=0A\");\n\n\tvar o/*:Array<string>*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array<string>*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array<string>*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^(.*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath/*:string*/ = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb/*:CFBContainer*/)/*:void*/ { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nlet _fs = void 0;\nfunction set_fs(fs) { _fs = fs; }\nexport { set_fs };\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o/*:any*/)/*:Array<any>*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = /*#__PURE__*/new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = /*#__PURE__*/new Date();\nvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/refdate.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\nvar refoffset = /*#__PURE__*/refdate.getTimezoneOffset();\nfunction numdate(v/*:number*/)/*:Date*/ {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date_1 = /*#__PURE__*/new Date('2017-02-19T19:06:09.000Z');\nvar good_pd_date = /*#__PURE__*/isNaN(/*#__PURE__*/good_pd_date_1.getFullYear()) ? /*#__PURE__*/new Date('2/19/17') : good_pd_date_1;\nvar good_pd = /*#__PURE__*/good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str/*:string|Date*/, fixdate/*:?number*/)/*:Date*/ {\n\tvar d = new Date(str);\n\tif(good_pd) {\n\t\t/*:: if(fixdate == null) fixdate = 0; */\n\t\tif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr/*:Array<number>*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [];\n\tfor(var i = 0; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tvar lower = s.toLowerCase();\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array<string>*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i<k.length; ++i) {\n\t\tvar n = k[i].replace(/^Root Entry[\\/]/,\"\").toLowerCase();\n\t\tif(f == n || g == n) return zip.files ? zip.files[k[i]] : zip.FileIndex[i];\n\t}\n\treturn null;\n}\n\nfunction getzipfile(zip, file/*:string*/) {\n\tvar o = safegetzipfile(zip, file);\n\tif(o == null) throw new Error(\"Cannot find file \" + file + \" in zip\");\n\treturn o;\n}\n\nfunction getzipdata(zip, file/*:string*/, safe/*:?boolean*/)/*:any*/ {\n\tif(!safe) return getdata(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipdata(zip, file); } catch(e) { return null; }\n}\n\nfunction getzipstr(zip, file/*:string*/, safe/*:?boolean*/)/*:?string*/ {\n\tif(!safe) return getdatastr(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipstr(zip, file); } catch(e) { return null; }\n}\n\nfunction getzipbin(zip, file/*:string*/, safe/*:?boolean*/)/*:any*/ {\n\tif(!safe) return getdatabin(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipbin(zip, file); } catch(e) { return null; }\n}\n\nfunction zipentries(zip) {\n\tvar k = zip.FullPaths || keys(zip.files), o = [];\n\tfor(var i = 0; i < k.length; ++i) if(k[i].slice(-1) != '/') o.push(k[i].replace(/^Root Entry[\\/]/, \"\"));\n\treturn o.sort();\n}\n\nfunction zip_add_file(zip, path, content) {\n\tif(zip.FullPaths) {\n\t\tif(typeof content == \"string\") {\n\t\t\tvar res;\n\t\t\tif(has_buf) res = Buffer_from(content);\n\t\t\t/* TODO: investigate performance in Edge 13 */\n\t\t\t//else if(typeof TextEncoder !== \"undefined\") res = new TextEncoder().encode(content);\n\t\t\telse res = utf8decode(content);\n\t\t\treturn CFB.utils.cfb_add(zip, path, res);\n\t\t}\n\t\tCFB.utils.cfb_add(zip, path, content);\n\t}\n\telse zip.file(path, content);\n}\n\nfunction zip_new() { return CFB.utils.cfb_new(); }\n\nfunction zip_read(d, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": return CFB.read(d, { type: \"base64\" });\n\t\tcase \"binary\": return CFB.read(d, { type: \"binary\" });\n\t\tcase \"buffer\": case \"array\": return CFB.read(d, { type: \"buffer\" });\n\t}\n\tthrow new Error(\"Unrecognized type \" + o.type);\n}\n\nfunction resolve_path(path/*:string*/, base/*:string*/)/*:string*/ {\n\tif(path.charAt(0) == \"/\") return path.slice(1);\n\tvar result = base.split('/');\n\tif(base.slice(-1) != \"/\") result.pop(); // folder path\n\tvar target = path.split('/');\n\twhile (target.length !== 0) {\n\t\tvar step = target.shift();\n\t\tif (step === '..') result.pop();\n\t\telse if (step !== '.') result.push(step);\n\t}\n\treturn result.join('/');\n}\nvar XML_HEADER = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\r\\n';\nvar attregexg=/([^\"\\s?>\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"<![CDATA[\");\n\t\tif(i == -1) return s.replace(encregex, function($$, $1) { return encodings[$$]||String.fromCharCode(parseInt($1,$$.indexOf(\"x\")>-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"<br/>\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); }\n\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nfunction utf8reada(orig/*:string*/)/*:string*/ {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n}\n\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array<string>*/ = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\n// matches <foo>...</foo> extracts content\nvar matchtag = /*#__PURE__*/(function() {\n\tvar mtcache/*:{[k:string]:RegExp}*/ = ({}/*:any*/);\n\treturn function matchtag(f/*:string*/,g/*:?string*/)/*:RegExp*/ {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)</(?:\\\\w+:)?'+f+'>',((g||\"\")/*:any*/)));\n\t};\n})();\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\")\n\t\t\t\t// Replace remaining new lines and spaces with space\n\t\t\t\t.replace(/[\\t\\n\\r ]+/g, \" \")\n\t\t\t\t// Replace <br> tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = /*#__PURE__*/(function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)</(?:vt:)?\" + bt + \">\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)</;\nfunction parseVector(data/*:string*/, opts)/*:Array<{v:string,t:string}>*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array<string>*/ = data.match(vtregex(h.baseType))||[];\n\tvar res/*:Array<any>*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f + '>'; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f : \"/\") + '>';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?><!\\/:]*:|)([^\\s?<>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n}/*:any*/);\n\nvar XMLNS_main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar ___toBuffer = function(bufs/*:Array<Array<RawBytes> >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i<bufs[0].length;++i) if(bufs[0][i]) for(var j=0,L=bufs[0][i].length;j<L;j+=w) x.push.apply(x, bufs[0][i].slice(j,j+w)); return x; };\nvar __toBuffer = has_buf ? function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array<string>*/=[]; for(var i=s; i<e; i+=2) ss.push(String.fromCharCode(__readUInt16LE(b,i))); return ss.join(\"\").replace(chr0,''); };\nvar __utf16le = has_buf ? function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___utf16le(b,s,e); return b.toString('utf16le',s,e).replace(chr0,'')/*.replace(chr1,'!')*/; } : ___utf16le;\n\nvar ___hexlify = function(b/*:RawBytes|CFBlob*/,s/*:number*/,l/*:number*/)/*:string*/ { var ss/*:Array<string>*/=[]; for(var i=s; i<s+l; ++i) ss.push((\"0\" + b[i].toString(16)).slice(-2)); return ss.join(\"\"); };\nvar __hexlify = has_buf ? function(b/*:RawBytes|CFBlob*/,s/*:number*/,l/*:number*/)/*:string*/ { return Buffer.isBuffer(b)/*:: && b instanceof Buffer*/ ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); } : ___hexlify;\n\nvar ___utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { var ss=[]; for(var i=s; i<e; i++) ss.push(String.fromCharCode(__readUInt8(b,i))); return ss.join(\"\"); };\nvar __utf8 = has_buf ? function utf8_b(b/*:RawBytes|CFBlob*/, s/*:number*/, e/*:number*/) { return (Buffer.isBuffer(b)/*:: && (b instanceof Buffer)*/) ? b.toString('utf8',s,e) : ___utf8(b,s,e); } : ___utf8;\n\nvar ___lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof $cptable !== 'undefined') o = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof $cptable !== 'undefined') {\n\t\t\t\to = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else /*:: if(typeof val === 'number') */ switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr/*:string*/, fld/*:string*/)/*:void*/ {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb/*:RecordHopperCB*/, opts/*:?any*/) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array<Block>*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz/*:number*/)/*:Block*/ {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn bconcat(bufs);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +type, l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(/*:: length != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array<string>*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr/*:string*/)/*:CellAddress*/ { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell/*:CellAddress*/)/*:string*/ { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range/*:string*/)/*:Range*/ {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell/*:Cell*/, v/*:any*/) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF_format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF_format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell/*:Cell*/, v/*:any*/, o/*:any*/) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || (dense ? ([]/*:any*/) : ({}/*:any*/));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell/*:Cell*/ = ({v: data[R][C] }/*:any*/);\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}/*:any*/));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str }/*:any*/);\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data)/*:any*/ {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell/*:any*/, o/*:?Block*/) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data)/*:number*/ {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Category', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'PresentationFormat', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'ByteCount', t: VT_I4 },\n\t/*::[*/0x05/*::]*/: { n: 'LineCount', t: VT_I4 },\n\t/*::[*/0x06/*::]*/: { n: 'ParagraphCount', t: VT_I4 },\n\t/*::[*/0x07/*::]*/: { n: 'SlideCount', t: VT_I4 },\n\t/*::[*/0x08/*::]*/: { n: 'NoteCount', t: VT_I4 },\n\t/*::[*/0x09/*::]*/: { n: 'HiddenCount', t: VT_I4 },\n\t/*::[*/0x0a/*::]*/: { n: 'MultimediaClipCount', t: VT_I4 },\n\t/*::[*/0x0b/*::]*/: { n: 'ScaleCrop', t: VT_BOOL },\n\t/*::[*/0x0c/*::]*/: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t/*::[*/0x0d/*::]*/: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t/*::[*/0x0e/*::]*/: { n: 'Manager', t: VT_STRING },\n\t/*::[*/0x0f/*::]*/: { n: 'Company', t: VT_STRING },\n\t/*::[*/0x10/*::]*/: { n: 'LinksUpToDate', t: VT_BOOL },\n\t/*::[*/0x11/*::]*/: { n: 'CharacterCount', t: VT_I4 },\n\t/*::[*/0x13/*::]*/: { n: 'SharedDoc', t: VT_BOOL },\n\t/*::[*/0x16/*::]*/: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t/*::[*/0x17/*::]*/: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t/*::[*/0x18/*::]*/: { n: 'DigSig', t: VT_BLOB },\n\t/*::[*/0x1A/*::]*/: { n: 'ContentType', t: VT_STRING },\n\t/*::[*/0x1B/*::]*/: { n: 'ContentStatus', t: VT_STRING },\n\t/*::[*/0x1C/*::]*/: { n: 'Language', t: VT_STRING },\n\t/*::[*/0x1D/*::]*/: { n: 'Version', t: VT_STRING },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Title', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'Subject', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'Author', t: VT_STRING },\n\t/*::[*/0x05/*::]*/: { n: 'Keywords', t: VT_STRING },\n\t/*::[*/0x06/*::]*/: { n: 'Comments', t: VT_STRING },\n\t/*::[*/0x07/*::]*/: { n: 'Template', t: VT_STRING },\n\t/*::[*/0x08/*::]*/: { n: 'LastAuthor', t: VT_STRING },\n\t/*::[*/0x09/*::]*/: { n: 'RevNumber', t: VT_STRING },\n\t/*::[*/0x0A/*::]*/: { n: 'EditTime', t: VT_FILETIME },\n\t/*::[*/0x0B/*::]*/: { n: 'LastPrinted', t: VT_FILETIME },\n\t/*::[*/0x0C/*::]*/: { n: 'CreatedDate', t: VT_FILETIME },\n\t/*::[*/0x0D/*::]*/: { n: 'ModifiedDate', t: VT_FILETIME },\n\t/*::[*/0x0E/*::]*/: { n: 'PageCount', t: VT_I4 },\n\t/*::[*/0x0F/*::]*/: { n: 'WordCount', t: VT_I4 },\n\t/*::[*/0x10/*::]*/: { n: 'CharCount', t: VT_I4 },\n\t/*::[*/0x11/*::]*/: { n: 'Thumbnail', t: VT_CF },\n\t/*::[*/0x12/*::]*/: { n: 'Application', t: VT_STRING },\n\t/*::[*/0x13/*::]*/: { n: 'DocSecurity', t: VT_I4 },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t/*::[*/0x0001/*::]*/: \"US\", // United States\n\t/*::[*/0x0002/*::]*/: \"CA\", // Canada\n\t/*::[*/0x0003/*::]*/: \"\", // Latin America (except Brazil)\n\t/*::[*/0x0007/*::]*/: \"RU\", // Russia\n\t/*::[*/0x0014/*::]*/: \"EG\", // Egypt\n\t/*::[*/0x001E/*::]*/: \"GR\", // Greece\n\t/*::[*/0x001F/*::]*/: \"NL\", // Netherlands\n\t/*::[*/0x0020/*::]*/: \"BE\", // Belgium\n\t/*::[*/0x0021/*::]*/: \"FR\", // France\n\t/*::[*/0x0022/*::]*/: \"ES\", // Spain\n\t/*::[*/0x0024/*::]*/: \"HU\", // Hungary\n\t/*::[*/0x0027/*::]*/: \"IT\", // Italy\n\t/*::[*/0x0029/*::]*/: \"CH\", // Switzerland\n\t/*::[*/0x002B/*::]*/: \"AT\", // Austria\n\t/*::[*/0x002C/*::]*/: \"GB\", // United Kingdom\n\t/*::[*/0x002D/*::]*/: \"DK\", // Denmark\n\t/*::[*/0x002E/*::]*/: \"SE\", // Sweden\n\t/*::[*/0x002F/*::]*/: \"NO\", // Norway\n\t/*::[*/0x0030/*::]*/: \"PL\", // Poland\n\t/*::[*/0x0031/*::]*/: \"DE\", // Germany\n\t/*::[*/0x0034/*::]*/: \"MX\", // Mexico\n\t/*::[*/0x0037/*::]*/: \"BR\", // Brazil\n\t/*::[*/0x003d/*::]*/: \"AU\", // Australia\n\t/*::[*/0x0040/*::]*/: \"NZ\", // New Zealand\n\t/*::[*/0x0042/*::]*/: \"TH\", // Thailand\n\t/*::[*/0x0051/*::]*/: \"JP\", // Japan\n\t/*::[*/0x0052/*::]*/: \"KR\", // Korea\n\t/*::[*/0x0054/*::]*/: \"VN\", // Viet Nam\n\t/*::[*/0x0056/*::]*/: \"CN\", // China\n\t/*::[*/0x005A/*::]*/: \"TR\", // Turkey\n\t/*::[*/0x0069/*::]*/: \"JS\", // Ramastan\n\t/*::[*/0x00D5/*::]*/: \"DZ\", // Algeria\n\t/*::[*/0x00D8/*::]*/: \"MA\", // Morocco\n\t/*::[*/0x00DA/*::]*/: \"LY\", // Libya\n\t/*::[*/0x015F/*::]*/: \"PT\", // Portugal\n\t/*::[*/0x0162/*::]*/: \"IS\", // Iceland\n\t/*::[*/0x0166/*::]*/: \"FI\", // Finland\n\t/*::[*/0x01A4/*::]*/: \"CZ\", // Czech Republic\n\t/*::[*/0x0376/*::]*/: \"TW\", // Taiwan\n\t/*::[*/0x03C1/*::]*/: \"LB\", // Lebanon\n\t/*::[*/0x03C2/*::]*/: \"JO\", // Jordan\n\t/*::[*/0x03C3/*::]*/: \"SY\", // Syria\n\t/*::[*/0x03C4/*::]*/: \"IQ\", // Iraq\n\t/*::[*/0x03C5/*::]*/: \"KW\", // Kuwait\n\t/*::[*/0x03C6/*::]*/: \"SA\", // Saudi Arabia\n\t/*::[*/0x03CB/*::]*/: \"AE\", // United Arab Emirates\n\t/*::[*/0x03CC/*::]*/: \"IL\", // Israel\n\t/*::[*/0x03CE/*::]*/: \"QA\", // Qatar\n\t/*::[*/0x03D5/*::]*/: \"IR\", // Iran\n\t/*::[*/0xFFFF/*::]*/: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr/*:Array<number>*/)/*:Array<[number, number, number]>*/ { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t/*::[*/0x00/*::]*/: \"#NULL!\",\n\t/*::[*/0x07/*::]*/: \"#DIV/0!\",\n\t/*::[*/0x0F/*::]*/: \"#VALUE!\",\n\t/*::[*/0x17/*::]*/: \"#REF!\",\n\t/*::[*/0x1D/*::]*/: \"#NAME?\",\n\t/*::[*/0x24/*::]*/: \"#NUM!\",\n\t/*::[*/0x2A/*::]*/: \"#N/A\",\n\t/*::[*/0x2B/*::]*/: \"#GETTING_DATA\",\n\t/*::[*/0xFF/*::]*/: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary <SpreadsheetML> */\n/* 14.2 Part Summary <DrawingML> */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Types': ct.xmlns = y['xmlns' + (y[0].match(/<(\\w+):/)||[\"\",\"\"])[1] ]; break;\n\t\t\tcase '<Default': ctext[y.Extension] = y.ContentType; break;\n\t\t\tcase '<Override':\n\t\t\t\tif(ct[ct2type[y.ContentType]] !== undefined) ct[ct2type[y.ContentType]].push(y.PartName);\n\t\t\t\tbreak;\n\t\t}\n\t});\n\tif(ct.xmlns !== XMLNS.CT) throw new Error(\"Unknown Namespace: \" + ct.xmlns);\n\tct.calcchain = ct.calcchains.length > 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nfunction write_ct(ct, opts)/*:string*/ {\n\tvar type2ct/*{[string]:Array<string>}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array<string>*/ = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = writextag('Types', null, {\n\t\t'xmlns': XMLNS.CT,\n\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t});\n\n\to = o.concat([\n\t\t['xml', 'application/xml'],\n\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t/* from test files */\n\t\t['bmp', 'image/bmp'],\n\t\t['png', 'image/png'],\n\t\t['gif', 'image/gif'],\n\t\t['emf', 'image/x-emf'],\n\t\t['wmf', 'image/x-wmf'],\n\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t['pdf', 'application/pdf'],\n\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t].map(function(x) {\n\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t}));\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(o.length>2){ o[o.length] = ('</Types>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '<Relationship') {\n\t\t\tvar rel = {}; rel.Type = y.Type; rel.Target = y.Target; rel.Id = y.Id; if(y.TargetMode) rel.TargetMode = y.TargetMode;\n\t\t\tvar canonictarget = y.TargetMode === 'External' ? y.Target : resolve_path(y.Target, currentFilePath);\n\t\t\trels[canonictarget] = rel;\n\t\t\thash[y.Id] = rel;\n\t\t}\n\t});\n\trels[\"!id\"] = hash;\n\treturn rels;\n}\n\n\n/* TODO */\nfunction write_rels(rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('Relationships', null, {\n\t\t//'xmlns:ns0': XMLNS.RELS,\n\t\t'xmlns': XMLNS.RELS\n\t})];\n\tkeys(rels['!id']).forEach(function(rid) {\n\t\to[o.length] = (writextag('Relationship', null, rels['!id'][rid]));\n\t});\n\tif(o.length>2){ o[o.length] = ('</Relationships>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 <manifest:manifest>\n\t\tcase 'file-entry': // 4.3 <manifest:file-entry>\n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 <manifest:encryption-data>\n\t\tcase 'algorithm': // 4.5 <manifest:algorithm>\n\t\tcase 'start-key-generation': // 4.6 <manifest:start-key-generation>\n\t\tcase 'key-derivation': // 4.7 <manifest:key-derivation>\n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest/*:Array<Array<string> >*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to.push('<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\" manifest:version=\"1.2\">\\n');\n\to.push(' <manifest:file-entry manifest:full-path=\"/\" manifest:version=\"1.2\" manifest:media-type=\"application/vnd.oasis.opendocument.spreadsheet\"/>\\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' <manifest:file-entry manifest:full-path=\"' + manifest[i][0] + '\" manifest:media-type=\"' + manifest[i][1] + '\"/>\\n');\n\to.push('</manifest:manifest>');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file/*:string*/, res/*:string*/, tag/*:?string*/) {\n\treturn [\n\t\t' <rdf:Description rdf:about=\"' + file + '\">\\n',\n\t\t' <rdf:type rdf:resource=\"http://docs.oasis-open.org/ns/office/1.2/meta/' + (tag || \"odf\") + '#' + res + '\"/>\\n',\n\t\t' </rdf:Description>\\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base/*:string*/, file/*:string*/) {\n\treturn [\n\t\t' <rdf:Description rdf:about=\"' + base + '\">\\n',\n\t\t' <ns0:hasPart xmlns:ns0=\"http://docs.oasis-open.org/ns/office/1.2/meta/pkg#\" rdf:resource=\"' + file + '\"/>\\n',\n\t\t' </rdf:Description>\\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('</rdf:RDF>');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nfunction write_meta_ods(/*:: wb: Workbook, opts: any*/)/*:string*/ {\n\treturn '<office:document-meta xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\" xmlns:meta=\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" office:version=\"1.2\"><office:meta><meta:generator>Sheet' + 'JS ' + XLSX.version + '</meta:generator></office:meta></office:document-meta>';\n}\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS/*:Array<Array<string> >*/ = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nvar CORE_PROPS_REGEX/*:Array<RegExp>*/ = /*#__PURE__*/(function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = ('</cp:coreProperties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS/*:Array<Array<string> >*/ = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array<Array<any>>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', '<vt:lpstr>Worksheets</vt:lpstr>')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"<vt:lpstr>\" + escapexml(s) + \"</vt:lpstr>\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = ('</Properties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Properties': break;\n\t\t\tcase '<property': name = unescapexml(y.name); break;\n\t\t\tcase '</property>': name = null; break;\n\t\t\tdefault: if (x.indexOf('<vt:') === 0) {\n\t\t\t\tvar toks = x.split('>');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"</\") {/* empty */\n\t\t\t} else if(opts.WTF) throw new Error(x);\n\t\t}\n\t}\n\treturn p;\n}\n\nfunction write_cust_props(cp/*::, opts*/)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('Properties', null, {\n\t\t'xmlns': XMLNS.CUST_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t})];\n\tif(!cp) return o.join(\"\");\n\tvar pid = 1;\n\tkeys(cp).forEach(function custprop(k) { ++pid;\n\t\to[o.length] = (writextag('property', write_vt(cp[k], true), {\n\t\t\t'fmtid': '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}',\n\t\t\t'pid': pid,\n\t\t\t'name': escapexml(k)\n\t\t}));\n\t});\n\tif(o.length>2){ o[o.length] = '</Properties>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array<string>*/ = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array<string>*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '</' + T + '>';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time/*:string|Date*/) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad/*:?number*/) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array<string>*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array<string>*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array<string>*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array<string>*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type/*:number*/, _opts)/*:any*/ {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)/*:number*/);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ]; //.concat(PseudoPropsPairs);\nfunction guess_property_type(val/*:any*/)/*:number*/ {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1 || PseudoPropsPairs.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI/*:: || {}*/)[idx]/*:: || {} */;\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({}/*:any*/);\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier }/*:any*/);\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j<n; ++j) o.write_shift(1, 0); return o; }\n\nfunction parslurp(blob, length, cb) {\n\tvar arr = [], target = blob.l + length;\n\twhile(blob.l < target) arr.push(cb(blob, target - blob.l));\n\tif(target !== blob.l) throw new Error(\"Slurp error\");\n\treturn arr;\n}\n\nfunction parsebool(blob, length/*:number*/) { return blob.read_shift(length) === 0x1; }\nfunction writebool(v/*:any*/, o) { if(!o) o=new_buf(2); o.write_shift(2, +!!v); return o; }\n\nfunction parseuint16(blob/*::, length:?number, opts:?any*/) { return blob.read_shift(2, 'u'); }\nfunction writeuint16(v/*:number*/, o) { if(!o) o=new_buf(2); o.write_shift(2, v); return o; }\nfunction parseuint16a(blob, length/*:: :?number, opts:?any*/) { return parslurp(blob,length,parseuint16);}\n\n/* --- 2.5 Structures --- */\n\n/* [MS-XLS] 2.5.10 Bes (boolean or error) */\nfunction parse_Bes(blob/*::, length*/) {\n\tvar v = blob.read_shift(1), t = blob.read_shift(1);\n\treturn t === 0x01 ? v : v === 0x01;\n}\nfunction write_Bes(v, t/*:string*/, o) {\n\tif(!o) o = new_buf(2);\n\to.write_shift(1, ((t == 'e') ? +v : +!!v));\n\to.write_shift(1, ((t == 'e') ? 1 : 0));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.240 ShortXLUnicodeString */\nfunction parse_ShortXLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff >= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"<t>\" + z.t + \"</t>\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob/*::, length, opts*/) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob/*::, length*/) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob/*::, length*/)/*:Cell*/ {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe}/*:any*/);\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r/*:Range*/, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob/*::, length*/) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n\t/*::[*/0x00/*::]*/: parse_FtSkip, /* FtEnd */\n\t/*::[*/0x04/*::]*/: parse_FtSkip, /* FtMacro */\n\t/*::[*/0x05/*::]*/: parse_FtSkip, /* FtButton */\n\t/*::[*/0x06/*::]*/: parse_FtSkip, /* FtGmo */\n\t/*::[*/0x07/*::]*/: parse_FtCf, /* FtCf */\n\t/*::[*/0x08/*::]*/: parse_FtSkip, /* FtPioGrbit */\n\t/*::[*/0x09/*::]*/: parse_FtSkip, /* FtPictFmla */\n\t/*::[*/0x0A/*::]*/: parse_FtSkip, /* FtCbls */\n\t/*::[*/0x0B/*::]*/: parse_FtSkip, /* FtRbo */\n\t/*::[*/0x0C/*::]*/: parse_FtSkip, /* FtSbs */\n\t/*::[*/0x0D/*::]*/: parse_FtNts, /* FtNts */\n\t/*::[*/0x0E/*::]*/: parse_FtSkip, /* FtSbsFmla */\n\t/*::[*/0x0F/*::]*/: parse_FtSkip, /* FtGboData */\n\t/*::[*/0x10/*::]*/: parse_FtSkip, /* FtEdoData */\n\t/*::[*/0x11/*::]*/: parse_FtSkip, /* FtRboData */\n\t/*::[*/0x12/*::]*/: parse_FtSkip, /* FtCblsData */\n\t/*::[*/0x13/*::]*/: parse_FtSkip, /* FtLbsData */\n\t/*::[*/0x14/*::]*/: parse_FtSkip, /* FtCblsFmla */\n\t/*::[*/0x15/*::]*/: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb/*:Workbook*/, t/*:number*/, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s/*:string*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i/*:number*/, f/*:string*/, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts/*:Array<number>*/) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2 || length == 9) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t}/*:any*/);\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length)/*:Array<Range>*/ {\n\tvar merges/*:Array<Range>*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array<Range>*/) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = {\n0x08: function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n}\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts); // eslint-disable-line no-unused-vars\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob/*::, length*/) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\n\t/* shapefile DBF extension */\n\t/*::[*/0x00/*::]*/: 20127, /*::[*/0x08/*::]*/: 865,\n\t/*::[*/0x09/*::]*/: 437, /*::[*/0x0A/*::]*/: 850,\n\t/*::[*/0x0B/*::]*/: 437, /*::[*/0x0D/*::]*/: 437,\n\t/*::[*/0x0E/*::]*/: 850, /*::[*/0x0F/*::]*/: 437,\n\t/*::[*/0x10/*::]*/: 850, /*::[*/0x11/*::]*/: 437,\n\t/*::[*/0x12/*::]*/: 850, /*::[*/0x13/*::]*/: 932,\n\t/*::[*/0x14/*::]*/: 850, /*::[*/0x15/*::]*/: 437,\n\t/*::[*/0x16/*::]*/: 850, /*::[*/0x17/*::]*/: 865,\n\t/*::[*/0x18/*::]*/: 437, /*::[*/0x19/*::]*/: 437,\n\t/*::[*/0x1A/*::]*/: 850, /*::[*/0x1B/*::]*/: 437,\n\t/*::[*/0x1C/*::]*/: 863, /*::[*/0x1D/*::]*/: 850,\n\t/*::[*/0x1F/*::]*/: 852, /*::[*/0x22/*::]*/: 852,\n\t/*::[*/0x23/*::]*/: 852, /*::[*/0x24/*::]*/: 860,\n\t/*::[*/0x25/*::]*/: 850, /*::[*/0x26/*::]*/: 866,\n\t/*::[*/0x37/*::]*/: 850, /*::[*/0x40/*::]*/: 852,\n\t/*::[*/0x4D/*::]*/: 936, /*::[*/0x4E/*::]*/: 949,\n\t/*::[*/0x4F/*::]*/: 950, /*::[*/0x50/*::]*/: 874,\n\t/*::[*/0x57/*::]*/: 1252, /*::[*/0x58/*::]*/: 1252,\n\t/*::[*/0x59/*::]*/: 1252, /*::[*/0x6C/*::]*/: 863,\n\t/*::[*/0x86/*::]*/: 737, /*::[*/0x87/*::]*/: 852,\n\t/*::[*/0x88/*::]*/: 857, /*::[*/0xCC/*::]*/: 1257,\n\n\t/*::[*/0xFF/*::]*/: 16969\n};\nvar dbf_reverse_map = evert({\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\t/*::[*/0x00/*::]*/: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64_decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array<DBFField>*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\n\t\tfield.name = $cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = $cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[i] == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes/*:Array<string>*/ = [];\n\tvar colwidths/*:Array<number>*/ = [];\n\tvar coldecimals/*:Array<number>*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array<any>*/ = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tmaxlen = Math.max(maxlen, String(col[j]).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[/*::String(*/current_ansi/*::)*/] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += (colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j<headers.length; ++j) {\n\t\t\tif(headers[j] == null) continue;\n\t\t\tswitch(coltypes[j]) {\n\t\t\t\tcase 'L': rout.write_shift(1, data[i][j] == null ? 0x3F : data[i][j] ? 0x54 : 0x46); break;\n\t\t\t\tcase 'B': rout.write_shift(8, data[i][j]||0, 'f'); break;\n\t\t\t\tcase 'N':\n\t\t\t\t\tvar _n = \"0\";\n\t\t\t\t\tif(typeof data[i][j] == \"number\") _n = data[i][j].toFixed(coldecimals[j]||0);\n\t\t\t\t\tfor(hcnt=0; hcnt < colwidths[j]-_n.length; ++hcnt) rout.write_shift(1, 0x20);\n\t\t\t\t\trout.write_shift(1, _n, \"sbcs\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(!data[i][j]) rout.write_shift(8, \"00000000\", \"sbcs\");\n\t\t\t\t\telse {\n\t\t\t\t\t\trout.write_shift(4, (\"0000\"+data[i][j].getFullYear()).slice(-4), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+(data[i][j].getMonth()+1)).slice(-2), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+data[i][j].getDate()).slice(-2), \"sbcs\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C':\n\t\t\t\t\tvar _s = String(data[i][j] != null ? data[i][j] : \"\").slice(0, colwidths[j]);\n\t\t\t\t\trout.write_shift(1, _s, \"sbcs\");\n\t\t\t\t\tfor(hcnt=0; hcnt < colwidths[j]-_s.length; ++hcnt) rout.write_shift(1, 0x20); break;\n\t\t\t}\n\t\t}\n\t\t// data\n\t}\n\tba.next(1).write_shift(1, 0x1A);\n\treturn ba.end();\n}\n\treturn {\n\t\tto_workbook: dbf_to_workbook,\n\t\tto_sheet: dbf_to_sheet,\n\t\tfrom_sheet: sheet_to_dbf\n\t};\n})();\n\nvar SYLK = /*#__PURE__*/(function() {\n\t/* TODO: stress test sequences */\n\tvar sylk_escapes = ({\n\t\tAA:'À', BA:'Á', CA:'Â', DA:195, HA:'Ä', JA:197,\n\t\tAE:'È', BE:'É', CE:'Ê', HE:'Ë',\n\t\tAI:'Ì', BI:'Í', CI:'Î', HI:'Ï',\n\t\tAO:'Ò', BO:'Ó', CO:'Ô', DO:213, HO:'Ö',\n\t\tAU:'Ù', BU:'Ú', CU:'Û', HU:'Ü',\n\t\tAa:'à', Ba:'á', Ca:'â', Da:227, Ha:'ä', Ja:229,\n\t\tAe:'è', Be:'é', Ce:'ê', He:'ë',\n\t\tAi:'ì', Bi:'í', Ci:'î', Hi:'ï',\n\t\tAo:'ò', Bo:'ó', Co:'ô', Do:245, Ho:'ö',\n\t\tAu:'ù', Bu:'ú', Cu:'û', Hu:'ü',\n\t\tKC:'Ç', Kc:'ç', q:'æ', z:'œ', a:'Æ', j:'Œ',\n\t\tDN:209, Dn:241, Hy:255,\n\t\tS:169, c:170, R:174, \"B \":180,\n\t\t/*::[*/0/*::]*/:176, /*::[*/1/*::]*/:177, /*::[*/2/*::]*/:178,\n\t\t/*::[*/3/*::]*/:179, /*::[*/5/*::]*/:181, /*::[*/6/*::]*/:182,\n\t\t/*::[*/7/*::]*/:183, Q:185, k:186, b:208, i:216, l:222, s:240, y:248,\n\t\t\"!\":161, '\"':162, \"#\":163, \"(\":164, \"%\":165, \"'\":167, \"H \":168,\n\t\t\"+\":171, \";\":187, \"<\":188, \"=\":189, \">\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array<string>*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array<RowInfo>*/ = [], colinfo/*:Array<ColInfo>*/ = [], cw/*:Array<string>*/ = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'W': break; /* window? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'A': break; // TODO: comment\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1))-1; C_seen_X = true; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1; if(!C_seen_X) C = 0;\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'K':\n\t\t\t\t\tval = record[rj].slice(1);\n\t\t\t\t\tif(val.charAt(0) === '\"') val = val.slice(1,val.length - 1);\n\t\t\t\t\telse if(val === 'TRUE') val = true;\n\t\t\t\t\telse if(val === 'FALSE') val = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(val))) {\n\t\t\t\t\t\tval = fuzzynum(val);\n\t\t\t\t\t\tif(next_cell_format !== null && fmt_is_date(next_cell_format)) val = numdate(val);\n\t\t\t\t\t} else if(!isNaN(fuzzydate(val).getDate())) {\n\t\t\t\t\t\tval = parseDate(val);\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof $cptable !== 'undefined' && typeof val == \"string\" && ((opts||{}).type != \"string\") && (opts||{}).codepage) val = $cptable.utils.decode(opts.codepage, val);\n\t\t\t\t\tC_seen_K = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'E':\n\t\t\t\t\tC_seen_E = true;\n\t\t\t\t\tvar formula = rc_to_a1(record[rj].slice(1), {r:R,c:C});\n\t\t\t\t\tarr[R][C] = [arr[R][C], formula];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'S':\n\t\t\t\t\tC_seen_S = true;\n\t\t\t\t\tarr[R][C] = [arr[R][C], \"S5S\"];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'G': break; // unknown\n\t\t\t\tcase 'R': _R = parseInt(record[rj].slice(1))-1; break;\n\t\t\t\tcase 'C': _C = parseInt(record[rj].slice(1))-1; break;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(C_seen_K) {\n\t\t\t\tif(arr[R][C] && arr[R][C].length == 2) arr[R][C][0] = val;\n\t\t\t\telse arr[R][C] = val;\n\t\t\t\tnext_cell_format = null;\n\t\t\t}\n\t\t\tif(C_seen_S) {\n\t\t\t\tif(C_seen_E) throw new Error(\"SYLK shared formula cannot have own formula\");\n\t\t\t\tvar shrbase = _R > -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tarr[R][C][1] = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1))-1; ++F_seen; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1; /*C = 0;*/\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'M': Mval = parseInt(record[rj].slice(1)) / 20; break;\n\t\t\t\tcase 'F': break; /* ??? */\n\t\t\t\tcase 'G': break; /* hide grid */\n\t\t\t\tcase 'P':\n\t\t\t\t\tnext_cell_format = formats[parseInt(record[rj].slice(1))];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'S': break; /* cell style */\n\t\t\t\tcase 'D': break; /* column */\n\t\t\t\tcase 'N': break; /* font */\n\t\t\t\tcase 'W':\n\t\t\t\t\tcw = record[rj].slice(1).split(\" \");\n\t\t\t\t\tfor(j = parseInt(cw[0], 10); j <= parseInt(cw[1], 10); ++j) {\n\t\t\t\t\t\tMval = parseInt(cw[2], 10);\n\t\t\t\t\t\tcolinfo[j-1] = Mval === 0 ? {hidden:true}: {wch:Mval}; process_col(colinfo[j-1]);\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C': /* default column format */\n\t\t\t\t\tC = parseInt(record[rj].slice(1))-1;\n\t\t\t\t\tif(!colinfo[C]) colinfo[C] = {};\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'R': /* row properties */\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1;\n\t\t\t\t\tif(!rowinfo[R]) rowinfo[R] = {};\n\t\t\t\t\tif(Mval > 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*//*::, opts*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\").replace(/;/g, \";;\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out/*:Array<string>*/, rows/*:Array<RowInfo>*/) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws/*:Worksheet*/, opts/*:?any*/)/*:string*/ {\n\t\tvar preamble/*:Array<string>*/ = [\"ID;PWXL;N;E\"], o/*:Array<string>*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = /*#__PURE__*/(function() {\n\t\tvar push_field = function pf(o/*:Array<string>*/, topic/*:string*/, v/*:number*/, n/*:number*/, s/*:string*/) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o/*:Array<string>*/, type/*:number*/, v/*:any*/, s/*:string*/) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\t\tvar o/*:Array<string>*/ = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array<string>*/ = [], oo/*:Array<string>*/ = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF_format(cell.z || table_fmt[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n\t\t/*::[*/0x2C/*::]*/: ',',\n\t\t/*::[*/0x09/*::]*/: \"\\t\",\n\t\t/*::[*/0x3B/*::]*/: ';',\n\t\t/*::[*/0x7C/*::]*/: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t/*::[*/0x2C/*::]*/: 3,\n\t\t/*::[*/0x09/*::]*/: 2,\n\t\t/*::[*/0x3B/*::]*/: 1,\n\t\t/*::[*/0x7C/*::]*/: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re/*:?RegExp*/ = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({}/*:any*/);\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF_format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64_decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array<string>*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo/*:Array<string>*/ = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64_decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ((o.dense ? [] : {})/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || table_fmt[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (s[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = Array.isArray(ws);\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell.v));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell.v));\n\t\t\t\t} else {\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, v) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, v) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t0x6F: [\"T\", 1]\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"CALCMODE\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCORDER\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"SPLIT\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SYNC\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"RANGE\", f:parse_RANGE },\n\t\t/*::[*/0x0007/*::]*/: { n:\"WINDOW1\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"COLW1\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"WINTWO\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"COLW2\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"NAME\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"BLANK\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t/*::[*/0x000E/*::]*/: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t/*::[*/0x000F/*::]*/: { n:\"LABEL\", f:parse_LABEL },\n\t\t/*::[*/0x0010/*::]*/: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t/*::[*/0x0018/*::]*/: { n:\"TABLE\" },\n\t\t/*::[*/0x0019/*::]*/: { n:\"ORANGE\" },\n\t\t/*::[*/0x001A/*::]*/: { n:\"PRANGE\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"SRANGE\" },\n\t\t/*::[*/0x001C/*::]*/: { n:\"FRANGE\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"KRANGE1\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"HRANGE\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"KRANGE2\" },\n\t\t/*::[*/0x0024/*::]*/: { n:\"PROTEC\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"FOOTER\" },\n\t\t/*::[*/0x0026/*::]*/: { n:\"HEADER\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"SETUP\" },\n\t\t/*::[*/0x0028/*::]*/: { n:\"MARGINS\" },\n\t\t/*::[*/0x0029/*::]*/: { n:\"LABELFMT\" },\n\t\t/*::[*/0x002A/*::]*/: { n:\"TITLES\" },\n\t\t/*::[*/0x002B/*::]*/: { n:\"SHEETJS\" },\n\t\t/*::[*/0x002D/*::]*/: { n:\"GRAPH\" },\n\t\t/*::[*/0x002E/*::]*/: { n:\"NGRAPH\" },\n\t\t/*::[*/0x002F/*::]*/: { n:\"CALCCOUNT\" },\n\t\t/*::[*/0x0030/*::]*/: { n:\"UNFORMATTED\" },\n\t\t/*::[*/0x0031/*::]*/: { n:\"CURSORW12\" },\n\t\t/*::[*/0x0032/*::]*/: { n:\"WINDOW\" },\n\t\t/*::[*/0x0033/*::]*/: { n:\"STRING\", f:parse_LABEL },\n\t\t/*::[*/0x0037/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0038/*::]*/: { n:\"LOCKED\" },\n\t\t/*::[*/0x003C/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x003D/*::]*/: { n:\"QUERYNAME\" },\n\t\t/*::[*/0x003E/*::]*/: { n:\"PRINT\" },\n\t\t/*::[*/0x003F/*::]*/: { n:\"PRINTNAME\" },\n\t\t/*::[*/0x0040/*::]*/: { n:\"GRAPH2\" },\n\t\t/*::[*/0x0041/*::]*/: { n:\"GRAPHNAME\" },\n\t\t/*::[*/0x0042/*::]*/: { n:\"ZOOM\" },\n\t\t/*::[*/0x0043/*::]*/: { n:\"SYMSPLIT\" },\n\t\t/*::[*/0x0044/*::]*/: { n:\"NSROWS\" },\n\t\t/*::[*/0x0045/*::]*/: { n:\"NSCOLS\" },\n\t\t/*::[*/0x0046/*::]*/: { n:\"RULER\" },\n\t\t/*::[*/0x0047/*::]*/: { n:\"NNAME\" },\n\t\t/*::[*/0x0048/*::]*/: { n:\"ACOMM\" },\n\t\t/*::[*/0x0049/*::]*/: { n:\"AMACRO\" },\n\t\t/*::[*/0x004A/*::]*/: { n:\"PARSE\" },\n\t\t/*::[*/0x0066/*::]*/: { n:\"PRANGES??\" },\n\t\t/*::[*/0x0067/*::]*/: { n:\"RRANGES??\" },\n\t\t/*::[*/0x0068/*::]*/: { n:\"FNAME??\" },\n\t\t/*::[*/0x0069/*::]*/: { n:\"MRANGES??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00DE/*::]*/: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\" },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCSET\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"WINDOWSET\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SHEETCELLPTR\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"SHEETLAYOUT\" },\n\t\t/*::[*/0x0007/*::]*/: { n:\"COLUMNWIDTH\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"HIDDENCOLUMN\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"USERRANGE\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"SYSTEMRANGE\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"ZEROFORCE\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"SORTKEYDIR\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"FILESEAL\" },\n\t\t/*::[*/0x000E/*::]*/: { n:\"DATAFILLNUMS\" },\n\t\t/*::[*/0x000F/*::]*/: { n:\"PRINTMAIN\" },\n\t\t/*::[*/0x0010/*::]*/: { n:\"PRINTSTRING\" },\n\t\t/*::[*/0x0011/*::]*/: { n:\"GRAPHMAIN\" },\n\t\t/*::[*/0x0012/*::]*/: { n:\"GRAPHSTRING\" },\n\t\t/*::[*/0x0013/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0014/*::]*/: { n:\"ERRCELL\" },\n\t\t/*::[*/0x0015/*::]*/: { n:\"NACELL\" },\n\t\t/*::[*/0x0016/*::]*/: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t/*::[*/0x0017/*::]*/: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t/*::[*/0x0018/*::]*/: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t/*::[*/0x0019/*::]*/: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t/*::[*/0x001A/*::]*/: { n:\"FORMULA1A\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t/*::[*/0x001C/*::]*/: { n:\"DTLABELMISC\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"DTLABELCELL\" },\n\t\t/*::[*/0x001E/*::]*/: { n:\"GRAPHWINDOW\" },\n\t\t/*::[*/0x001F/*::]*/: { n:\"CPA\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"LPLAUTO\" },\n\t\t/*::[*/0x0021/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x0022/*::]*/: { n:\"HIDDENSHEET\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t/*::[*/0x0026/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t/*::[*/0x0028/*::]*/: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t/*::[*/0x008E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0093/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0096/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0097/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0098/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0099/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00A3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B1/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B8/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BA/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BB/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BC/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00CD/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00D0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0100/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0103/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0104/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0105/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0106/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0107/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0109/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010F/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0180/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0185/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0186/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0189/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x018C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0200/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0202/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0201/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0204/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0205/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0280/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0281/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0282/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0283/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0284/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0285/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0286/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0287/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0288/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0292/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0293/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0294/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0295/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0296/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0299/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x029A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0300/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0304/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0601/*::]*/: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t/*::[*/0x0640/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0642/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0701/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0702/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0703/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0704/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0780/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0800/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0801/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0804/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0A80/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x2AF6/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x3231/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6E49/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6F44/*::]*/: { n:\"??\" },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<condense': break;\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<extend': break;\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<shadow':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<shadow>':\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\t\t\tcase '</shadow>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\tfont.cp = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty TODO */\n\t\t\tcase '<outline':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<outline>':\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\t\t\tcase '</outline>': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '<rFont': font.name = y.val; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': font.sz = y.val; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<strike>':\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\t\t\tcase '</strike>': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tif(!y.val) break;\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase 'double': font.uval = \"double\"; break;\n\t\t\t\t\tcase 'singleAccounting': font.uval = \"single-accounting\"; break;\n\t\t\t\t\tcase 'doubleAccounting': font.uval = \"double-accounting\"; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '<u>':\n\t\t\tcase '<u/>': font.u = 1; break;\n\t\t\tcase '</u>': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '<b':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<b>':\n\t\t\tcase '<b/>': font.b = 1; break;\n\t\t\tcase '</b>': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '<i':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<i>':\n\t\t\tcase '<i/>': font.i = 1; break;\n\t\t\tcase '</i>': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '<color':\n\t\t\t\tif(y.rgb) font.color = y.rgb.slice(2,8);\n\t\t\t\tbreak;\n\t\t\tcase '<color>': case '<color/>': case '</color>': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '<family': font.family = y.val; break;\n\t\t\tcase '<family>': case '<family/>': case '</family>': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '<vertAlign': font.valign = y.val; break;\n\t\t\tcase '<vertAlign>': case '<vertAlign/>': case '</vertAlign>': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '<scheme': break;\n\t\t\tcase '<scheme>': case '<scheme/>': case '</scheme>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of <r> tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array<string>*/ = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('<span style=\"' + style.join(\"\") + '\">');\n\n\t\tif(font.b) { intro.push(\"<b>\"); outro.push(\"</b>\"); }\n\t\tif(font.i) { intro.push(\"<i>\"); outro.push(\"</i>\"); }\n\t\tif(font.strike) { intro.push(\"<s>\"); outro.push(\"</s>\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"</\" + align + \">\"); }\n\n\t\toutro.push(\"</span>\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array<string>, string, Array<string>]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'<br/>') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS_main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s/*:XLString*/ = sst[i];\n\t\tvar sitag = \"<si>\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"<t\";\n\t\t\tif(!s.t) s.t = \"\";\n\t\t\tif(s.t.match(straywsregex)) sitag += ' xml:space=\"preserve\"';\n\t\t\tsitag += \">\" + escapexml(s.t) + \"</t>\";\n\t\t}\n\t\tsitag += \"</si>\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = ('</sst>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* BrtBeginSst */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* BrtSSTItem */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* BrtEndSst */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array<number>*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array<number>*/ = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps/*:Array<{t:number, v:string}>*/ = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob)/*:Array<string>*/ {\n\tvar o/*:Array<string>*/ = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length/*:number*/) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length/*:number*/) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob/*::, vers*/) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt(/*::blob, vers*/) { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob/*::, vers*/) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<encryption': case '</encryption>': break;\n\t\t\tcase '<keyData': KeyData.forEach(function(k) { o[k] = y[k]; }); break;\n\t\t\tcase '<dataIntegrity': o.encryptedHmacKey = y.encryptedHmacKey; o.encryptedHmacValue = y.encryptedHmacValue; break;\n\t\t\tcase '<keyEncryptors>': case '<keyEncryptors': o.encs = []; break;\n\t\t\tcase '</keyEncryptors>': break;\n\n\t\t\tcase '<keyEncryptor': o.uri = y.uri; break;\n\t\t\tcase '</keyEncryptor>': break;\n\t\t\tcase '<encryptedKey': o.encs.push(y); break;\n\t\t\tdefault: throw y[0];\n\t\t}\n\t});\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.5.1 RC4 CryptoAPI Encryption Header */\nfunction parse_RC4CryptoHeader(blob, length/*:number*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4); length -= 4;\n\tif(vers.Minor != 2) throw new Error('unrecognized minor version code: ' + vers.Minor);\n\tif(vers.Major > 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob/*::, length*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password/*:string*/) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = /*#__PURE__*/(function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password/*:string*/) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password/*:string*/, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password/*:string*/) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }/*:any*/);\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length/*:number*/, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = /*#__PURE__*/(function() {\n\tfunction rtf_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\t/* TODO: this is a stub */\n\tfunction rtf_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\n\t\tvar rows = str.match(/\\\\trowd.*?\\\\row\\b/g);\n\t\tif(!rows.length) throw new Error(\"RTF missing table\");\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:rows.length - 1}}/*:any*/);\n\t\trows.forEach(function(rowtf, R) {\n\t\t\tif(Array.isArray(ws)) ws[R] = [];\n\t\t\tvar rtfre = /\\\\\\w+\\b/g;\n\t\t\tvar last_index = 0;\n\t\t\tvar res;\n\t\t\tvar C = -1;\n\t\t\twhile((res = rtfre.exec(rowtf))) {\n\t\t\t\tswitch(res[0]) {\n\t\t\t\t\tcase \"\\\\cell\":\n\t\t\t\t\t\tvar data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n\t\t\t\t\t\tif(data[0] == \" \") data = data.slice(1);\n\t\t\t\t\t\t++C;\n\t\t\t\t\t\tif(data.length) {\n\t\t\t\t\t\t\t// TODO: value parsing, including codepage adjustments\n\t\t\t\t\t\t\tvar cell = {v: data, t:\"s\"};\n\t\t\t\t\t\t\tif(Array.isArray(ws)) ws[R][C] = cell;\n\t\t\t\t\t\t\telse ws[encode_cell({r:R, c:C})] = cell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tlast_index = rtfre.lastIndex;\n\t\t\t}\n\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t});\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws/*:Worksheet*//*::, opts*/)/*:string*/ {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) if(Math.abs(collw - cycle_width(collw)) <= delta) { delta = Math.abs(collw - cycle_width(collw)); _MDW = MDW; }\n\tMDW = _MDW;\n}\n/* XLML specifies width in terms of pixels */\n/*function find_mdw_wpx(wpx) {\n\tvar delta = Infinity, guess = 0, _MDW = MIN_MDW;\n\tfor(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) {\n\t\tguess = char2width_(px2char_(wpx))*256;\n\t\tguess = (guess) % 1;\n\t\tif(guess > 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<borders': case '<borders>': case '</borders>': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '<border': case '<border>': case '<border/>':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '</border>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<left/>': break;\n\t\t\tcase '<left': case '<left>': break;\n\t\t\tcase '</left>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<right/>': break;\n\t\t\tcase '<right': case '<right>': break;\n\t\t\tcase '</right>': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '<top/>': break;\n\t\t\tcase '<top': case '<top>': break;\n\t\t\tcase '</top>': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '<bottom/>': break;\n\t\t\tcase '<bottom': case '<bottom>': break;\n\t\t\tcase '</bottom>': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '<diagonal': case '<diagonal>': case '<diagonal/>': break;\n\t\t\tcase '</diagonal>': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '<horizontal': case '<horizontal>': case '<horizontal/>': break;\n\t\t\tcase '</horizontal>': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '<vertical': case '<vertical>': case '<vertical/>': break;\n\t\t\tcase '</vertical>': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '<start': case '<start>': case '<start/>': break;\n\t\t\tcase '</start>': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '<end': case '<end>': case '<end/>': break;\n\t\t\tcase '</end>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color>':\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fills': case '<fills>': case '</fills>': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '<fill>': case '<fill': case '<fill/>':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '</fill>': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '<gradientFill>': break;\n\t\t\tcase '<gradientFill':\n\t\t\tcase '</gradientFill>': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '<patternFill': case '<patternFill>':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '<patternFill/>': case '</patternFill>': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '<bgColor':\n\t\t\t\tif(!fill.bgColor) fill.bgColor = {};\n\t\t\t\tif(y.indexed) fill.bgColor.indexed = parseInt(y.indexed, 10);\n\t\t\t\tif(y.theme) fill.bgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.bgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb) fill.bgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<bgColor/>': case '</bgColor>': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '<fgColor':\n\t\t\t\tif(!fill.fgColor) fill.fgColor = {};\n\t\t\t\tif(y.theme) fill.fgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.fgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb != null) fill.fgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<fgColor/>': case '</fgColor>': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '<stop': case '<stop/>': break;\n\t\t\tcase '</stop>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color/>': break;\n\t\t\tcase '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fonts': case '<fonts>': case '</fonts>': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '<font': case '<font>': break;\n\t\t\tcase '</font>': case '<font/>':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '<name': if(y.val) font.name = utf8read(y.val); break;\n\t\t\tcase '<name/>': case '</name>': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '<b': font.bold = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<b/>': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '<i': font.italic = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<i/>': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase \"none\": font.underline = 0x00; break;\n\t\t\t\t\tcase \"single\": font.underline = 0x01; break;\n\t\t\t\t\tcase \"double\": font.underline = 0x02; break;\n\t\t\t\t\tcase \"singleAccounting\": font.underline = 0x21; break;\n\t\t\t\t\tcase \"doubleAccounting\": font.underline = 0x22; break;\n\t\t\t\t} break;\n\t\t\tcase '<u/>': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike': font.strike = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '<outline': font.outline = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '<shadow': font.shadow = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '<condense': font.condense = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<condense/>': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '<extend': font.extend = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<extend/>': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': if(y.val) font.sz = +y.val; break;\n\t\t\tcase '<sz/>': case '</sz>': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '<vertAlign': if(y.val) font.vertAlign = y.val; break;\n\t\t\tcase '<vertAlign/>': case '</vertAlign>': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '<family': if(y.val) font.family = parseInt(y.val,10); break;\n\t\t\tcase '<family/>': case '</family>': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '<scheme': if(y.val) font.scheme = y.val; break;\n\t\t\tcase '<scheme/>': case '</scheme>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\ty.codepage = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.?.? color CT_Color */\n\t\t\tcase '<color':\n\t\t\t\tif(!font.color) font.color = {};\n\t\t\t\tif(y.auto) font.color.auto = parsexmlbool(y.auto);\n\n\t\t\t\tif(y.rgb) font.color.rgb = y.rgb.slice(-6);\n\t\t\t\telse if(y.indexed) {\n\t\t\t\t\tfont.color.index = parseInt(y.indexed, 10);\n\t\t\t\t\tvar icv = XLSIcv[font.color.index];\n\t\t\t\t\tif(font.color.index == 81) icv = XLSIcv[1];\n\t\t\t\t\tif(!icv) icv = XLSIcv[1]; //throw new Error(x); // note: 206 is valid\n\t\t\t\t\tfont.color.rgb = icv[0].toString(16) + icv[1].toString(16) + icv[2].toString(16);\n\t\t\t\t} else if(y.theme) {\n\t\t\t\t\tfont.color.theme = parseInt(y.theme, 10);\n\t\t\t\t\tif(y.tint) font.color.tint = parseFloat(y.tint);\n\t\t\t\t\tif(y.theme && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\t\tfont.color.rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array<number>*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<numFmts': case '</numFmts>': case '<numFmts/>': case '<numFmts>': break;\n\t\t\tcase '<numFmt': {\n\t\t\t\tvar f=unescapexml(utf8read(y.formatCode)), j=parseInt(y.numFmtId,10);\n\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\tif(j>0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF_load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '</numFmt>': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF/*:{[n:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"<numFmts>\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"</numFmts>\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<cellXfs': case '<cellXfs>': case '<cellXfs/>': case '</cellXfs>': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '<xf': case '<xf/>':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '</xf>': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '<alignment': case '<alignment/>':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '</alignment>': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '<protection':\n\t\t\t\tbreak;\n\t\t\tcase '</protection>': case '<protection/>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"</cellXfs>\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= /*#__PURE__*/(function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(/<!--([\\s\\S]*?)-->/mg,\"\").replace(/<!DOCTYPE[^\\[]*\\[[^\\]]*\\]>/gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('<fonts count=\"1\"><font><sz val=\"12\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts>');\n\to[o.length] = ('<fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills>');\n\to[o.length] = ('<borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>');\n\to[o.length] = ('<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('<cellStyles count=\"1\"><cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\"/></cellStyles>');\n\to[o.length] = ('<dxfs count=\"0\"/>');\n\to[o.length] = ('<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\"/>');\n\n\tif(o.length>2){ o[o.length] = ('</styleSheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames/*:EvertNumType*/;\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF_load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* BrtBeginCellXFs */) {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* BrtStyle */\n\t\t\tcase 0x01FB: /* BrtDXF */\n\t\t\tcase 0x023C: /* BrtMRUColor */\n\t\t\tcase 0x01DB: /* BrtIndexedColor */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* BrtDXF14 */\n\t\t\tcase 0x0836: /* BrtDXF15 */\n\t\t\tcase 0x046A: /* BrtSlicerStyleElement */\n\t\t\tcase 0x0200: /* BrtTableStyleElement */\n\t\t\tcase 0x082F: /* BrtTimelineStyleElement */\n\t\t\tcase 0x0C00: /* BrtUid */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* BrtACBegin */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* BrtFont */, write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* BrtXF */, write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* BrtStyle */, write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0116 /* BrtBeginStyleSheet */);\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'</a:lt1>', '</a:dk1>', '</a:lt2>', '</a:dk2>',\n\t'</a:accent1>', '</a:accent2>', '</a:accent3>',\n\t'</a:accent4>', '</a:accent5>', '</a:accent6>',\n\t'</a:hlink>', '</a:folHlink>'\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '<a:clrScheme': case '</a:clrScheme>': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '<a:srgbClr':\n\t\t\t\tcolor.rgb = y.val; break;\n\n\t\t\t/* 20.1.2.3.33 sysClr CT_SystemColor */\n\t\t\tcase '<a:sysClr':\n\t\t\t\tcolor.rgb = y.lastClr; break;\n\n\t\t\t/* 20.1.4.1.1 accent1 (Accent 1) */\n\t\t\t/* 20.1.4.1.2 accent2 (Accent 2) */\n\t\t\t/* 20.1.4.1.3 accent3 (Accent 3) */\n\t\t\t/* 20.1.4.1.4 accent4 (Accent 4) */\n\t\t\t/* 20.1.4.1.5 accent5 (Accent 5) */\n\t\t\t/* 20.1.4.1.6 accent6 (Accent 6) */\n\t\t\t/* 20.1.4.1.9 dk1 (Dark 1) */\n\t\t\t/* 20.1.4.1.10 dk2 (Dark 2) */\n\t\t\t/* 20.1.4.1.15 folHlink (Followed Hyperlink) */\n\t\t\t/* 20.1.4.1.19 hlink (Hyperlink) */\n\t\t\t/* 20.1.4.1.22 lt1 (Light 1) */\n\t\t\t/* 20.1.4.1.23 lt2 (Light 2) */\n\t\t\tcase '<a:dk1>': case '</a:dk1>':\n\t\t\tcase '<a:lt1>': case '</a:lt1>':\n\t\t\tcase '<a:dk2>': case '</a:dk2>':\n\t\t\tcase '<a:lt2>': case '</a:lt2>':\n\t\t\tcase '<a:accent1>': case '</a:accent1>':\n\t\t\tcase '<a:accent2>': case '</a:accent2>':\n\t\t\tcase '<a:accent3>': case '</a:accent3>':\n\t\t\tcase '<a:accent4>': case '</a:accent4>':\n\t\t\tcase '<a:accent5>': case '</a:accent5>':\n\t\t\tcase '<a:accent6>': case '</a:accent6>':\n\t\t\tcase '<a:hlink>': case '</a:hlink>':\n\t\t\tcase '<a:folHlink>': case '</a:folHlink>':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\nvar clrsregex = /<a:clrScheme([^>]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /<a:fontScheme([^>]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /<a:fmtScheme([^>]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /<a:themeElements([^>]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">';\n\to[o.length] = '<a:themeElements>';\n\n\to[o.length] = '<a:clrScheme name=\"Office\">';\n\to[o.length] = '<a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>';\n\to[o.length] = '<a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>';\n\to[o.length] = '<a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2>';\n\to[o.length] = '<a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2>';\n\to[o.length] = '<a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1>';\n\to[o.length] = '<a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2>';\n\to[o.length] = '<a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3>';\n\to[o.length] = '<a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4>';\n\to[o.length] = '<a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5>';\n\to[o.length] = '<a:accent6><a:srgbClr val=\"F79646\"/></a:accent6>';\n\to[o.length] = '<a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink>';\n\to[o.length] = '<a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink>';\n\to[o.length] = '</a:clrScheme>';\n\n\to[o.length] = '<a:fontScheme name=\"Office\">';\n\to[o.length] = '<a:majorFont>';\n\to[o.length] = '<a:latin typeface=\"Cambria\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"MoolBoran\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:majorFont>';\n\to[o.length] = '<a:minorFont>';\n\to[o.length] = '<a:latin typeface=\"Calibri\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"DaunPenh\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:minorFont>';\n\to[o.length] = '</a:fontScheme>';\n\n\to[o.length] = '<a:fmtScheme name=\"Office\">';\n\to[o.length] = '<a:fillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"1\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"100000\"/><a:shade val=\"100000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:shade val=\"100000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"0\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:fillStyleLst>';\n\to[o.length] = '<a:lnStyleLst>';\n\to[o.length] = '<a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"><a:shade val=\"95000\"/><a:satMod val=\"105000\"/></a:schemeClr></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '</a:lnStyleLst>';\n\to[o.length] = '<a:effectStyleLst>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '<a:scene3d><a:camera prst=\"orthographicFront\"><a:rot lat=\"0\" lon=\"0\" rev=\"0\"/></a:camera><a:lightRig rig=\"threePt\" dir=\"t\"><a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/></a:lightRig></a:scene3d>';\n\to[o.length] = '<a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '</a:effectStyleLst>';\n\to[o.length] = '<a:bgFillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:bgFillStyleLst>';\n\to[o.length] = '</a:fmtScheme>';\n\to[o.length] = '</a:themeElements>';\n\n\to[o.length] = '<a:objectDefaults>';\n\to[o.length] = '<a:spDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"3\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"lt1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:spDef>';\n\to[o.length] = '<a:lnDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"0\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"tx1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:lnDef>';\n\to[o.length] = '</a:objectDefaults>';\n\to[o.length] = '<a:extraClrSchemeLst/>';\n\to[o.length] = '</a:theme>';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob/*::, length*/)/*:Array<any>*/ {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"<?xml\":\n break;\n case \"<metadata\":\n case \"</metadata>\":\n break;\n case \"<metadataTypes\":\n case \"</metadataTypes>\":\n break;\n case \"<metadataType\":\n out.Types.push({ name: y.name });\n break;\n case \"</metadataType>\":\n break;\n case \"<futureMetadata\":\n for (var j = 0; j < out.Types.length; ++j)\n if (out.Types[j].name == y.name)\n lastmeta = out.Types[j];\n break;\n case \"</futureMetadata>\":\n break;\n case \"<bk>\":\n break;\n case \"</bk>\":\n break;\n case \"<rc\":\n if (metatype == 1)\n out.Cell.push({ type: out.Types[y.t - 1].name, index: +y.v });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[y.t - 1].name, index: +y.v });\n break;\n case \"</rc>\":\n break;\n case \"<cellMetadata\":\n metatype = 1;\n break;\n case \"</cellMetadata>\":\n metatype = 2;\n break;\n case \"<valueMetadata\":\n metatype = 0;\n break;\n case \"</valueMetadata>\":\n metatype = 2;\n break;\n case \"<extLst\":\n case \"<extLst>\":\n case \"</extLst>\":\n case \"<extLst/>\":\n break;\n case \"<ext\":\n pass = true;\n break;\n case \"</ext>\":\n pass = false;\n break;\n case \"<rvb\":\n if (!lastmeta)\n break;\n if (!lastmeta.offsets)\n lastmeta.offsets = [];\n lastmeta.offsets.push(+y.i);\n break;\n default:\n if (!pass && opts.WTF)\n throw new Error(\"unrecognized \" + y[0] + \" in metadata\");\n }\n return x;\n });\n return out;\n}\nfunction write_xlmeta_xml() {\n var o = [XML_HEADER];\n o.push('<metadata xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:xlrd=\"http://schemas.microsoft.com/office/spreadsheetml/2017/richdata\" xmlns:xda=\"http://schemas.microsoft.com/office/spreadsheetml/2017/dynamicarray\">\\n <metadataTypes count=\"1\">\\n <metadataType name=\"XLDAPR\" minSupportedVersion=\"120000\" copy=\"1\" pasteAll=\"1\" pasteValues=\"1\" merge=\"1\" splitFirst=\"1\" rowColShift=\"1\" clearFormats=\"1\" clearComments=\"1\" assign=\"1\" coerce=\"1\" cellMeta=\"1\"/>\\n </metadataTypes>\\n <futureMetadata name=\"XLDAPR\" count=\"1\">\\n <bk>\\n <extLst>\\n <ext uri=\"{bdbb8cdc-fa1e-496e-a857-3c3f30c029c3}\">\\n <xda:dynamicArrayProperties fDynamic=\"1\" fCollapsed=\"0\"/>\\n </ext>\\n </extLst>\\n </bk>\\n </futureMetadata>\\n <cellMetadata count=\"1\">\\n <bk>\\n <rc t=\"1\" v=\"0\"/>\\n </bk>\\n </cellMetadata>\\n</metadata>');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array<any>*/ {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\t/* 18.6.2 calcChain CT_CalcChain 1 */\n\t\t\tcase '<calcChain': case '<calcChain>': case '</calcChain>': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase '<c': delete y[0]; if(y.i) i = y.i; else y.i = i; d.push(y); break;\n\t\t}\n\t});\n\treturn d;\n}\n\n//function write_cc_xml(data, opts) { }\n\n/* [MS-XLSB] 2.6.4.1 */\nfunction parse_BrtCalcChainItem$(data) {\n\tvar out = {};\n\tout.i = data.read_shift(4);\n\tvar cell = {};\n\tcell.r = data.read_shift(4);\n\tcell.c = data.read_shift(4);\n\tout.r = encode_cell(cell);\n\tvar flags = data.read_shift(1);\n\tif(flags & 0x2) out.l = '1';\n\tif(flags & 0x8) out.a = '1';\n\treturn out;\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_bin(data, name, opts) {\n\tvar out = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_cc(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x003F: /* 'BrtCalcChainItem$' */\n\t\t\t\tout.push(val); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml(/*::data, rel, name:string, _opts*/) {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name/*:string*/, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels/*:any*/) {\n\tif(!data) return \"??\";\n\t/*\n\t Chartsheet Drawing:\n\t - 20.5.2.35 wsDr CT_Drawing\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n - chart reference\n\t the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/<c:chart [^>]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId/*:number*/, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\t++_shapeid;\n\n\to = o.concat([\n\t'<v:shape' + wxt_helper({\n\t\tid:'_x0000_s' + _shapeid,\n\t\ttype:\"#_x0000_t202\",\n\t\tstyle:\"position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10\" + (x[1].hidden ? \";visibility:hidden\" : \"\") ,\n\t\tfillcolor:\"#ECFAD4\",\n\t\tstrokecolor:\"#edeaa1\"\n\t}) + '>',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'<v:textbox><div style=\"text-align:left\"></div></v:textbox>',\n\t\t'<x:ClientData ObjectType=\"Note\">',\n\t\t\t'<x:MoveWithCells/>',\n\t\t\t'<x:SizeWithCells/>',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '<x:Visible/>',\n\t\t'</x:ClientData>',\n\t'</v:shape>'\n\t]); });\n\to.push('</xml>');\n\treturn o.join(\"\");\n}\nfunction sheet_insert_comments(sheet, comments/*:Array<RawComment>*/, threaded/*:boolean*/, people/*:?Array<any>*/) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array<RawComment>*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array<string>*/ = [];\n\tvar commentList/*:Array<RawComment>*/ = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"<t></t>\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array<string>*/ = [];\n\to.push(\"<authors>\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"<author>\" + a + \"</author>\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"<author>\" + \"tc=\" + w.ID + \"</author>\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"<author>SheetJ5</author>\"); }\n\to.push(\"</authors>\");\n\to.push(\"<commentList>\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [];\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\telse d[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tts.push(c.t||\"\");\n\t\t});\n\t\to.push('<comment ref=\"' + d[0] + '\" authorId=\"' + lastauthor + '\"><text>');\n\t\tif(ts.length <= 1) o.push(writetag(\"t\", escapexml(ts[0]||\"\")));\n\t\telse {\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t}\n\t\to.push('</text></comment>');\n\t});\n\to.push(\"</commentList>\");\n\tif(o.length>2) { o[o.length] = ('</comments>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array<RawComment>*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 2.6.207 ThreadedComments CT_ThreadedComments */\n\t\t\tcase '<ThreadedComments': break;\n\t\t\tcase '</ThreadedComments>': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '<threadedComment': comment = {author: y.personId, guid: y.id, ref: y.ref, T: 1}; break;\n\t\t\tcase '</threadedComment>': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '<text>': case '<text': tidx = idx + x.length; break;\n\t\t\tcase '</text>': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '<mentions': case '<mentions>': pass = true; break;\n\t\t\tcase '</mentions>': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break;\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('</ThreadedComments>');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 2.4.85 personList CT_PersonList */\n\t\t\tcase '<personList': break;\n\t\t\tcase '</personList>': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '<person': out.push({name: y.displayname, id: y.id }); break;\n\t\t\tcase '</person>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break;\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"</personList>\");\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]/*:any*/), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts)/*:Array<RawComment>*/ {\n\tvar out/*:Array<RawComment>*/ = [];\n\tvar authors/*:Array<string>*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array<string>*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* BrtBeginCommentAuthors */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* BrtBeginCommentList */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f/*:string*/, delta/*:Cell*/)/*:string*/ {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob/*::, length, opts*/) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob/*::, length, opts*/) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob/*::, length, opts*/) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob/*::, length:number, opts*/) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts)/*:Array<number>*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array<number>*/ = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob/*::, length*/) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff/*:number*/) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out/*:Array<Range>*/ = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o/*:Array<Array<any>>*/ = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob/*::, length, opts*/) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob/*::, length, opts*/) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n\t/*::[*/0x01/*::]*/: { n:'PtgExp', f:parse_PtgExp },\n\t/*::[*/0x02/*::]*/: { n:'PtgTbl', f:parse_PtgTbl },\n\t/*::[*/0x03/*::]*/: { n:'PtgAdd', f:parseread1 },\n\t/*::[*/0x04/*::]*/: { n:'PtgSub', f:parseread1 },\n\t/*::[*/0x05/*::]*/: { n:'PtgMul', f:parseread1 },\n\t/*::[*/0x06/*::]*/: { n:'PtgDiv', f:parseread1 },\n\t/*::[*/0x07/*::]*/: { n:'PtgPower', f:parseread1 },\n\t/*::[*/0x08/*::]*/: { n:'PtgConcat', f:parseread1 },\n\t/*::[*/0x09/*::]*/: { n:'PtgLt', f:parseread1 },\n\t/*::[*/0x0A/*::]*/: { n:'PtgLe', f:parseread1 },\n\t/*::[*/0x0B/*::]*/: { n:'PtgEq', f:parseread1 },\n\t/*::[*/0x0C/*::]*/: { n:'PtgGe', f:parseread1 },\n\t/*::[*/0x0D/*::]*/: { n:'PtgGt', f:parseread1 },\n\t/*::[*/0x0E/*::]*/: { n:'PtgNe', f:parseread1 },\n\t/*::[*/0x0F/*::]*/: { n:'PtgIsect', f:parseread1 },\n\t/*::[*/0x10/*::]*/: { n:'PtgUnion', f:parseread1 },\n\t/*::[*/0x11/*::]*/: { n:'PtgRange', f:parseread1 },\n\t/*::[*/0x12/*::]*/: { n:'PtgUplus', f:parseread1 },\n\t/*::[*/0x13/*::]*/: { n:'PtgUminus', f:parseread1 },\n\t/*::[*/0x14/*::]*/: { n:'PtgPercent', f:parseread1 },\n\t/*::[*/0x15/*::]*/: { n:'PtgParen', f:parseread1 },\n\t/*::[*/0x16/*::]*/: { n:'PtgMissArg', f:parseread1 },\n\t/*::[*/0x17/*::]*/: { n:'PtgStr', f:parse_PtgStr },\n\t/*::[*/0x1A/*::]*/: { n:'PtgSheet', f:parse_PtgSheet },\n\t/*::[*/0x1B/*::]*/: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t/*::[*/0x1C/*::]*/: { n:'PtgErr', f:parse_PtgErr },\n\t/*::[*/0x1D/*::]*/: { n:'PtgBool', f:parse_PtgBool },\n\t/*::[*/0x1E/*::]*/: { n:'PtgInt', f:parse_PtgInt },\n\t/*::[*/0x1F/*::]*/: { n:'PtgNum', f:parse_PtgNum },\n\t/*::[*/0x20/*::]*/: { n:'PtgArray', f:parse_PtgArray },\n\t/*::[*/0x21/*::]*/: { n:'PtgFunc', f:parse_PtgFunc },\n\t/*::[*/0x22/*::]*/: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t/*::[*/0x23/*::]*/: { n:'PtgName', f:parse_PtgName },\n\t/*::[*/0x24/*::]*/: { n:'PtgRef', f:parse_PtgRef },\n\t/*::[*/0x25/*::]*/: { n:'PtgArea', f:parse_PtgArea },\n\t/*::[*/0x26/*::]*/: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t/*::[*/0x27/*::]*/: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t/*::[*/0x28/*::]*/: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t/*::[*/0x29/*::]*/: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t/*::[*/0x2A/*::]*/: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t/*::[*/0x2B/*::]*/: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t/*::[*/0x2C/*::]*/: { n:'PtgRefN', f:parse_PtgRefN },\n\t/*::[*/0x2D/*::]*/: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t/*::[*/0x2E/*::]*/: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t/*::[*/0x2F/*::]*/: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t/*::[*/0x39/*::]*/: { n:'PtgNameX', f:parse_PtgNameX },\n\t/*::[*/0x3A/*::]*/: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t/*::[*/0x3B/*::]*/: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t/*::[*/0x3C/*::]*/: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t/*::[*/0x3D/*::]*/: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t/*::[*/0xFF/*::]*/: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t/*::[*/0x40/*::]*/: 0x20, /*::[*/0x60/*::]*/: 0x20,\n\t/*::[*/0x41/*::]*/: 0x21, /*::[*/0x61/*::]*/: 0x21,\n\t/*::[*/0x42/*::]*/: 0x22, /*::[*/0x62/*::]*/: 0x22,\n\t/*::[*/0x43/*::]*/: 0x23, /*::[*/0x63/*::]*/: 0x23,\n\t/*::[*/0x44/*::]*/: 0x24, /*::[*/0x64/*::]*/: 0x24,\n\t/*::[*/0x45/*::]*/: 0x25, /*::[*/0x65/*::]*/: 0x25,\n\t/*::[*/0x46/*::]*/: 0x26, /*::[*/0x66/*::]*/: 0x26,\n\t/*::[*/0x47/*::]*/: 0x27, /*::[*/0x67/*::]*/: 0x27,\n\t/*::[*/0x48/*::]*/: 0x28, /*::[*/0x68/*::]*/: 0x28,\n\t/*::[*/0x49/*::]*/: 0x29, /*::[*/0x69/*::]*/: 0x29,\n\t/*::[*/0x4A/*::]*/: 0x2A, /*::[*/0x6A/*::]*/: 0x2A,\n\t/*::[*/0x4B/*::]*/: 0x2B, /*::[*/0x6B/*::]*/: 0x2B,\n\t/*::[*/0x4C/*::]*/: 0x2C, /*::[*/0x6C/*::]*/: 0x2C,\n\t/*::[*/0x4D/*::]*/: 0x2D, /*::[*/0x6D/*::]*/: 0x2D,\n\t/*::[*/0x4E/*::]*/: 0x2E, /*::[*/0x6E/*::]*/: 0x2E,\n\t/*::[*/0x4F/*::]*/: 0x2F, /*::[*/0x6F/*::]*/: 0x2F,\n\t/*::[*/0x58/*::]*/: 0x22, /*::[*/0x78/*::]*/: 0x22,\n\t/*::[*/0x59/*::]*/: 0x39, /*::[*/0x79/*::]*/: 0x39,\n\t/*::[*/0x5A/*::]*/: 0x3A, /*::[*/0x7A/*::]*/: 0x3A,\n\t/*::[*/0x5B/*::]*/: 0x3B, /*::[*/0x7B/*::]*/: 0x3B,\n\t/*::[*/0x5C/*::]*/: 0x3C, /*::[*/0x7C/*::]*/: 0x3C,\n\t/*::[*/0x5D/*::]*/: 0x3D, /*::[*/0x7D/*::]*/: 0x3D\n};\n\nvar Ptg18 = {\n\t/*::[*/0x01/*::]*/: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t/*::[*/0x02/*::]*/: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t/*::[*/0x03/*::]*/: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t/*::[*/0x06/*::]*/: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t/*::[*/0x07/*::]*/: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t/*::[*/0x0A/*::]*/: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t/*::[*/0x0B/*::]*/: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t/*::[*/0x0D/*::]*/: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t/*::[*/0x0F/*::]*/: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t/*::[*/0x10/*::]*/: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t/*::[*/0x19/*::]*/: { n:'PtgList', f:parse_PtgList },\n\t/*::[*/0x1D/*::]*/: { n:'PtgSxName', f:parse_PtgSxName },\n\t/*::[*/0xFF/*::]*/: {}\n};\nvar Ptg19 = {\n\t/*::[*/0x00/*::]*/: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t/*::[*/0x01/*::]*/: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t/*::[*/0x02/*::]*/: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t/*::[*/0x04/*::]*/: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t/*::[*/0x08/*::]*/: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t/*::[*/0x10/*::]*/: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t/*::[*/0x20/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x21/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x40/*::]*/: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t/*::[*/0x41/*::]*/: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t/*::[*/0x80/*::]*/: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t/*::[*/0xFF/*::]*/: {}\n};\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id] || PtgTypes[PtgDupes[id]];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f/*:Array<Array<string>>*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array<string>*/ = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array<any>*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack/*:Array<string>*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]/*:any*/);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(/*::String(*/f[1]/*::)*/);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(/*::(*/f[1]/*:: :any)*/) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts/*::, ref*/) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f/*:string*/)/*:string*/ {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r/*:string*/)/*:[string, string]*/ {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r/*:string*/)/*:string*/ {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles/*:Array<any>*/, cell/*:Cell*/, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF_load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[fmtid] == null) SSF_load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = dd.toString(10);\n\t\t\t\telse p.w = SSF_general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF_general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF_format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF_format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws/*:Worksheet*/, s/*:string*/) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array<ColInfo>*/ = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges/*:Array<Range>*/ = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges/*:Array<Range>*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '<mergeCells count=\"' + merges.length + '\">';\n\tfor(var i = 0; i != merges.length; ++i) o += '<mergeCell ref=\"' + encode_range(merges[i]) + '\"/>';\n\treturn o + '</mergeCells>';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array<string>*/, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin)/*:string*/ {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"<cols>\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"</cols>\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array<any> */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell/*:Cell*/, ref, ws, opts/*::, idx, wb*/)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z' && !cell.f) return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, themes, styles) {\n\tvar ri = 0, x = \"\", cells/*:Array<string>*/ = [], cref/*:?Array<string>*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows/*:Array<RowInfo>*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"<c \" + (x.slice(0,1)==\"<\"?\">\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"}/*:any*/);\n\n\t\t\tif((cref=d.match(match_v))!= null && /*::cref != null && */cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && /*::cref != null && */cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/<f[^>]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [], r/*:Array<string>*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array<string>*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr}/*:any*/);\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1}/*:any*/);\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '<sheetData/>';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = ('</sheetData>'); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(/*::(*/ws['!links']/*::||[])*/.length > 0) {\n\t\to[o.length] = \"<hyperlinks>\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"</hyperlinks>\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = ('</worksheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({}/*:any*/);\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R/*:number*/, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 0x0000 /* BrtRowHdr */, o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\n}\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(8 + 4 * cell.v.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length/*::, opts*/) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s/*:Worksheet*/ = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array<Range>*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo/*:Array<ColInfo>*/ = [], rowinfo/*:Array<RowInfo>*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\n\trecordhopper(data, function ws_parse(val, RR, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t\tcase 'is': p.t = 's'; p.v = val[1].t; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && fmt_is_date(table_fmt[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/)/*:boolean*/ {\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || table_fmt[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o/*:any*/ = ({r:R, c:C}/*:any*/);\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array<string>*/ = [];\n\twrite_record(ba, 0x0091 /* BrtBeginSheetData */);\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array<any> */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* BrtBeginWsView */, write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* BrtMargins */, write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array<number|string>, string, ?string]*/ {\n\tvar col/*:Array<number|string>*/ = [];\n\tvar num = data.match(/^<c:numCache>/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/<c:pt idx=\"(\\d*)\">(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/<c:pt idx=\"(\\d*?)\"><c:v>(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/<c:formatCode>([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/<c:f>(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/<c:numCache>[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = ('</chartsheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb/*:Workbook*/)/*:string*/ {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = /*#__PURE__*/\"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts)/*:WorkbookFile*/ {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = /*::(*/{ AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" }/*::)*/;\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 18.2.27 workbook CT_Workbook 1 */\n\t\t\tcase '<workbook':\n\t\t\t\tif(x.match(wbnsregex)) xmlns = \"xmlns\" + x.match(/<(\\w+):/)[1];\n\t\t\t\twb.xmlns = y[xmlns];\n\t\t\t\tbreak;\n\t\t\tcase '</workbook>': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '<fileVersion': delete y[0]; wb.AppVersion = y; break;\n\t\t\tcase '<fileVersion/>': case '</fileVersion>': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '<fileSharing':\n\t\t\t\tbreak;\n\t\t\tcase '<fileSharing/>': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '<workbookPr':\n\t\t\tcase '<workbookPr/>':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '</workbookPr>': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '<workbookProtection':\n\t\t\t\tbreak;\n\t\t\tcase '<workbookProtection/>': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '<bookViews': case '<bookViews>': case '</bookViews>': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '<workbookView': case '<workbookView/>': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '</workbookView>': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '<sheets': case '<sheets>': case '</sheets>': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '<sheet':\n\t\t\t\tswitch(y.state) {\n\t\t\t\t\tcase \"hidden\": y.Hidden = 1; break;\n\t\t\t\t\tcase \"veryHidden\": y.Hidden = 2; break;\n\t\t\t\t\tdefault: y.Hidden = 0;\n\t\t\t\t}\n\t\t\t\tdelete y.state;\n\t\t\t\ty.name = unescapexml(utf8read(y.name));\n\t\t\t\tdelete y[0]; wb.Sheets.push(y); break;\n\t\t\tcase '</sheet>': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '<functionGroups': case '<functionGroups/>': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '<functionGroup': break;\n\n\t\t\t/* 18.2.9 externalReferences CT_ExternalReferences ? */\n\t\t\tcase '<externalReferences': case '</externalReferences>': case '<externalReferences>': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '<externalReference': break;\n\n\t\t\t/* 18.2.6 definedNames CT_DefinedNames ? */\n\t\t\tcase '<definedNames/>': break;\n\t\t\tcase '<definedNames>': case '<definedNames': pass=true; break;\n\t\t\tcase '</definedNames>': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '<definedName': {\n\t\t\t\tdname = {};\n\t\t\t\tdname.Name = utf8read(y.name);\n\t\t\t\tif(y.comment) dname.Comment = y.comment;\n\t\t\t\tif(y.localSheetId) dname.Sheet = +y.localSheetId;\n\t\t\t\tif(parsexmlbool(y.hidden||\"0\")) dname.Hidden = true;\n\t\t\t\tdnstart = idx + x.length;\n\t\t\t}\tbreak;\n\t\t\tcase '</definedName>': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '<definedName/>': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '<calcPr': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '<calcPr/>': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '</calcPr>': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '<oleSize': break;\n\n\t\t\t/* 18.2.4 customWorkbookViews CT_CustomWorkbookViews ? */\n\t\t\tcase '<customWorkbookViews>': case '</customWorkbookViews>': case '<customWorkbookViews': break;\n\t\t\t/* 18.2.3 customWorkbookView CT_CustomWorkbookView + */\n\t\t\tcase '<customWorkbookView': case '</customWorkbookView>': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '<pivotCaches>': case '</pivotCaches>': case '<pivotCaches': break;\n\t\t\t/* 18.2.17 pivotCache CT_PivotCache ? */\n\t\t\tcase '<pivotCache': break;\n\n\t\t\t/* 18.2.21 smartTagPr CT_SmartTagPr ? */\n\t\t\tcase '<smartTagPr': case '<smartTagPr/>': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '<smartTagTypes': case '<smartTagTypes>': case '</smartTagTypes>': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '<smartTagType': break;\n\n\t\t\t/* 18.2.24 webPublishing CT_WebPublishing ? */\n\t\t\tcase '<webPublishing': case '<webPublishing/>': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '<fileRecoveryPr': case '<fileRecoveryPr/>': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '<webPublishObjects>': case '<webPublishObjects': case '</webPublishObjects>': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '<webPublishObject': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break; //TODO: check with versions of excel\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '<ArchID': break;\n\t\t\tcase '<AlternateContent':\n\t\t\tcase '<AlternateContent>': pass=true; break;\n\t\t\tcase '</AlternateContent>': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase '<revisionPtr': break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in workbook');\n\t\t}\n\t\treturn x;\n\t});\n\tif(XMLNS_main.indexOf(wb.xmlns) === -1) throw new Error(\"Unknown Namespace: \" + wb.xmlns);\n\n\tparse_wb_defaults(wb);\n\n\treturn wb;\n}\n\nfunction write_wb_xml(wb/*:Workbook*//*::, opts:?WriteOpts*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to[o.length] = writextag('workbook', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t//'xmlns:mx': XMLNS.mx,\n\t\t//'xmlns:s': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t});\n\n\tvar write_names = (wb.Workbook && (wb.Workbook.Names||[]).length > 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"<bookViews>\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '<workbookView firstSheet=\"' + i + '\" activeTab=\"' + i + '\"/>';\n\t\to[o.length] = \"</bookViews>\";\n\t}\n\n\to[o.length] = \"<sheets>\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"</sheets>\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"<definedNames>\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"</definedNames>\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = '</workbook>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data/*:?WBProps*/, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula}/*:any*/);\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* BrtBeginBundleShs */);\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* BrtEndBundleShs */);\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb/*::, opts*/) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* BrtEndBookViews */);\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* BrtWbProp */, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, 0x009D BrtCalcProp, write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_theme(data/*:string*/, name/*:string*/, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array<RawComment>*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\n\nfunction write_wb(wb, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data/*:SST*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data/*:Array<any>*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\n\nfunction write_xlmeta(name/*:string*/) {\n\treturn (name.slice(-4)===\".bin\" ? write_xlmeta_bin : write_xlmeta_xml)();\n}\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag/*:string*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value)/*:string*/ {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF_general(value);\n\treturn SSF_format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val/*:string*/) {\n\tvar oval/*:any*/ = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell/*:Cell*/, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = cell.v.toString(10);\n\t\t\t\telse cell.w = SSF_general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF_general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && fmt_is_date(z)) {\n\t\t\tvar _d = SSF_parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell/*:any*/, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_ssf();\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof $cptable !== 'undefined') str = $cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"<?xml\") == -1) [\"html\", \"table\", \"head\", \"meta\", \"script\", \"style\", \"div\"].forEach(function(tag) { if(opening.indexOf(\"<\" + tag) >= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array<string>*/ = [], cursheet/*:Worksheet*/ = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag('<Data ss:Type=\"String\">'), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array<Range>*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array<Comment>*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array<RowInfo>*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(/<!--([\\s\\S]*?)-->/mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF_load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*:DefinedName*/ = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is <office:document> */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is <uof:UOF> */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64_decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml(/*::wb, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array<string>*/ = ['<Style ss:ID=\"Default\" ss:Name=\"Normal\"><NumberFormat/></Style>'];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array<string>*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array<any>*/ = wb.Workbook.Names;\n\tvar out/*:Array<string>*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array<any>*/ = wb.Workbook.Names;\n\tvar out/*:Array<string>*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array<string>*/ = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"<PageSetup>\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"</PageSetup>\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"<Selected/>\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"<DisplayRightToLeft/>\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments/*:Array<any>*/)/*:string*/ {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('<Data ss:Type=\"' + t + '\">' + _v + '</Data>');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R/*:number*/, row)/*:string*/ {\n\tvar o = '<Row ss:Index=\"' + (R+1) + '\"';\n\tif(row) {\n\t\tif(row.hpt && !row.hpx) row.hpx = pt2px(row.hpt);\n\t\tif(row.hpx) o += ' ss:AutoFitHeight=\"0\" ss:Height=\"' + row.hpx + '\"';\n\t\tif(row.hidden) o += ' ss:Hidden=\"1\"';\n\t}\n\treturn o + '>';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array<Range>*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array<string>*/ = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k/*:any*/ = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"</Row>\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Names>\" + t + \"</Names>\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Table>\" + t + \"</Table>\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d/*:Array<string>*/ = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m/*:number*/ = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002f /* FilePass */: case 0x0195 /* FileLock */: case 0x00e1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF_general(p.v);\n\t\t}\n\t\telse p.w = SSF_format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ((options.dense ? [] : {})/*:any*/);\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array<Range>*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array<ColInfo>*/ = [], rowinfo/*:Array<RowInfo>*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array<string>*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_RT === 0x000a /* EOF */) break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* 'BOF' */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* FilePass */:\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* SupBook */:\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* Lbl */:\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t}/*:DefinedName*/);\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* ExternSheet */:\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 0x0894 /* NameCmt */:\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* BoundSheet8 */: {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 0x000a /* EOF */: {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t/*::[*/0x0009/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0209/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0409/*::]*/:4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t/*::[*/0x0200/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0300/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0400/*::]*/:4,\n\t\t\t\t\t\t/*::[*/0x0500/*::]*/:5,\n\t\t\t\t\t\t/*::[*/0x0600/*::]*/:8,\n\t\t\t\t\t\t/*::[*/0x0002/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0007/*::]*/:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\n\t\t\t\t\tif(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* BIFF2INT */: {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00bd /* MulRk */: {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0006: case 0x0206: case 0x0406 /* Formula */: {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x0007: case 0x0207 /* String */: {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 0x0021: case 0x0221 /* Array */: {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x04bc /* ShrFmla */: {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00be /* MulBlank */: if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* BIFF2STR */:\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 0x0000: case 0x0200 /* Dimensions */: {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* Format */: { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF_load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF_load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF_load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* HLink */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0800 /* HLinkTooltip */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x001c /* Note */: {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* ColInfo */: {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0208 /* Row */: {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* Setup */: // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x023e /* Window2 */: // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb/*:CFBContainer*/, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64_decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(/*::((*/cfb/*:: :any):CFBContainer)*/, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t/*::[*/0x0000/*::]*/: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t/*::[*/0x0006/*::]*/: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t/*::[*/0x0007/*::]*/: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t/*::[*/0x000A/*::]*/: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t/*::[*/0x000B/*::]*/: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t/*::[*/0x000C/*::]*/: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t/*::[*/0x000D/*::]*/: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t/*::[*/0x000E/*::]*/: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t/*::[*/0x000F/*::]*/: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t/*::[*/0x0010/*::]*/: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t/*::[*/0x0011/*::]*/: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t/*::[*/0x0012/*::]*/: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t/*::[*/0x0013/*::]*/: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t/*::[*/0x0014/*::]*/: { /* n:\"BrtPCDIMissing\" */ },\n\t/*::[*/0x0015/*::]*/: { /* n:\"BrtPCDINumber\" */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"BrtPCDIBoolean\" */ },\n\t/*::[*/0x0017/*::]*/: { /* n:\"BrtPCDIError\" */ },\n\t/*::[*/0x0018/*::]*/: { /* n:\"BrtPCDIString\" */ },\n\t/*::[*/0x0019/*::]*/: { /* n:\"BrtPCDIDatetime\" */ },\n\t/*::[*/0x001A/*::]*/: { /* n:\"BrtPCDIIndex\" */ },\n\t/*::[*/0x001B/*::]*/: { /* n:\"BrtPCDIAMissing\" */ },\n\t/*::[*/0x001C/*::]*/: { /* n:\"BrtPCDIANumber\" */ },\n\t/*::[*/0x001D/*::]*/: { /* n:\"BrtPCDIABoolean\" */ },\n\t/*::[*/0x001E/*::]*/: { /* n:\"BrtPCDIAError\" */ },\n\t/*::[*/0x001F/*::]*/: { /* n:\"BrtPCDIAString\" */ },\n\t/*::[*/0x0020/*::]*/: { /* n:\"BrtPCDIADatetime\" */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"BrtPCRRecord\" */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"BrtPCRRecordDt\" */ },\n\t/*::[*/0x0023/*::]*/: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t/*::[*/0x0024/*::]*/: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t/*::[*/0x0025/*::]*/: { /* n:\"BrtACBegin\", */ T:1 },\n\t/*::[*/0x0026/*::]*/: { /* n:\"BrtACEnd\", */ T:-1 },\n\t/*::[*/0x0027/*::]*/: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t/*::[*/0x0028/*::]*/: { /* n:\"BrtIndexRowBlock\" */ },\n\t/*::[*/0x002A/*::]*/: { /* n:\"BrtIndexBlock\" */ },\n\t/*::[*/0x002B/*::]*/: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t/*::[*/0x002C/*::]*/: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t/*::[*/0x002D/*::]*/: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t/*::[*/0x002E/*::]*/: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t/*::[*/0x002F/*::]*/: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t/*::[*/0x0030/*::]*/: { /* n:\"BrtStyle\" */ },\n\t/*::[*/0x0031/*::]*/: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t/*::[*/0x0032/*::]*/: { /* n:\"BrtValueMeta\" */ },\n\t/*::[*/0x0033/*::]*/: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t/*::[*/0x0034/*::]*/: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t/*::[*/0x0035/*::]*/: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t/*::[*/0x0036/*::]*/: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t/*::[*/0x0037/*::]*/: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t/*::[*/0x0038/*::]*/: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t/*::[*/0x0039/*::]*/: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t/*::[*/0x003A/*::]*/: { /* n:\"BrtMdxMbrIstr\" */ },\n\t/*::[*/0x003B/*::]*/: { /* n:\"BrtStr\" */ },\n\t/*::[*/0x003C/*::]*/: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x003E/*::]*/: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t/*::[*/0x003F/*::]*/: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t/*::[*/0x0040/*::]*/: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t/*::[*/0x0041/*::]*/: { /* n:\"BrtSxvcellNum\" */ },\n\t/*::[*/0x0042/*::]*/: { /* n:\"BrtSxvcellStr\" */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BrtSxvcellBool\" */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BrtSxvcellErr\" */ },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BrtSxvcellDate\" */ },\n\t/*::[*/0x0046/*::]*/: { /* n:\"BrtSxvcellNil\" */ },\n\t/*::[*/0x0080/*::]*/: { /* n:\"BrtFileVersion\" */ },\n\t/*::[*/0x0081/*::]*/: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t/*::[*/0x0082/*::]*/: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t/*::[*/0x0084/*::]*/: { /* n:\"BrtEndBook\", */ T:-1 },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t/*::[*/0x0087/*::]*/: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t/*::[*/0x0088/*::]*/: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t/*::[*/0x0089/*::]*/: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t/*::[*/0x008A/*::]*/: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t/*::[*/0x008B/*::]*/: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t/*::[*/0x008C/*::]*/: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t/*::[*/0x008D/*::]*/: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t/*::[*/0x008E/*::]*/: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t/*::[*/0x008F/*::]*/: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t/*::[*/0x0091/*::]*/: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t/*::[*/0x0092/*::]*/: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t/*::[*/0x0093/*::]*/: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t/*::[*/0x0094/*::]*/: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t/*::[*/0x0097/*::]*/: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t/*::[*/0x0098/*::]*/: { /* n:\"BrtSel\" */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t/*::[*/0x009A/*::]*/: { /* n:\"BrtWbFactoid\" */ },\n\t/*::[*/0x009B/*::]*/: { /* n:\"BrtFileRecover\" */ },\n\t/*::[*/0x009C/*::]*/: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t/*::[*/0x009D/*::]*/: { /* n:\"BrtCalcProp\" */ },\n\t/*::[*/0x009E/*::]*/: { /* n:\"BrtBookView\" */ },\n\t/*::[*/0x009F/*::]*/: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t/*::[*/0x00A0/*::]*/: { /* n:\"BrtEndSst\", */ T:-1 },\n\t/*::[*/0x00A1/*::]*/: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t/*::[*/0x00A2/*::]*/: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t/*::[*/0x00A3/*::]*/: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t/*::[*/0x00A4/*::]*/: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t/*::[*/0x00A5/*::]*/: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t/*::[*/0x00A6/*::]*/: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t/*::[*/0x00A7/*::]*/: { /* n:\"BrtFilter\" */ },\n\t/*::[*/0x00A8/*::]*/: { /* n:\"BrtColorFilter\" */ },\n\t/*::[*/0x00A9/*::]*/: { /* n:\"BrtIconFilter\" */ },\n\t/*::[*/0x00AA/*::]*/: { /* n:\"BrtTop10Filter\" */ },\n\t/*::[*/0x00AB/*::]*/: { /* n:\"BrtDynamicFilter\" */ },\n\t/*::[*/0x00AC/*::]*/: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t/*::[*/0x00AD/*::]*/: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t/*::[*/0x00AE/*::]*/: { /* n:\"BrtCustomFilter\" */ },\n\t/*::[*/0x00AF/*::]*/: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t/*::[*/0x00B0/*::]*/: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t/*::[*/0x00B1/*::]*/: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t/*::[*/0x00B2/*::]*/: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t/*::[*/0x00B3/*::]*/: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t/*::[*/0x00B4/*::]*/: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t/*::[*/0x00B5/*::]*/: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t/*::[*/0x00B6/*::]*/: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t/*::[*/0x00B7/*::]*/: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t/*::[*/0x00B8/*::]*/: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t/*::[*/0x00B9/*::]*/: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t/*::[*/0x00BA/*::]*/: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t/*::[*/0x00BB/*::]*/: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t/*::[*/0x00BC/*::]*/: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t/*::[*/0x00BD/*::]*/: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t/*::[*/0x00BE/*::]*/: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t/*::[*/0x00BF/*::]*/: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t/*::[*/0x00C0/*::]*/: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t/*::[*/0x00C1/*::]*/: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t/*::[*/0x00C2/*::]*/: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t/*::[*/0x00C3/*::]*/: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t/*::[*/0x00C4/*::]*/: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t/*::[*/0x00C5/*::]*/: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t/*::[*/0x00C6/*::]*/: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t/*::[*/0x00C7/*::]*/: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t/*::[*/0x00C8/*::]*/: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t/*::[*/0x00C9/*::]*/: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t/*::[*/0x00CA/*::]*/: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t/*::[*/0x00CB/*::]*/: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t/*::[*/0x00CC/*::]*/: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t/*::[*/0x00CD/*::]*/: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t/*::[*/0x00CE/*::]*/: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t/*::[*/0x00CF/*::]*/: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t/*::[*/0x00D0/*::]*/: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t/*::[*/0x00D1/*::]*/: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t/*::[*/0x00D2/*::]*/: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t/*::[*/0x00D3/*::]*/: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t/*::[*/0x00D4/*::]*/: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t/*::[*/0x00D5/*::]*/: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t/*::[*/0x00D6/*::]*/: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t/*::[*/0x00D7/*::]*/: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t/*::[*/0x00D8/*::]*/: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t/*::[*/0x00D9/*::]*/: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t/*::[*/0x00DA/*::]*/: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t/*::[*/0x00DB/*::]*/: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t/*::[*/0x00DC/*::]*/: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t/*::[*/0x00DD/*::]*/: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t/*::[*/0x00DE/*::]*/: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t/*::[*/0x00DF/*::]*/: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t/*::[*/0x00E0/*::]*/: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t/*::[*/0x00E1/*::]*/: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t/*::[*/0x00E2/*::]*/: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t/*::[*/0x00E3/*::]*/: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t/*::[*/0x00E4/*::]*/: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t/*::[*/0x00E5/*::]*/: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t/*::[*/0x00E6/*::]*/: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t/*::[*/0x00E7/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t/*::[*/0x00E8/*::]*/: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t/*::[*/0x00E9/*::]*/: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t/*::[*/0x00EA/*::]*/: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t/*::[*/0x00EB/*::]*/: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t/*::[*/0x00EC/*::]*/: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t/*::[*/0x00ED/*::]*/: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t/*::[*/0x00EE/*::]*/: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t/*::[*/0x00EF/*::]*/: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t/*::[*/0x00F0/*::]*/: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t/*::[*/0x00F1/*::]*/: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t/*::[*/0x00F2/*::]*/: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t/*::[*/0x00F3/*::]*/: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t/*::[*/0x00F4/*::]*/: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t/*::[*/0x00F5/*::]*/: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t/*::[*/0x00F6/*::]*/: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t/*::[*/0x00F7/*::]*/: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t/*::[*/0x00F8/*::]*/: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t/*::[*/0x00F9/*::]*/: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t/*::[*/0x00FA/*::]*/: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t/*::[*/0x00FB/*::]*/: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t/*::[*/0x00FC/*::]*/: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t/*::[*/0x00FD/*::]*/: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t/*::[*/0x00FE/*::]*/: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t/*::[*/0x00FF/*::]*/: { /* n:\"BrtBeginPName\", */ T:1 },\n\t/*::[*/0x0100/*::]*/: { /* n:\"BrtEndPName\", */ T:-1 },\n\t/*::[*/0x0101/*::]*/: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t/*::[*/0x0102/*::]*/: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t/*::[*/0x0103/*::]*/: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t/*::[*/0x0104/*::]*/: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t/*::[*/0x0105/*::]*/: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t/*::[*/0x0106/*::]*/: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t/*::[*/0x0107/*::]*/: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t/*::[*/0x0108/*::]*/: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t/*::[*/0x0109/*::]*/: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t/*::[*/0x010A/*::]*/: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t/*::[*/0x010B/*::]*/: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t/*::[*/0x010C/*::]*/: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t/*::[*/0x010D/*::]*/: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t/*::[*/0x010E/*::]*/: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t/*::[*/0x010F/*::]*/: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t/*::[*/0x0110/*::]*/: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t/*::[*/0x0111/*::]*/: { /* n:\"BrtBeginDims\", */ T:1 },\n\t/*::[*/0x0112/*::]*/: { /* n:\"BrtEndDims\", */ T:-1 },\n\t/*::[*/0x0113/*::]*/: { /* n:\"BrtBeginDim\", */ T:1 },\n\t/*::[*/0x0114/*::]*/: { /* n:\"BrtEndDim\", */ T:-1 },\n\t/*::[*/0x0115/*::]*/: { /* n:\"BrtIndexPartEnd\" */ },\n\t/*::[*/0x0116/*::]*/: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t/*::[*/0x0117/*::]*/: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t/*::[*/0x0118/*::]*/: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t/*::[*/0x0119/*::]*/: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t/*::[*/0x011A/*::]*/: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t/*::[*/0x011B/*::]*/: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t/*::[*/0x011C/*::]*/: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t/*::[*/0x011D/*::]*/: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t/*::[*/0x011E/*::]*/: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t/*::[*/0x011F/*::]*/: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t/*::[*/0x0120/*::]*/: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t/*::[*/0x0121/*::]*/: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t/*::[*/0x0122/*::]*/: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t/*::[*/0x0123/*::]*/: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t/*::[*/0x0124/*::]*/: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t/*::[*/0x0125/*::]*/: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t/*::[*/0x0126/*::]*/: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t/*::[*/0x0127/*::]*/: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t/*::[*/0x0128/*::]*/: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t/*::[*/0x0129/*::]*/: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t/*::[*/0x012A/*::]*/: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t/*::[*/0x012B/*::]*/: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t/*::[*/0x012C/*::]*/: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t/*::[*/0x012D/*::]*/: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t/*::[*/0x012E/*::]*/: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t/*::[*/0x012F/*::]*/: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t/*::[*/0x0130/*::]*/: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t/*::[*/0x0131/*::]*/: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t/*::[*/0x0132/*::]*/: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t/*::[*/0x0133/*::]*/: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t/*::[*/0x0134/*::]*/: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t/*::[*/0x0135/*::]*/: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t/*::[*/0x0136/*::]*/: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t/*::[*/0x0137/*::]*/: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t/*::[*/0x0138/*::]*/: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t/*::[*/0x0139/*::]*/: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t/*::[*/0x013A/*::]*/: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t/*::[*/0x013B/*::]*/: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t/*::[*/0x013C/*::]*/: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t/*::[*/0x013D/*::]*/: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t/*::[*/0x013E/*::]*/: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t/*::[*/0x013F/*::]*/: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t/*::[*/0x0140/*::]*/: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t/*::[*/0x0141/*::]*/: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t/*::[*/0x0142/*::]*/: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t/*::[*/0x0143/*::]*/: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t/*::[*/0x0144/*::]*/: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t/*::[*/0x0145/*::]*/: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t/*::[*/0x0146/*::]*/: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t/*::[*/0x0147/*::]*/: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t/*::[*/0x0148/*::]*/: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t/*::[*/0x0149/*::]*/: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t/*::[*/0x014A/*::]*/: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t/*::[*/0x014B/*::]*/: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t/*::[*/0x014C/*::]*/: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t/*::[*/0x014D/*::]*/: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t/*::[*/0x014E/*::]*/: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t/*::[*/0x014F/*::]*/: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t/*::[*/0x0150/*::]*/: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t/*::[*/0x0151/*::]*/: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t/*::[*/0x0152/*::]*/: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t/*::[*/0x0153/*::]*/: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t/*::[*/0x0154/*::]*/: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t/*::[*/0x0155/*::]*/: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t/*::[*/0x0156/*::]*/: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t/*::[*/0x0157/*::]*/: { /* n:\"BrtBeginList\", */ T:1 },\n\t/*::[*/0x0158/*::]*/: { /* n:\"BrtEndList\", */ T:-1 },\n\t/*::[*/0x0159/*::]*/: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t/*::[*/0x015A/*::]*/: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t/*::[*/0x015B/*::]*/: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t/*::[*/0x015C/*::]*/: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t/*::[*/0x015D/*::]*/: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t/*::[*/0x015E/*::]*/: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t/*::[*/0x015F/*::]*/: { /* n:\"BrtListCCFmla\" */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"BrtListTrFmla\" */ },\n\t/*::[*/0x0161/*::]*/: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t/*::[*/0x0162/*::]*/: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t/*::[*/0x0163/*::]*/: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t/*::[*/0x0165/*::]*/: { /* n:\"BrtSupSelf\" */ },\n\t/*::[*/0x0166/*::]*/: { /* n:\"BrtSupSame\" */ },\n\t/*::[*/0x0167/*::]*/: { /* n:\"BrtSupTabs\" */ },\n\t/*::[*/0x0168/*::]*/: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t/*::[*/0x0169/*::]*/: { /* n:\"BrtPlaceholderName\" */ },\n\t/*::[*/0x016A/*::]*/: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x016B/*::]*/: { /* n:\"BrtExternTableStart\" */ },\n\t/*::[*/0x016C/*::]*/: { /* n:\"BrtExternTableEnd\" */ },\n\t/*::[*/0x016E/*::]*/: { /* n:\"BrtExternRowHdr\" */ },\n\t/*::[*/0x016F/*::]*/: { /* n:\"BrtExternCellBlank\" */ },\n\t/*::[*/0x0170/*::]*/: { /* n:\"BrtExternCellReal\" */ },\n\t/*::[*/0x0171/*::]*/: { /* n:\"BrtExternCellBool\" */ },\n\t/*::[*/0x0172/*::]*/: { /* n:\"BrtExternCellError\" */ },\n\t/*::[*/0x0173/*::]*/: { /* n:\"BrtExternCellString\" */ },\n\t/*::[*/0x0174/*::]*/: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t/*::[*/0x0175/*::]*/: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t/*::[*/0x0176/*::]*/: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t/*::[*/0x0177/*::]*/: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t/*::[*/0x0178/*::]*/: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t/*::[*/0x0179/*::]*/: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t/*::[*/0x017A/*::]*/: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t/*::[*/0x017B/*::]*/: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t/*::[*/0x017C/*::]*/: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t/*::[*/0x017D/*::]*/: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t/*::[*/0x017E/*::]*/: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t/*::[*/0x017F/*::]*/: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t/*::[*/0x0180/*::]*/: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0181/*::]*/: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0182/*::]*/: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t/*::[*/0x0183/*::]*/: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t/*::[*/0x0184/*::]*/: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t/*::[*/0x0185/*::]*/: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t/*::[*/0x0186/*::]*/: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t/*::[*/0x0187/*::]*/: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t/*::[*/0x0188/*::]*/: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t/*::[*/0x0189/*::]*/: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t/*::[*/0x018A/*::]*/: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t/*::[*/0x018B/*::]*/: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t/*::[*/0x018C/*::]*/: { /* n:\"BrtBrk\" */ },\n\t/*::[*/0x018D/*::]*/: { /* n:\"BrtUserBookView\" */ },\n\t/*::[*/0x018E/*::]*/: { /* n:\"BrtInfo\" */ },\n\t/*::[*/0x018F/*::]*/: { /* n:\"BrtCUsr\" */ },\n\t/*::[*/0x0190/*::]*/: { /* n:\"BrtUsr\" */ },\n\t/*::[*/0x0191/*::]*/: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t/*::[*/0x0193/*::]*/: { /* n:\"BrtEOF\" */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"BrtUCR\" */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"BrtRRInsDel\" */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"BrtRREndInsDel\" */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BrtRRMove\" */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"BrtRREndMove\" */ },\n\t/*::[*/0x0199/*::]*/: { /* n:\"BrtRRChgCell\" */ },\n\t/*::[*/0x019A/*::]*/: { /* n:\"BrtRREndChgCell\" */ },\n\t/*::[*/0x019B/*::]*/: { /* n:\"BrtRRHeader\" */ },\n\t/*::[*/0x019C/*::]*/: { /* n:\"BrtRRUserView\" */ },\n\t/*::[*/0x019D/*::]*/: { /* n:\"BrtRRRenSheet\" */ },\n\t/*::[*/0x019E/*::]*/: { /* n:\"BrtRRInsertSh\" */ },\n\t/*::[*/0x019F/*::]*/: { /* n:\"BrtRRDefName\" */ },\n\t/*::[*/0x01A0/*::]*/: { /* n:\"BrtRRNote\" */ },\n\t/*::[*/0x01A1/*::]*/: { /* n:\"BrtRRConflict\" */ },\n\t/*::[*/0x01A2/*::]*/: { /* n:\"BrtRRTQSIF\" */ },\n\t/*::[*/0x01A3/*::]*/: { /* n:\"BrtRRFormat\" */ },\n\t/*::[*/0x01A4/*::]*/: { /* n:\"BrtRREndFormat\" */ },\n\t/*::[*/0x01A5/*::]*/: { /* n:\"BrtRRAutoFmt\" */ },\n\t/*::[*/0x01A6/*::]*/: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t/*::[*/0x01A7/*::]*/: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t/*::[*/0x01A8/*::]*/: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t/*::[*/0x01A9/*::]*/: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t/*::[*/0x01AA/*::]*/: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t/*::[*/0x01AB/*::]*/: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t/*::[*/0x01AC/*::]*/: { /* n:\"BrtTable\" */ },\n\t/*::[*/0x01AD/*::]*/: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t/*::[*/0x01AE/*::]*/: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t/*::[*/0x01AF/*::]*/: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t/*::[*/0x01B0/*::]*/: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t/*::[*/0x01B1/*::]*/: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t/*::[*/0x01B2/*::]*/: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t/*::[*/0x01B3/*::]*/: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t/*::[*/0x01B4/*::]*/: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t/*::[*/0x01B5/*::]*/: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t/*::[*/0x01B6/*::]*/: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t/*::[*/0x01B7/*::]*/: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t/*::[*/0x01B8/*::]*/: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t/*::[*/0x01B9/*::]*/: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t/*::[*/0x01BA/*::]*/: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t/*::[*/0x01BB/*::]*/: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t/*::[*/0x01BC/*::]*/: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t/*::[*/0x01BD/*::]*/: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t/*::[*/0x01BE/*::]*/: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t/*::[*/0x01BF/*::]*/: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t/*::[*/0x01C0/*::]*/: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t/*::[*/0x01C1/*::]*/: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t/*::[*/0x01C2/*::]*/: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t/*::[*/0x01C3/*::]*/: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t/*::[*/0x01C4/*::]*/: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t/*::[*/0x01C5/*::]*/: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t/*::[*/0x01C6/*::]*/: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t/*::[*/0x01C7/*::]*/: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t/*::[*/0x01C8/*::]*/: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t/*::[*/0x01C9/*::]*/: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t/*::[*/0x01CA/*::]*/: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t/*::[*/0x01CB/*::]*/: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t/*::[*/0x01CC/*::]*/: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t/*::[*/0x01CD/*::]*/: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t/*::[*/0x01CE/*::]*/: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t/*::[*/0x01CF/*::]*/: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t/*::[*/0x01D0/*::]*/: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t/*::[*/0x01D1/*::]*/: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t/*::[*/0x01D2/*::]*/: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t/*::[*/0x01D3/*::]*/: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t/*::[*/0x01D4/*::]*/: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t/*::[*/0x01D5/*::]*/: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t/*::[*/0x01D6/*::]*/: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t/*::[*/0x01D7/*::]*/: { /* n:\"BrtCFVO\" */ },\n\t/*::[*/0x01D8/*::]*/: { /* n:\"BrtExternValueMeta\" */ },\n\t/*::[*/0x01D9/*::]*/: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t/*::[*/0x01DA/*::]*/: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t/*::[*/0x01DB/*::]*/: { /* n:\"BrtIndexedColor\" */ },\n\t/*::[*/0x01DC/*::]*/: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t/*::[*/0x01DD/*::]*/: { /* n:\"BrtPrintOptions\" */ },\n\t/*::[*/0x01DE/*::]*/: { /* n:\"BrtPageSetup\" */ },\n\t/*::[*/0x01DF/*::]*/: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t/*::[*/0x01E0/*::]*/: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t/*::[*/0x01E1/*::]*/: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t/*::[*/0x01E2/*::]*/: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t/*::[*/0x01E3/*::]*/: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t/*::[*/0x01E4/*::]*/: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t/*::[*/0x01E5/*::]*/: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t/*::[*/0x01E6/*::]*/: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t/*::[*/0x01E7/*::]*/: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t/*::[*/0x01E8/*::]*/: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t/*::[*/0x01E9/*::]*/: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t/*::[*/0x01EA/*::]*/: { /* n:\"BrtBeginMG\", */ T:1 },\n\t/*::[*/0x01EB/*::]*/: { /* n:\"BrtEndMG\", */ T:-1 },\n\t/*::[*/0x01EC/*::]*/: { /* n:\"BrtBeginMap\", */ T:1 },\n\t/*::[*/0x01ED/*::]*/: { /* n:\"BrtEndMap\", */ T:-1 },\n\t/*::[*/0x01EE/*::]*/: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t/*::[*/0x01EF/*::]*/: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t/*::[*/0x01F0/*::]*/: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t/*::[*/0x01F1/*::]*/: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t/*::[*/0x01F2/*::]*/: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t/*::[*/0x01F3/*::]*/: { /* n:\"BrtDRef\" */ },\n\t/*::[*/0x01F4/*::]*/: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t/*::[*/0x01F5/*::]*/: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t/*::[*/0x01F6/*::]*/: { /* n:\"BrtBeginSct\", */ T:1 },\n\t/*::[*/0x01F7/*::]*/: { /* n:\"BrtEndSct\", */ T:-1 },\n\t/*::[*/0x01F8/*::]*/: { /* n:\"BrtSlc\" */ },\n\t/*::[*/0x01F9/*::]*/: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t/*::[*/0x01FA/*::]*/: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t/*::[*/0x01FB/*::]*/: { /* n:\"BrtDXF\" */ },\n\t/*::[*/0x01FC/*::]*/: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t/*::[*/0x01FD/*::]*/: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t/*::[*/0x01FE/*::]*/: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t/*::[*/0x01FF/*::]*/: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"BrtTableStyleElement\" */ },\n\t/*::[*/0x0201/*::]*/: { /* n:\"BrtTableStyleClient\" */ },\n\t/*::[*/0x0202/*::]*/: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t/*::[*/0x0203/*::]*/: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t/*::[*/0x0204/*::]*/: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t/*::[*/0x0206/*::]*/: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t/*::[*/0x0207/*::]*/: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t/*::[*/0x0208/*::]*/: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t/*::[*/0x020A/*::]*/: { /* n:\"BrtVolSubtopic\" */ },\n\t/*::[*/0x020B/*::]*/: { /* n:\"BrtVolRef\" */ },\n\t/*::[*/0x020C/*::]*/: { /* n:\"BrtVolNum\" */ },\n\t/*::[*/0x020D/*::]*/: { /* n:\"BrtVolErr\" */ },\n\t/*::[*/0x020E/*::]*/: { /* n:\"BrtVolStr\" */ },\n\t/*::[*/0x020F/*::]*/: { /* n:\"BrtVolBool\" */ },\n\t/*::[*/0x0210/*::]*/: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t/*::[*/0x0211/*::]*/: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t/*::[*/0x0212/*::]*/: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t/*::[*/0x0213/*::]*/: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t/*::[*/0x0214/*::]*/: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t/*::[*/0x0215/*::]*/: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t/*::[*/0x0216/*::]*/: { /* n:\"BrtBookProtection\" */ },\n\t/*::[*/0x0217/*::]*/: { /* n:\"BrtSheetProtection\" */ },\n\t/*::[*/0x0218/*::]*/: { /* n:\"BrtRangeProtection\" */ },\n\t/*::[*/0x0219/*::]*/: { /* n:\"BrtPhoneticInfo\" */ },\n\t/*::[*/0x021A/*::]*/: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t/*::[*/0x021B/*::]*/: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t/*::[*/0x021C/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t/*::[*/0x021D/*::]*/: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t/*::[*/0x021E/*::]*/: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t/*::[*/0x0224/*::]*/: { /* n:\"BrtFileSharing\" */ },\n\t/*::[*/0x0225/*::]*/: { /* n:\"BrtOleSize\" */ },\n\t/*::[*/0x0226/*::]*/: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t/*::[*/0x0227/*::]*/: { /* n:\"BrtLegacyDrawing\" */ },\n\t/*::[*/0x0228/*::]*/: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t/*::[*/0x0229/*::]*/: { /* n:\"BrtWebOpt\" */ },\n\t/*::[*/0x022A/*::]*/: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t/*::[*/0x022B/*::]*/: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t/*::[*/0x022C/*::]*/: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t/*::[*/0x022D/*::]*/: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t/*::[*/0x022E/*::]*/: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t/*::[*/0x022F/*::]*/: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t/*::[*/0x0230/*::]*/: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t/*::[*/0x0231/*::]*/: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t/*::[*/0x0232/*::]*/: { /* n:\"BrtBkHim\" */ },\n\t/*::[*/0x0234/*::]*/: { /* n:\"BrtColor\" */ },\n\t/*::[*/0x0235/*::]*/: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t/*::[*/0x0236/*::]*/: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t/*::[*/0x0239/*::]*/: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t/*::[*/0x023A/*::]*/: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t/*::[*/0x023C/*::]*/: { /* n:\"BrtMRUColor\" */ },\n\t/*::[*/0x023D/*::]*/: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t/*::[*/0x023E/*::]*/: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t/*::[*/0x0241/*::]*/: { /* n:\"BrtSupNameStart\" */ },\n\t/*::[*/0x0242/*::]*/: { /* n:\"BrtSupNameValueStart\" */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BrtSupNameValueEnd\" */ },\n\t/*::[*/0x0244/*::]*/: { /* n:\"BrtSupNameNum\" */ },\n\t/*::[*/0x0245/*::]*/: { /* n:\"BrtSupNameErr\" */ },\n\t/*::[*/0x0246/*::]*/: { /* n:\"BrtSupNameSt\" */ },\n\t/*::[*/0x0247/*::]*/: { /* n:\"BrtSupNameNil\" */ },\n\t/*::[*/0x0248/*::]*/: { /* n:\"BrtSupNameBool\" */ },\n\t/*::[*/0x0249/*::]*/: { /* n:\"BrtSupNameFmla\" */ },\n\t/*::[*/0x024A/*::]*/: { /* n:\"BrtSupNameBits\" */ },\n\t/*::[*/0x024B/*::]*/: { /* n:\"BrtSupNameEnd\" */ },\n\t/*::[*/0x024C/*::]*/: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t/*::[*/0x024D/*::]*/: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t/*::[*/0x024E/*::]*/: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t/*::[*/0x024F/*::]*/: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t/*::[*/0x0250/*::]*/: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t/*::[*/0x0251/*::]*/: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t/*::[*/0x0252/*::]*/: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t/*::[*/0x0253/*::]*/: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t/*::[*/0x0254/*::]*/: { /* n:\"BrtSmartTagType\" */ },\n\t/*::[*/0x0255/*::]*/: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t/*::[*/0x0256/*::]*/: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t/*::[*/0x0257/*::]*/: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t/*::[*/0x0258/*::]*/: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t/*::[*/0x0259/*::]*/: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t/*::[*/0x025A/*::]*/: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t/*::[*/0x025B/*::]*/: { /* n:\"BrtBeginFills\", */ T:1 },\n\t/*::[*/0x025C/*::]*/: { /* n:\"BrtEndFills\", */ T:-1 },\n\t/*::[*/0x025D/*::]*/: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t/*::[*/0x025E/*::]*/: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t/*::[*/0x025F/*::]*/: { /* n:\"BrtCellWatch\" */ },\n\t/*::[*/0x0260/*::]*/: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t/*::[*/0x0261/*::]*/: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t/*::[*/0x0262/*::]*/: { /* n:\"BrtCrashRecErr\" */ },\n\t/*::[*/0x0263/*::]*/: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t/*::[*/0x0264/*::]*/: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t/*::[*/0x0265/*::]*/: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t/*::[*/0x0266/*::]*/: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t/*::[*/0x0267/*::]*/: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t/*::[*/0x0268/*::]*/: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t/*::[*/0x0269/*::]*/: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t/*::[*/0x026A/*::]*/: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t/*::[*/0x026B/*::]*/: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t/*::[*/0x026C/*::]*/: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t/*::[*/0x0271/*::]*/: { /* n:\"BrtBigName\" */ },\n\t/*::[*/0x0272/*::]*/: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t/*::[*/0x0273/*::]*/: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t/*::[*/0x0274/*::]*/: { /* n:\"BrtBeginComments\", */ T:1 },\n\t/*::[*/0x0275/*::]*/: { /* n:\"BrtEndComments\", */ T:-1 },\n\t/*::[*/0x0276/*::]*/: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t/*::[*/0x0277/*::]*/: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t/*::[*/0x0278/*::]*/: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t/*::[*/0x0279/*::]*/: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t/*::[*/0x027A/*::]*/: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t/*::[*/0x027B/*::]*/: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t/*::[*/0x027C/*::]*/: { /* n:\"BrtEndComment\", */ T:-1 },\n\t/*::[*/0x027D/*::]*/: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t/*::[*/0x027E/*::]*/: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t/*::[*/0x027F/*::]*/: { /* n:\"BrtOleObject\" */ },\n\t/*::[*/0x0280/*::]*/: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t/*::[*/0x0281/*::]*/: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t/*::[*/0x0282/*::]*/: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t/*::[*/0x0283/*::]*/: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t/*::[*/0x0284/*::]*/: { /* n:\"BrtActiveX\" */ },\n\t/*::[*/0x0285/*::]*/: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t/*::[*/0x0286/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t/*::[*/0x0288/*::]*/: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t/*::[*/0x0289/*::]*/: { /* n:\"BrtCellIgnoreEC\" */ },\n\t/*::[*/0x028A/*::]*/: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t/*::[*/0x028B/*::]*/: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t/*::[*/0x028C/*::]*/: { /* n:\"BrtCsPageSetup\" */ },\n\t/*::[*/0x028D/*::]*/: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t/*::[*/0x028E/*::]*/: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t/*::[*/0x028F/*::]*/: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t/*::[*/0x0290/*::]*/: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t/*::[*/0x0291/*::]*/: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t/*::[*/0x0292/*::]*/: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t/*::[*/0x0293/*::]*/: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t/*::[*/0x0294/*::]*/: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t/*::[*/0x0295/*::]*/: { /* n:\"BrtListPart\" */ },\n\t/*::[*/0x0296/*::]*/: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t/*::[*/0x0297/*::]*/: { /* n:\"BrtSheetCalcProp\" */ },\n\t/*::[*/0x0298/*::]*/: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t/*::[*/0x0299/*::]*/: { /* n:\"BrtFnGroup\" */ },\n\t/*::[*/0x029A/*::]*/: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t/*::[*/0x029B/*::]*/: { /* n:\"BrtSupAddin\" */ },\n\t/*::[*/0x029C/*::]*/: { /* n:\"BrtSXTDMPOrder\" */ },\n\t/*::[*/0x029D/*::]*/: { /* n:\"BrtCsProtection\" */ },\n\t/*::[*/0x029F/*::]*/: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t/*::[*/0x02A0/*::]*/: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t/*::[*/0x02A1/*::]*/: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t/*::[*/0x02A2/*::]*/: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t/*::[*/0x02A3/*::]*/: { /* n:\"BrtRRSortItem\" */ },\n\t/*::[*/0x02A4/*::]*/: { /* n:\"BrtFileSharingIso\" */ },\n\t/*::[*/0x02A5/*::]*/: { /* n:\"BrtBookProtectionIso\" */ },\n\t/*::[*/0x02A6/*::]*/: { /* n:\"BrtSheetProtectionIso\" */ },\n\t/*::[*/0x02A7/*::]*/: { /* n:\"BrtCsProtectionIso\" */ },\n\t/*::[*/0x02A8/*::]*/: { /* n:\"BrtRangeProtectionIso\" */ },\n\t/*::[*/0x02A9/*::]*/: { /* n:\"BrtDValList\" */ },\n\t/*::[*/0x0400/*::]*/: { /* n:\"BrtRwDescent\" */ },\n\t/*::[*/0x0401/*::]*/: { /* n:\"BrtKnownFonts\" */ },\n\t/*::[*/0x0402/*::]*/: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t/*::[*/0x0403/*::]*/: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t/*::[*/0x0404/*::]*/: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t/*::[*/0x0405/*::]*/: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t/*::[*/0x0406/*::]*/: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t/*::[*/0x0407/*::]*/: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t/*::[*/0x0408/*::]*/: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t/*::[*/0x040A/*::]*/: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t/*::[*/0x040B/*::]*/: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t/*::[*/0x040C/*::]*/: { /* n:\"BrtNameExt\" */ },\n\t/*::[*/0x040D/*::]*/: { /* n:\"BrtPCDH14\" */ },\n\t/*::[*/0x040E/*::]*/: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t/*::[*/0x040F/*::]*/: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t/*::[*/0x0410/*::]*/: { /* n:\"BrtSXTH14\" */ },\n\t/*::[*/0x0411/*::]*/: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t/*::[*/0x0412/*::]*/: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t/*::[*/0x0413/*::]*/: { /* n:\"BrtSparkline\" */ },\n\t/*::[*/0x0414/*::]*/: { /* n:\"BrtSXDI14\" */ },\n\t/*::[*/0x0415/*::]*/: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t/*::[*/0x0416/*::]*/: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t/*::[*/0x0417/*::]*/: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t/*::[*/0x0419/*::]*/: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t/*::[*/0x041A/*::]*/: { /* n:\"BrtCFVO14\" */ },\n\t/*::[*/0x041B/*::]*/: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t/*::[*/0x041C/*::]*/: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t/*::[*/0x041D/*::]*/: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t/*::[*/0x041E/*::]*/: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t/*::[*/0x041F/*::]*/: { /* n:\"BrtColor14\" */ },\n\t/*::[*/0x0420/*::]*/: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t/*::[*/0x0421/*::]*/: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t/*::[*/0x0422/*::]*/: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t/*::[*/0x0423/*::]*/: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t/*::[*/0x0425/*::]*/: { /* n:\"BrtSXVD14\" */ },\n\t/*::[*/0x0426/*::]*/: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t/*::[*/0x0427/*::]*/: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t/*::[*/0x0428/*::]*/: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t/*::[*/0x0429/*::]*/: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t/*::[*/0x042A/*::]*/: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t/*::[*/0x042B/*::]*/: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t/*::[*/0x042C/*::]*/: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t/*::[*/0x042D/*::]*/: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t/*::[*/0x042E/*::]*/: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t/*::[*/0x042F/*::]*/: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t/*::[*/0x0430/*::]*/: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t/*::[*/0x0431/*::]*/: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t/*::[*/0x0433/*::]*/: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t/*::[*/0x0434/*::]*/: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t/*::[*/0x0435/*::]*/: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t/*::[*/0x0436/*::]*/: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t/*::[*/0x0437/*::]*/: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t/*::[*/0x0438/*::]*/: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t/*::[*/0x0439/*::]*/: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t/*::[*/0x043A/*::]*/: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t/*::[*/0x043B/*::]*/: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t/*::[*/0x043C/*::]*/: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t/*::[*/0x043D/*::]*/: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t/*::[*/0x043E/*::]*/: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t/*::[*/0x043F/*::]*/: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t/*::[*/0x0440/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t/*::[*/0x0441/*::]*/: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t/*::[*/0x0442/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t/*::[*/0x0444/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t/*::[*/0x0445/*::]*/: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t/*::[*/0x0446/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t/*::[*/0x0447/*::]*/: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t/*::[*/0x0448/*::]*/: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t/*::[*/0x0449/*::]*/: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t/*::[*/0x044A/*::]*/: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t/*::[*/0x044B/*::]*/: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t/*::[*/0x044C/*::]*/: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t/*::[*/0x044D/*::]*/: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t/*::[*/0x044E/*::]*/: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t/*::[*/0x044F/*::]*/: { /* n:\"BrtRangeProtection14\" */ },\n\t/*::[*/0x0450/*::]*/: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t/*::[*/0x0451/*::]*/: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t/*::[*/0x0457/*::]*/: { /* n:\"BrtList14\" */ },\n\t/*::[*/0x0458/*::]*/: { /* n:\"BrtCFIcon\" */ },\n\t/*::[*/0x0459/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x045A/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x045B/*::]*/: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t/*::[*/0x045C/*::]*/: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t/*::[*/0x045D/*::]*/: { /* n:\"BrtWbProp14\" */ },\n\t/*::[*/0x045E/*::]*/: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t/*::[*/0x045F/*::]*/: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t/*::[*/0x0460/*::]*/: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t/*::[*/0x0461/*::]*/: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t/*::[*/0x0462/*::]*/: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t/*::[*/0x0463/*::]*/: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t/*::[*/0x0464/*::]*/: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t/*::[*/0x0465/*::]*/: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t/*::[*/0x0466/*::]*/: { /* n:\"BrtSXTupleItems\" */ },\n\t/*::[*/0x0468/*::]*/: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t/*::[*/0x0469/*::]*/: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t/*::[*/0x046A/*::]*/: { /* n:\"BrtSlicerStyleElement\" */ },\n\t/*::[*/0x046B/*::]*/: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t/*::[*/0x046C/*::]*/: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t/*::[*/0x046D/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t/*::[*/0x046E/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t/*::[*/0x046F/*::]*/: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t/*::[*/0x0470/*::]*/: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t/*::[*/0x0471/*::]*/: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t/*::[*/0x0472/*::]*/: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t/*::[*/0x0473/*::]*/: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t/*::[*/0x0474/*::]*/: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t/*::[*/0x0475/*::]*/: { /* n:\"BrtPCDField14\" */ },\n\t/*::[*/0x0476/*::]*/: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t/*::[*/0x0477/*::]*/: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t/*::[*/0x0478/*::]*/: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t/*::[*/0x0479/*::]*/: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t/*::[*/0x047A/*::]*/: { /* n:\"BrtCFRuleExt\" */ },\n\t/*::[*/0x047B/*::]*/: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t/*::[*/0x047C/*::]*/: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t/*::[*/0x047D/*::]*/: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t/*::[*/0x047E/*::]*/: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t/*::[*/0x0480/*::]*/: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t/*::[*/0x0481/*::]*/: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t/*::[*/0x0482/*::]*/: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t/*::[*/0x0483/*::]*/: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t/*::[*/0x0484/*::]*/: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t/*::[*/0x0485/*::]*/: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t/*::[*/0x0486/*::]*/: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t/*::[*/0x0487/*::]*/: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t/*::[*/0x0488/*::]*/: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t/*::[*/0x0489/*::]*/: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t/*::[*/0x048A/*::]*/: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t/*::[*/0x048B/*::]*/: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t/*::[*/0x048C/*::]*/: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t/*::[*/0x048D/*::]*/: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t/*::[*/0x048E/*::]*/: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t/*::[*/0x048F/*::]*/: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t/*::[*/0x0490/*::]*/: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t/*::[*/0x0491/*::]*/: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t/*::[*/0x0492/*::]*/: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t/*::[*/0x0493/*::]*/: { /* n:\"BrtDxf14\" */ },\n\t/*::[*/0x0494/*::]*/: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t/*::[*/0x0495/*::]*/: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t/*::[*/0x0499/*::]*/: { /* n:\"BrtFilter14\" */ },\n\t/*::[*/0x049A/*::]*/: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t/*::[*/0x049C/*::]*/: { /* n:\"BrtCustomFilter14\" */ },\n\t/*::[*/0x049D/*::]*/: { /* n:\"BrtIconFilter14\" */ },\n\t/*::[*/0x049E/*::]*/: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t/*::[*/0x0800/*::]*/: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0801/*::]*/: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0802/*::]*/: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t/*::[*/0x0804/*::]*/: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t/*::[*/0x0805/*::]*/: { /* n:\"BrtPivotTableRef\" */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t/*::[*/0x0808/*::]*/: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t/*::[*/0x080A/*::]*/: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t/*::[*/0x080C/*::]*/: { /* n:\"BrtPcdCalcMem15\" */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"BrtQsi15\" */ },\n\t/*::[*/0x0814/*::]*/: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t/*::[*/0x0815/*::]*/: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t/*::[*/0x0816/*::]*/: { /* n:\"BrtWebExtension\" */ },\n\t/*::[*/0x0817/*::]*/: { /* n:\"BrtAbsPath15\" */ },\n\t/*::[*/0x0818/*::]*/: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t/*::[*/0x0819/*::]*/: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t/*::[*/0x081B/*::]*/: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t/*::[*/0x081C/*::]*/: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t/*::[*/0x081D/*::]*/: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t/*::[*/0x081E/*::]*/: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t/*::[*/0x081F/*::]*/: { /* n:\"BrtSxFilter15\" */ },\n\t/*::[*/0x0820/*::]*/: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0821/*::]*/: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0822/*::]*/: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t/*::[*/0x0823/*::]*/: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t/*::[*/0x0824/*::]*/: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t/*::[*/0x0825/*::]*/: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t/*::[*/0x0826/*::]*/: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t/*::[*/0x0827/*::]*/: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t/*::[*/0x0828/*::]*/: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t/*::[*/0x0829/*::]*/: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t/*::[*/0x082A/*::]*/: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t/*::[*/0x082B/*::]*/: { /* n:\"BrtWorkBookPr15\" */ },\n\t/*::[*/0x082C/*::]*/: { /* n:\"BrtPCDH15\" */ },\n\t/*::[*/0x082D/*::]*/: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t/*::[*/0x082E/*::]*/: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t/*::[*/0x082F/*::]*/: { /* n:\"BrtTimelineStyleElement\" */ },\n\t/*::[*/0x0830/*::]*/: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t/*::[*/0x0831/*::]*/: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t/*::[*/0x0832/*::]*/: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t/*::[*/0x0833/*::]*/: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t/*::[*/0x0834/*::]*/: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t/*::[*/0x0835/*::]*/: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t/*::[*/0x0836/*::]*/: { /* n:\"BrtDxf15\" */ },\n\t/*::[*/0x0837/*::]*/: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t/*::[*/0x0838/*::]*/: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t/*::[*/0x0839/*::]*/: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t/*::[*/0x083A/*::]*/: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t/*::[*/0x083B/*::]*/: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t/*::[*/0x083C/*::]*/: { /* n:\"BrtItemUniqueName\" */ },\n\t/*::[*/0x083D/*::]*/: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t/*::[*/0x083E/*::]*/: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t/*::[*/0x083F/*::]*/: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t/*::[*/0x0840/*::]*/: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t/*::[*/0x0841/*::]*/: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t/*::[*/0x0842/*::]*/: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t/*::[*/0x0843/*::]*/: { /* n:\"BrtTextPr15\" */ },\n\t/*::[*/0x0844/*::]*/: { /* n:\"BrtRangePr15\" */ },\n\t/*::[*/0x0845/*::]*/: { /* n:\"BrtDbCommand15\" */ },\n\t/*::[*/0x0846/*::]*/: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t/*::[*/0x0847/*::]*/: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t/*::[*/0x0848/*::]*/: { /* n:\"BrtDbTable15\" */ },\n\t/*::[*/0x0849/*::]*/: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t/*::[*/0x084A/*::]*/: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t/*::[*/0x084B/*::]*/: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t/*::[*/0x084C/*::]*/: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t/*::[*/0x084D/*::]*/: { /* n:\"BrtModelTable\" */ },\n\t/*::[*/0x084E/*::]*/: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t/*::[*/0x084F/*::]*/: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t/*::[*/0x0850/*::]*/: { /* n:\"BrtModelRelationship\" */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t/*::[*/0x0852/*::]*/: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t/*::[*/0x0853/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t/*::[*/0x0854/*::]*/: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t/*::[*/0x0855/*::]*/: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t/*::[*/0x0856/*::]*/: { /* n:\"BrtFieldListActiveItem\" */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"BrtSXDI15\" */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t/*::[*/0x085A/*::]*/: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t/*::[*/0x085B/*::]*/: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t/*::[*/0x085C/*::]*/: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t/*::[*/0x085D/*::]*/: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t/*::[*/0x0C00/*::]*/: { /* n:\"BrtUid\" */ },\n\t/*::[*/0x0C01/*::]*/: { /* n:\"BrtRevisionPtr\" */ },\n\t/*::[*/0x1000/*::]*/: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t/*::[*/0x1001/*::]*/: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t/*::[*/0x138A/*::]*/: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t/*::[*/0x138B/*::]*/: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t/*::[*/0x13D9/*::]*/: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t/*::[*/0x13DA/*::]*/: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t/*::[*/0x13DB/*::]*/: { /* n:\"BrtRichFilter\" */ },\n\t/*::[*/0x13DC/*::]*/: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t/*::[*/0x13DD/*::]*/: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t/*::[*/0x13DE/*::]*/: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t/*::[*/0x13DF/*::]*/: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t/*::[*/0x13E0/*::]*/: { /* n:\"BrtCustomRichFilter\" */ },\n\t/*::[*/0x13E1/*::]*/: { /* n:\"BrtTop10RichFilter\" */ },\n\t/*::[*/0x13E2/*::]*/: { /* n:\"BrtDynamicRichFilter\" */ },\n\t/*::[*/0x13E4/*::]*/: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t/*::[*/0x13E5/*::]*/: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t/*::[*/0x13E6/*::]*/: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t/*::[*/0x13E7/*::]*/: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t/*::[*/0x13E8/*::]*/: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t/*::[*/0x13E9/*::]*/: { /* n:\"BrtCalcFeature\" */ },\n\t/*::[*/0x13EB/*::]*/: { /* n:\"BrtExternalLinksPr\" */ },\n\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t/*::[*/0x0006/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x000a/*::]*/: { /* n:\"EOF\", */ f:parsenoop2 },\n\t/*::[*/0x000c/*::]*/: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t/*::[*/0x000d/*::]*/: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t/*::[*/0x000e/*::]*/: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t/*::[*/0x000f/*::]*/: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t/*::[*/0x0010/*::]*/: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t/*::[*/0x0011/*::]*/: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t/*::[*/0x0012/*::]*/: { /* n:\"Protect\", */ f:parsebool },\n\t/*::[*/0x0013/*::]*/: { /* n:\"Password\", */ f:parseuint16 },\n\t/*::[*/0x0014/*::]*/: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0015/*::]*/: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0017/*::]*/: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x0018/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0019/*::]*/: { /* n:\"WinProtect\", */ f:parsebool },\n\t/*::[*/0x001a/*::]*/: { /* n:\"VerticalPageBreaks\", */ },\n\t/*::[*/0x001b/*::]*/: { /* n:\"HorizontalPageBreaks\", */ },\n\t/*::[*/0x001c/*::]*/: { /* n:\"Note\", */ f:parse_Note },\n\t/*::[*/0x001d/*::]*/: { /* n:\"Selection\", */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"Date1904\", */ f:parsebool },\n\t/*::[*/0x0023/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0026/*::]*/: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0027/*::]*/: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0028/*::]*/: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0029/*::]*/: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x002a/*::]*/: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t/*::[*/0x002b/*::]*/: { /* n:\"PrintGrid\", */ f:parsebool },\n\t/*::[*/0x002f/*::]*/: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t/*::[*/0x0031/*::]*/: { /* n:\"Font\", */ f:parse_Font },\n\t/*::[*/0x0033/*::]*/: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t/*::[*/0x003c/*::]*/: { /* n:\"Continue\", */ },\n\t/*::[*/0x003d/*::]*/: { /* n:\"Window1\", */ f:parse_Window1 },\n\t/*::[*/0x0040/*::]*/: { /* n:\"Backup\", */ f:parsebool },\n\t/*::[*/0x0041/*::]*/: { /* n:\"Pane\", */ f:parse_Pane },\n\t/*::[*/0x0042/*::]*/: { /* n:\"CodePage\", */ f:parseuint16 },\n\t/*::[*/0x004d/*::]*/: { /* n:\"Pls\", */ },\n\t/*::[*/0x0050/*::]*/: { /* n:\"DCon\", */ },\n\t/*::[*/0x0051/*::]*/: { /* n:\"DConRef\", */ },\n\t/*::[*/0x0052/*::]*/: { /* n:\"DConName\", */ },\n\t/*::[*/0x0055/*::]*/: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t/*::[*/0x0059/*::]*/: { /* n:\"XCT\", */ },\n\t/*::[*/0x005a/*::]*/: { /* n:\"CRN\", */ },\n\t/*::[*/0x005b/*::]*/: { /* n:\"FileSharing\", */ },\n\t/*::[*/0x005c/*::]*/: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t/*::[*/0x005d/*::]*/: { /* n:\"Obj\", */ f:parse_Obj },\n\t/*::[*/0x005e/*::]*/: { /* n:\"Uncalced\", */ },\n\t/*::[*/0x005f/*::]*/: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t/*::[*/0x0060/*::]*/: { /* n:\"Template\", */ },\n\t/*::[*/0x0061/*::]*/: { /* n:\"Intl\", */ },\n\t/*::[*/0x0063/*::]*/: { /* n:\"ObjProtect\", */ f:parsebool },\n\t/*::[*/0x007d/*::]*/: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x0080/*::]*/: { /* n:\"Guts\", */ f:parse_Guts },\n\t/*::[*/0x0081/*::]*/: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t/*::[*/0x0082/*::]*/: { /* n:\"GridSet\", */ f:parseuint16 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"HCenter\", */ f:parsebool },\n\t/*::[*/0x0084/*::]*/: { /* n:\"VCenter\", */ f:parsebool },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"WriteProtect\", */ },\n\t/*::[*/0x008c/*::]*/: { /* n:\"Country\", */ f:parse_Country },\n\t/*::[*/0x008d/*::]*/: { /* n:\"HideObj\", */ f:parseuint16 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"Sort\", */ },\n\t/*::[*/0x0092/*::]*/: { /* n:\"Palette\", */ f:parse_Palette },\n\t/*::[*/0x0097/*::]*/: { /* n:\"Sync\", */ },\n\t/*::[*/0x0098/*::]*/: { /* n:\"LPr\", */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"DxGCol\", */ },\n\t/*::[*/0x009a/*::]*/: { /* n:\"FnGroupName\", */ },\n\t/*::[*/0x009b/*::]*/: { /* n:\"FilterMode\", */ },\n\t/*::[*/0x009c/*::]*/: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t/*::[*/0x009d/*::]*/: { /* n:\"AutoFilterInfo\", */ },\n\t/*::[*/0x009e/*::]*/: { /* n:\"AutoFilter\", */ },\n\t/*::[*/0x00a0/*::]*/: { /* n:\"Scl\", */ f:parse_Scl },\n\t/*::[*/0x00a1/*::]*/: { /* n:\"Setup\", */ f:parse_Setup },\n\t/*::[*/0x00ae/*::]*/: { /* n:\"ScenMan\", */ },\n\t/*::[*/0x00af/*::]*/: { /* n:\"SCENARIO\", */ },\n\t/*::[*/0x00b0/*::]*/: { /* n:\"SxView\", */ },\n\t/*::[*/0x00b1/*::]*/: { /* n:\"Sxvd\", */ },\n\t/*::[*/0x00b2/*::]*/: { /* n:\"SXVI\", */ },\n\t/*::[*/0x00b4/*::]*/: { /* n:\"SxIvd\", */ },\n\t/*::[*/0x00b5/*::]*/: { /* n:\"SXLI\", */ },\n\t/*::[*/0x00b6/*::]*/: { /* n:\"SXPI\", */ },\n\t/*::[*/0x00b8/*::]*/: { /* n:\"DocRoute\", */ },\n\t/*::[*/0x00b9/*::]*/: { /* n:\"RecipName\", */ },\n\t/*::[*/0x00bd/*::]*/: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t/*::[*/0x00be/*::]*/: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t/*::[*/0x00c1/*::]*/: { /* n:\"Mms\", */ f:parsenoop2 },\n\t/*::[*/0x00c5/*::]*/: { /* n:\"SXDI\", */ },\n\t/*::[*/0x00c6/*::]*/: { /* n:\"SXDB\", */ },\n\t/*::[*/0x00c7/*::]*/: { /* n:\"SXFDB\", */ },\n\t/*::[*/0x00c8/*::]*/: { /* n:\"SXDBB\", */ },\n\t/*::[*/0x00c9/*::]*/: { /* n:\"SXNum\", */ },\n\t/*::[*/0x00ca/*::]*/: { /* n:\"SxBool\", */ f:parsebool },\n\t/*::[*/0x00cb/*::]*/: { /* n:\"SxErr\", */ },\n\t/*::[*/0x00cc/*::]*/: { /* n:\"SXInt\", */ },\n\t/*::[*/0x00cd/*::]*/: { /* n:\"SXString\", */ },\n\t/*::[*/0x00ce/*::]*/: { /* n:\"SXDtr\", */ },\n\t/*::[*/0x00cf/*::]*/: { /* n:\"SxNil\", */ },\n\t/*::[*/0x00d0/*::]*/: { /* n:\"SXTbl\", */ },\n\t/*::[*/0x00d1/*::]*/: { /* n:\"SXTBRGIITM\", */ },\n\t/*::[*/0x00d2/*::]*/: { /* n:\"SxTbpg\", */ },\n\t/*::[*/0x00d3/*::]*/: { /* n:\"ObProj\", */ },\n\t/*::[*/0x00d5/*::]*/: { /* n:\"SXStreamID\", */ },\n\t/*::[*/0x00d7/*::]*/: { /* n:\"DBCell\", */ },\n\t/*::[*/0x00d8/*::]*/: { /* n:\"SXRng\", */ },\n\t/*::[*/0x00d9/*::]*/: { /* n:\"SxIsxoper\", */ },\n\t/*::[*/0x00da/*::]*/: { /* n:\"BookBool\", */ f:parseuint16 },\n\t/*::[*/0x00dc/*::]*/: { /* n:\"DbOrParamQry\", */ },\n\t/*::[*/0x00dd/*::]*/: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t/*::[*/0x00de/*::]*/: { /* n:\"OleObjectSize\", */ },\n\t/*::[*/0x00e0/*::]*/: { /* n:\"XF\", */ f:parse_XF },\n\t/*::[*/0x00e1/*::]*/: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t/*::[*/0x00e2/*::]*/: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t/*::[*/0x00e3/*::]*/: { /* n:\"SXVS\", */ },\n\t/*::[*/0x00e5/*::]*/: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t/*::[*/0x00e9/*::]*/: { /* n:\"BkHim\", */ },\n\t/*::[*/0x00eb/*::]*/: { /* n:\"MsoDrawingGroup\", */ },\n\t/*::[*/0x00ec/*::]*/: { /* n:\"MsoDrawing\", */ },\n\t/*::[*/0x00ed/*::]*/: { /* n:\"MsoDrawingSelection\", */ },\n\t/*::[*/0x00ef/*::]*/: { /* n:\"PhoneticInfo\", */ },\n\t/*::[*/0x00f0/*::]*/: { /* n:\"SxRule\", */ },\n\t/*::[*/0x00f1/*::]*/: { /* n:\"SXEx\", */ },\n\t/*::[*/0x00f2/*::]*/: { /* n:\"SxFilt\", */ },\n\t/*::[*/0x00f4/*::]*/: { /* n:\"SxDXF\", */ },\n\t/*::[*/0x00f5/*::]*/: { /* n:\"SxItm\", */ },\n\t/*::[*/0x00f6/*::]*/: { /* n:\"SxName\", */ },\n\t/*::[*/0x00f7/*::]*/: { /* n:\"SxSelect\", */ },\n\t/*::[*/0x00f8/*::]*/: { /* n:\"SXPair\", */ },\n\t/*::[*/0x00f9/*::]*/: { /* n:\"SxFmla\", */ },\n\t/*::[*/0x00fb/*::]*/: { /* n:\"SxFormat\", */ },\n\t/*::[*/0x00fc/*::]*/: { /* n:\"SST\", */ f:parse_SST },\n\t/*::[*/0x00fd/*::]*/: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t/*::[*/0x00ff/*::]*/: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t/*::[*/0x0100/*::]*/: { /* n:\"SXVDEx\", */ },\n\t/*::[*/0x0103/*::]*/: { /* n:\"SXFormula\", */ },\n\t/*::[*/0x0122/*::]*/: { /* n:\"SXDBEx\", */ },\n\t/*::[*/0x0137/*::]*/: { /* n:\"RRDInsDel\", */ },\n\t/*::[*/0x0138/*::]*/: { /* n:\"RRDHead\", */ },\n\t/*::[*/0x013b/*::]*/: { /* n:\"RRDChgCell\", */ },\n\t/*::[*/0x013d/*::]*/: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t/*::[*/0x013e/*::]*/: { /* n:\"RRDRenSheet\", */ },\n\t/*::[*/0x013f/*::]*/: { /* n:\"RRSort\", */ },\n\t/*::[*/0x0140/*::]*/: { /* n:\"RRDMove\", */ },\n\t/*::[*/0x014a/*::]*/: { /* n:\"RRFormat\", */ },\n\t/*::[*/0x014b/*::]*/: { /* n:\"RRAutoFmt\", */ },\n\t/*::[*/0x014d/*::]*/: { /* n:\"RRInsertSh\", */ },\n\t/*::[*/0x014e/*::]*/: { /* n:\"RRDMoveBegin\", */ },\n\t/*::[*/0x014f/*::]*/: { /* n:\"RRDMoveEnd\", */ },\n\t/*::[*/0x0150/*::]*/: { /* n:\"RRDInsDelBegin\", */ },\n\t/*::[*/0x0151/*::]*/: { /* n:\"RRDInsDelEnd\", */ },\n\t/*::[*/0x0152/*::]*/: { /* n:\"RRDConflict\", */ },\n\t/*::[*/0x0153/*::]*/: { /* n:\"RRDDefName\", */ },\n\t/*::[*/0x0154/*::]*/: { /* n:\"RRDRstEtxp\", */ },\n\t/*::[*/0x015f/*::]*/: { /* n:\"LRng\", */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"UsesELFs\", */ f:parsebool },\n\t/*::[*/0x0161/*::]*/: { /* n:\"DSF\", */ f:parsenoop2 },\n\t/*::[*/0x0191/*::]*/: { /* n:\"CUsr\", */ },\n\t/*::[*/0x0192/*::]*/: { /* n:\"CbUsr\", */ },\n\t/*::[*/0x0193/*::]*/: { /* n:\"UsrInfo\", */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"UsrExcl\", */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"FileLock\", */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"RRDInfo\", */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BCUsrs\", */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"UsrChk\", */ },\n\t/*::[*/0x01a9/*::]*/: { /* n:\"UserBView\", */ },\n\t/*::[*/0x01aa/*::]*/: { /* n:\"UserSViewBegin\", */ },\n\t/*::[*/0x01ab/*::]*/: { /* n:\"UserSViewEnd\", */ },\n\t/*::[*/0x01ac/*::]*/: { /* n:\"RRDUserView\", */ },\n\t/*::[*/0x01ad/*::]*/: { /* n:\"Qsi\", */ },\n\t/*::[*/0x01ae/*::]*/: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t/*::[*/0x01af/*::]*/: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t/*::[*/0x01b0/*::]*/: { /* n:\"CondFmt\", */ },\n\t/*::[*/0x01b1/*::]*/: { /* n:\"CF\", */ },\n\t/*::[*/0x01b2/*::]*/: { /* n:\"DVal\", */ },\n\t/*::[*/0x01b5/*::]*/: { /* n:\"DConBin\", */ },\n\t/*::[*/0x01b6/*::]*/: { /* n:\"TxO\", */ f:parse_TxO },\n\t/*::[*/0x01b7/*::]*/: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t/*::[*/0x01b8/*::]*/: { /* n:\"HLink\", */ f:parse_HLink },\n\t/*::[*/0x01b9/*::]*/: { /* n:\"Lel\", */ },\n\t/*::[*/0x01ba/*::]*/: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t/*::[*/0x01bb/*::]*/: { /* n:\"SXFDBType\", */ },\n\t/*::[*/0x01bc/*::]*/: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t/*::[*/0x01bd/*::]*/: { /* n:\"ObNoMacros\", */ },\n\t/*::[*/0x01be/*::]*/: { /* n:\"Dv\", */ },\n\t/*::[*/0x01c0/*::]*/: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t/*::[*/0x01c1/*::]*/: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t/*::[*/0x01c2/*::]*/: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0201/*::]*/: { /* n:\"Blank\", */ f:parse_Blank },\n\t/*::[*/0x0203/*::]*/: { /* n:\"Number\", */ f:parse_Number },\n\t/*::[*/0x0204/*::]*/: { /* n:\"Label\", */ f:parse_Label },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0207/*::]*/: { /* n:\"String\", */ f:parse_String },\n\t/*::[*/0x0208/*::]*/: { /* n:\"Row\", */ f:parse_Row },\n\t/*::[*/0x020b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0221/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0225/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t/*::[*/0x0236/*::]*/: { /* n:\"Table\", */ },\n\t/*::[*/0x023e/*::]*/: { /* n:\"Window2\", */ f:parse_Window2 },\n\t/*::[*/0x027e/*::]*/: { /* n:\"RK\", */ f:parse_RK },\n\t/*::[*/0x0293/*::]*/: { /* n:\"Style\", */ },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BigName\", */ },\n\t/*::[*/0x041e/*::]*/: { /* n:\"Format\", */ f:parse_Format },\n\t/*::[*/0x043c/*::]*/: { /* n:\"ContinueBigName\", */ },\n\t/*::[*/0x04bc/*::]*/: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t/*::[*/0x0800/*::]*/: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t/*::[*/0x0801/*::]*/: { /* n:\"WebPub\", */ },\n\t/*::[*/0x0802/*::]*/: { /* n:\"QsiSXTag\", */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"DBQueryExt\", */ },\n\t/*::[*/0x0804/*::]*/: { /* n:\"ExtString\", */ },\n\t/*::[*/0x0805/*::]*/: { /* n:\"TxtQry\", */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"Qsir\", */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"Qsif\", */ },\n\t/*::[*/0x0808/*::]*/: { /* n:\"RRDTQSIF\", */ },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x080a/*::]*/: { /* n:\"OleDbConn\", */ },\n\t/*::[*/0x080b/*::]*/: { /* n:\"WOpt\", */ },\n\t/*::[*/0x080c/*::]*/: { /* n:\"SXViewEx\", */ },\n\t/*::[*/0x080d/*::]*/: { /* n:\"SXTH\", */ },\n\t/*::[*/0x080e/*::]*/: { /* n:\"SXPIEx\", */ },\n\t/*::[*/0x080f/*::]*/: { /* n:\"SXVDTEx\", */ },\n\t/*::[*/0x0810/*::]*/: { /* n:\"SXViewEx9\", */ },\n\t/*::[*/0x0812/*::]*/: { /* n:\"ContinueFrt\", */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"RealTimeData\", */ },\n\t/*::[*/0x0850/*::]*/: { /* n:\"ChartFrtInfo\", */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"FrtWrapper\", */ },\n\t/*::[*/0x0852/*::]*/: { /* n:\"StartBlock\", */ },\n\t/*::[*/0x0853/*::]*/: { /* n:\"EndBlock\", */ },\n\t/*::[*/0x0854/*::]*/: { /* n:\"StartObject\", */ },\n\t/*::[*/0x0855/*::]*/: { /* n:\"EndObject\", */ },\n\t/*::[*/0x0856/*::]*/: { /* n:\"CatLab\", */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"YMult\", */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"SXViewLink\", */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"PivotChartBits\", */ },\n\t/*::[*/0x085a/*::]*/: { /* n:\"FrtFontList\", */ },\n\t/*::[*/0x0862/*::]*/: { /* n:\"SheetExt\", */ },\n\t/*::[*/0x0863/*::]*/: { /* n:\"BookExt\", */ r:12},\n\t/*::[*/0x0864/*::]*/: { /* n:\"SXAddl\", */ },\n\t/*::[*/0x0865/*::]*/: { /* n:\"CrErr\", */ },\n\t/*::[*/0x0866/*::]*/: { /* n:\"HFPicture\", */ },\n\t/*::[*/0x0867/*::]*/: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t/*::[*/0x0868/*::]*/: { /* n:\"Feat\", */ },\n\t/*::[*/0x086a/*::]*/: { /* n:\"DataLabExt\", */ },\n\t/*::[*/0x086b/*::]*/: { /* n:\"DataLabExtContents\", */ },\n\t/*::[*/0x086c/*::]*/: { /* n:\"CellWatch\", */ },\n\t/*::[*/0x0871/*::]*/: { /* n:\"FeatHdr11\", */ },\n\t/*::[*/0x0872/*::]*/: { /* n:\"Feature11\", */ },\n\t/*::[*/0x0874/*::]*/: { /* n:\"DropDownObjIds\", */ },\n\t/*::[*/0x0875/*::]*/: { /* n:\"ContinueFrt11\", */ },\n\t/*::[*/0x0876/*::]*/: { /* n:\"DConn\", */ },\n\t/*::[*/0x0877/*::]*/: { /* n:\"List12\", */ },\n\t/*::[*/0x0878/*::]*/: { /* n:\"Feature12\", */ },\n\t/*::[*/0x0879/*::]*/: { /* n:\"CondFmt12\", */ },\n\t/*::[*/0x087a/*::]*/: { /* n:\"CF12\", */ },\n\t/*::[*/0x087b/*::]*/: { /* n:\"CFEx\", */ },\n\t/*::[*/0x087c/*::]*/: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t/*::[*/0x087d/*::]*/: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t/*::[*/0x087e/*::]*/: { /* n:\"AutoFilter12\", */ },\n\t/*::[*/0x087f/*::]*/: { /* n:\"ContinueFrt12\", */ },\n\t/*::[*/0x0884/*::]*/: { /* n:\"MDTInfo\", */ },\n\t/*::[*/0x0885/*::]*/: { /* n:\"MDXStr\", */ },\n\t/*::[*/0x0886/*::]*/: { /* n:\"MDXTuple\", */ },\n\t/*::[*/0x0887/*::]*/: { /* n:\"MDXSet\", */ },\n\t/*::[*/0x0888/*::]*/: { /* n:\"MDXProp\", */ },\n\t/*::[*/0x0889/*::]*/: { /* n:\"MDXKPI\", */ },\n\t/*::[*/0x088a/*::]*/: { /* n:\"MDB\", */ },\n\t/*::[*/0x088b/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x088c/*::]*/: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t/*::[*/0x088d/*::]*/: { /* n:\"DXF\", */ },\n\t/*::[*/0x088e/*::]*/: { /* n:\"TableStyles\", */ r:12 },\n\t/*::[*/0x088f/*::]*/: { /* n:\"TableStyle\", */ },\n\t/*::[*/0x0890/*::]*/: { /* n:\"TableStyleElement\", */ },\n\t/*::[*/0x0892/*::]*/: { /* n:\"StyleExt\", */ },\n\t/*::[*/0x0893/*::]*/: { /* n:\"NamePublish\", */ },\n\t/*::[*/0x0894/*::]*/: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t/*::[*/0x0895/*::]*/: { /* n:\"SortData\", */ },\n\t/*::[*/0x0896/*::]*/: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t/*::[*/0x0897/*::]*/: { /* n:\"GUIDTypeLib\", */ },\n\t/*::[*/0x0898/*::]*/: { /* n:\"FnGrp12\", */ },\n\t/*::[*/0x0899/*::]*/: { /* n:\"NameFnGrp12\", */ },\n\t/*::[*/0x089a/*::]*/: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t/*::[*/0x089b/*::]*/: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t/*::[*/0x089c/*::]*/: { /* n:\"HeaderFooter\", */ },\n\t/*::[*/0x089d/*::]*/: { /* n:\"CrtLayout12\", */ },\n\t/*::[*/0x089e/*::]*/: { /* n:\"CrtMlFrt\", */ },\n\t/*::[*/0x089f/*::]*/: { /* n:\"CrtMlFrtContinue\", */ },\n\t/*::[*/0x08a3/*::]*/: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t/*::[*/0x08a4/*::]*/: { /* n:\"ShapePropsStream\", */ },\n\t/*::[*/0x08a5/*::]*/: { /* n:\"TextPropsStream\", */ },\n\t/*::[*/0x08a6/*::]*/: { /* n:\"RichTextStream\", */ },\n\t/*::[*/0x08a7/*::]*/: { /* n:\"CrtLayout12A\", */ },\n\t/*::[*/0x1001/*::]*/: { /* n:\"Units\", */ },\n\t/*::[*/0x1002/*::]*/: { /* n:\"Chart\", */ },\n\t/*::[*/0x1003/*::]*/: { /* n:\"Series\", */ },\n\t/*::[*/0x1006/*::]*/: { /* n:\"DataFormat\", */ },\n\t/*::[*/0x1007/*::]*/: { /* n:\"LineFormat\", */ },\n\t/*::[*/0x1009/*::]*/: { /* n:\"MarkerFormat\", */ },\n\t/*::[*/0x100a/*::]*/: { /* n:\"AreaFormat\", */ },\n\t/*::[*/0x100b/*::]*/: { /* n:\"PieFormat\", */ },\n\t/*::[*/0x100c/*::]*/: { /* n:\"AttachedLabel\", */ },\n\t/*::[*/0x100d/*::]*/: { /* n:\"SeriesText\", */ },\n\t/*::[*/0x1014/*::]*/: { /* n:\"ChartFormat\", */ },\n\t/*::[*/0x1015/*::]*/: { /* n:\"Legend\", */ },\n\t/*::[*/0x1016/*::]*/: { /* n:\"SeriesList\", */ },\n\t/*::[*/0x1017/*::]*/: { /* n:\"Bar\", */ },\n\t/*::[*/0x1018/*::]*/: { /* n:\"Line\", */ },\n\t/*::[*/0x1019/*::]*/: { /* n:\"Pie\", */ },\n\t/*::[*/0x101a/*::]*/: { /* n:\"Area\", */ },\n\t/*::[*/0x101b/*::]*/: { /* n:\"Scatter\", */ },\n\t/*::[*/0x101c/*::]*/: { /* n:\"CrtLine\", */ },\n\t/*::[*/0x101d/*::]*/: { /* n:\"Axis\", */ },\n\t/*::[*/0x101e/*::]*/: { /* n:\"Tick\", */ },\n\t/*::[*/0x101f/*::]*/: { /* n:\"ValueRange\", */ },\n\t/*::[*/0x1020/*::]*/: { /* n:\"CatSerRange\", */ },\n\t/*::[*/0x1021/*::]*/: { /* n:\"AxisLine\", */ },\n\t/*::[*/0x1022/*::]*/: { /* n:\"CrtLink\", */ },\n\t/*::[*/0x1024/*::]*/: { /* n:\"DefaultText\", */ },\n\t/*::[*/0x1025/*::]*/: { /* n:\"Text\", */ },\n\t/*::[*/0x1026/*::]*/: { /* n:\"FontX\", */ f:parseuint16 },\n\t/*::[*/0x1027/*::]*/: { /* n:\"ObjectLink\", */ },\n\t/*::[*/0x1032/*::]*/: { /* n:\"Frame\", */ },\n\t/*::[*/0x1033/*::]*/: { /* n:\"Begin\", */ },\n\t/*::[*/0x1034/*::]*/: { /* n:\"End\", */ },\n\t/*::[*/0x1035/*::]*/: { /* n:\"PlotArea\", */ },\n\t/*::[*/0x103a/*::]*/: { /* n:\"Chart3d\", */ },\n\t/*::[*/0x103c/*::]*/: { /* n:\"PicF\", */ },\n\t/*::[*/0x103d/*::]*/: { /* n:\"DropBar\", */ },\n\t/*::[*/0x103e/*::]*/: { /* n:\"Radar\", */ },\n\t/*::[*/0x103f/*::]*/: { /* n:\"Surf\", */ },\n\t/*::[*/0x1040/*::]*/: { /* n:\"RadarArea\", */ },\n\t/*::[*/0x1041/*::]*/: { /* n:\"AxisParent\", */ },\n\t/*::[*/0x1043/*::]*/: { /* n:\"LegendException\", */ },\n\t/*::[*/0x1044/*::]*/: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t/*::[*/0x1045/*::]*/: { /* n:\"SerToCrt\", */ },\n\t/*::[*/0x1046/*::]*/: { /* n:\"AxesUsed\", */ },\n\t/*::[*/0x1048/*::]*/: { /* n:\"SBaseRef\", */ },\n\t/*::[*/0x104a/*::]*/: { /* n:\"SerParent\", */ },\n\t/*::[*/0x104b/*::]*/: { /* n:\"SerAuxTrend\", */ },\n\t/*::[*/0x104e/*::]*/: { /* n:\"IFmtRecord\", */ },\n\t/*::[*/0x104f/*::]*/: { /* n:\"Pos\", */ },\n\t/*::[*/0x1050/*::]*/: { /* n:\"AlRuns\", */ },\n\t/*::[*/0x1051/*::]*/: { /* n:\"BRAI\", */ },\n\t/*::[*/0x105b/*::]*/: { /* n:\"SerAuxErrBar\", */ },\n\t/*::[*/0x105c/*::]*/: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t/*::[*/0x105d/*::]*/: { /* n:\"SerFmt\", */ },\n\t/*::[*/0x105f/*::]*/: { /* n:\"Chart3DBarShape\", */ },\n\t/*::[*/0x1060/*::]*/: { /* n:\"Fbi\", */ },\n\t/*::[*/0x1061/*::]*/: { /* n:\"BopPop\", */ },\n\t/*::[*/0x1062/*::]*/: { /* n:\"AxcExt\", */ },\n\t/*::[*/0x1063/*::]*/: { /* n:\"Dat\", */ },\n\t/*::[*/0x1064/*::]*/: { /* n:\"PlotGrowth\", */ },\n\t/*::[*/0x1065/*::]*/: { /* n:\"SIIndex\", */ },\n\t/*::[*/0x1066/*::]*/: { /* n:\"GelFrame\", */ },\n\t/*::[*/0x1067/*::]*/: { /* n:\"BopPopCustom\", */ },\n\t/*::[*/0x1068/*::]*/: { /* n:\"Fbi2\", */ },\n\n\t/*::[*/0x0000/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BIFF2BLANK\", */ },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0007/*::]*/: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BIFF2ROW\", */ },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x000b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t/*::[*/0x001e/*::]*/: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t/*::[*/0x001f/*::]*/: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t/*::[*/0x0020/*::]*/: { /* n:\"BIFF2COLINFO\", */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0024/*::]*/: { /* n:\"COLWIDTH\", */ },\n\t/*::[*/0x0025/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x2c ??\n\t// 0x2d ??\n\t// 0x2e ??\n\t// 0x30 FONTCOUNT: number of fonts\n\t/*::[*/0x0032/*::]*/: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x35: INFOOPTS\n\t// 0x36: TABLE (BIFF2 only)\n\t// 0x37: TABLE2 (BIFF2 only)\n\t// 0x38: WNDESK\n\t// 0x39 ??\n\t// 0x3a: BEGINPREF\n\t// 0x3b: ENDPREF\n\t/*::[*/0x003e/*::]*/: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x3f ??\n\t// 0x46: SHOWSCROLL\n\t// 0x47: SHOWFORMULA\n\t// 0x48: STATUSBAR\n\t// 0x49: SHORTMENUS\n\t// 0x4A:\n\t// 0x4B:\n\t// 0x4C:\n\t// 0x4E:\n\t// 0x4F:\n\t// 0x58: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t/*::[*/0x0034/*::]*/: { /* n:\"DDEObjName\", */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BIFF2XF\", */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BIFF2FONTCLR\", */ },\n\t/*::[*/0x0056/*::]*/: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t/*::[*/0x007e/*::]*/: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t/*::[*/0x007f/*::]*/: { /* n:\"ImData\", */ f:parse_ImData },\n\t/*::[*/0x0087/*::]*/: { /* n:\"Addin\", */ },\n\t/*::[*/0x0088/*::]*/: { /* n:\"Edg\", */ },\n\t/*::[*/0x0089/*::]*/: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t// 0x8F\n\t/*::[*/0x0091/*::]*/: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t/*::[*/0x0094/*::]*/: { /* n:\"LHRecord\", */ },\n\t/*::[*/0x0095/*::]*/: { /* n:\"LHNGraph\", */ },\n\t/*::[*/0x0096/*::]*/: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t/*::[*/0x00a9/*::]*/: { /* n:\"CoordList\", */ },\n\t/*::[*/0x00ab/*::]*/: { /* n:\"GCW\", */ },\n\t/*::[*/0x00bc/*::]*/: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t/*::[*/0x00bf/*::]*/: { /* n:\"ToolbarHdr\", */ },\n\t/*::[*/0x00c0/*::]*/: { /* n:\"ToolbarEnd\", */ },\n\t/*::[*/0x00c2/*::]*/: { /* n:\"AddMenu\", */ },\n\t/*::[*/0x00c3/*::]*/: { /* n:\"DelMenu\", */ },\n\t/*::[*/0x00d6/*::]*/: { /* n:\"RString\", */ f:parse_RString },\n\t/*::[*/0x00df/*::]*/: { /* n:\"UDDesc\", */ },\n\t/*::[*/0x00ea/*::]*/: { /* n:\"TabIdConf\", */ },\n\t/*::[*/0x0162/*::]*/: { /* n:\"XL5Modify\", */ },\n\t/*::[*/0x01a5/*::]*/: { /* n:\"FileSharing2\", */ },\n\t/*::[*/0x0206/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0218/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0223/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0231/*::]*/: { /* n:\"Font\", */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BIFF3XF\", */ },\n\t/*::[*/0x0406/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BIFF4XF\", */ },\n\t/*::[*/0x086d/*::]*/: { /* n:\"FeatInfo\", */ },\n\t/*::[*/0x0873/*::]*/: { /* n:\"FeatInfo11\", */ },\n\t/*::[*/0x0881/*::]*/: { /* n:\"SXAddl12\", */ },\n\t/*::[*/0x08c0/*::]*/: { /* n:\"AutoWebPub\", */ },\n\t/*::[*/0x08c1/*::]*/: { /* n:\"ListObj\", */ },\n\t/*::[*/0x08c2/*::]*/: { /* n:\"ListField\", */ },\n\t/*::[*/0x08c3/*::]*/: { /* n:\"ListDV\", */ },\n\t/*::[*/0x08c4/*::]*/: { /* n:\"ListCondFmt\", */ },\n\t/*::[*/0x08c5/*::]*/: { /* n:\"ListCF\", */ },\n\t/*::[*/0x08c6/*::]*/: { /* n:\"FMQry\", */ },\n\t/*::[*/0x08c7/*::]*/: { /* n:\"FMSQry\", */ },\n\t/*::[*/0x08c8/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x08c9/*::]*/: { /* n:\"LnExt\", */ },\n\t/*::[*/0x08ca/*::]*/: { /* n:\"MkrExt\", */ },\n\t/*::[*/0x08cb/*::]*/: { /* n:\"CrtCoopt\", */ },\n\t/*::[*/0x08d6/*::]*/: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/*::[*/0x7262/*::]*/: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = type;\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(/*:: len != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:?string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*//*::, opts*/) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, (cell.v||\"\").slice(0,255)));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref/*:string*/, rr = \"\", cols/*:Array<string>*/ = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i<wb.SheetNames.length;++i) if(wb.SheetNames[i] == o.sheet) idx=i;\n\tif(idx == 0 && !!o.sheet && wb.SheetNames[0] != o.sheet) throw new Error(\"Sheet not found: \" + o.sheet);\n\twrite_biff_rec(ba, (o.biff == 4 ? 0x0409 : (o.biff == 3 ? 0x0209 : 0x0009)), write_BOF(wb, 0x10, o));\n\t/* ... */\n\twrite_ws_biff2(ba, wb.Sheets[wb.SheetNames[idx]], idx, o, wb);\n\t/* ... */\n\twrite_biff_rec(ba, 0x000A);\n\treturn ba.end();\n}\n\nfunction write_FONTS_biff8(ba, data, opts) {\n\twrite_biff_rec(ba, 0x0031 /* Font */, write_Font({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Arial\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}, opts));\n}\n\n\nfunction write_FMTS_biff8(ba, NF/*:?SSFTable*/, opts) {\n\tif(!NF) return;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_biff_rec(ba, 0x041E /* Format */, write_Format(i, NF[i], opts));\n\t});\n}\n\nfunction write_FEAT(ba, ws) {\n\t/* [MS-XLS] 2.4.112 */\n\tvar o = new_buf(19);\n\to.write_shift(4, 0x867); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 1); o.write_shift(4, 0);\n\twrite_biff_rec(ba, 0x0867 /* FeatHdr */, o);\n\t/* [MS-XLS] 2.4.111 */\n\to = new_buf(39);\n\to.write_shift(4, 0x868); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 0); o.write_shift(4, 0);\n\to.write_shift(2, 1); o.write_shift(4, 4); o.write_shift(2, 0);\n\twrite_Ref8U(safe_decode_range(ws['!ref']||\"A1\"), o);\n\to.write_shift(4, 4);\n\twrite_biff_rec(ba, 0x0868 /* Feat */, o);\n}\n\nfunction write_CELLXFS_biff8(ba, opts) {\n\tfor(var i = 0; i < 16; ++i) write_biff_rec(ba, 0x00e0 /* XF */, write_XF({numFmtId:0, style:true}, 0, opts));\n\topts.cellXfs.forEach(function(c) {\n\t\twrite_biff_rec(ba, 0x00e0 /* XF */, write_XF(c, 0, opts));\n\t});\n}\n\nfunction write_ws_biff8_hlinks(ba/*:BufArray*/, ws) {\n\tfor(var R=0; R<ws['!links'].length; ++R) {\n\t\tvar HL = ws['!links'][R];\n\t\twrite_biff_rec(ba, 0x01b8 /* HLink */, write_HLink(HL));\n\t\tif(HL[1].Tooltip) write_biff_rec(ba, 0x0800 /* HLinkTooltip */, write_HLinkTooltip(HL));\n\t}\n\tdelete ws['!links'];\n}\n\nfunction write_ws_cols_biff8(ba, cols) {\n\tif(!cols) return;\n\tvar cnt = 0;\n\tcols.forEach(function(col, idx) {\n\t\tif(++cnt <= 256 && col) {\n\t\t\twrite_biff_rec(ba, 0x007d /* ColInfo */, write_ColInfo(col_obj_w(idx, col), idx));\n\t\t}\n\t});\n}\n\nfunction write_ws_biff8_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts) {\n\tvar os = 16 + get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.v == null && !cell.bf) {\n\t\twrite_biff_rec(ba, 0x0201 /* Blank */, write_XLSCell(R, C, os));\n\t\treturn;\n\t}\n\tif(cell.bf) write_biff_rec(ba, 0x0006 /* Formula */, write_Formula(cell, R, C, opts, os));\n\telse switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\t/* TODO: emit RK as appropriate */\n\t\t\twrite_biff_rec(ba, 0x0203 /* Number */, write_Number(R, C, v, os, opts));\n\t\t\tbreak;\n\t\tcase 'b': case 'e':\n\t\t\twrite_biff_rec(ba, 0x0205 /* BoolErr */, write_BoolErr(R, C, cell.v, os, opts, cell.t));\n\t\t\tbreak;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvar isst = get_sst_id(opts.Strings, cell.v, opts.revStrings);\n\t\t\t\twrite_biff_rec(ba, 0x00fd /* LabelSst */, write_LabelSst(R, C, isst, os, opts));\n\t\t\t} else write_biff_rec(ba, 0x0204 /* Label */, write_Label(R, C, (cell.v||\"\").slice(0,255), os, opts));\n\t\t\tbreak;\n\t\tdefault:\n\t\t\twrite_biff_rec(ba, 0x0201 /* Blank */, write_XLSCell(R, C, os));\n\t}\n}\n\n/* [MS-XLS] 2.1.7.20.5 */\nfunction write_ws_biff8(idx/*:number*/, opts, wb/*:Workbook*/) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheet/*:WBWSProp*/ = ((_WB.Sheets||[])[idx]||{}/*:any*/);\n\tvar dense = Array.isArray(ws);\n\tvar b8 = opts.biff == 8;\n\tvar ref/*:string*/, rr = \"\", cols/*:Array<string>*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array<WBWSProp>*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* BookBool */, writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* EOF */);\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* BoundSheet8 */, write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tstr = str.replace(/<!--.*?-->/g, \"\");\n\tvar mtch/*:any*/ = str.match(/<table/i);\n\tif(!mtch) throw new Error(\"Invalid HTML: could not find <table>\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?<tr[^>]*>)/i, \"<tr>\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array<Range>*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"<tr\") { ++R; if(opts.sheetRows && opts.sheetRows <= R) { --R; break; } C = 0; continue; }\n\t\tif(hd != \"<td\" && hd != \"<th\") continue;\n\t\tvar cells = row.split(/<\\/t[dh]>/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/<t[dh]/i)) continue;\n\t\t\tvar m = cell, cc = 0;\n\t\t\t/* TODO: parse styles etc */\n\t\t\twhile(m.charAt(0) == \"<\" && (cc = m.indexOf(\">\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t}\n\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array<Range>*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array<string>*/ = [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_cell({r:R,c:C});\n\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tvar sp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '<span contenteditable=\"true\">' + w + '</span>';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v;\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '<a href=\"' + cell.l.Target +'\">' + w + '</a>';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"<tr>\";\n\treturn preamble + oo.join(\"\") + \"</tr>\";\n}\n\nvar HTML_BEGIN = '<html><head><meta charset=\"utf-8\"/><title>SheetJS Table Export';\nvar HTML_END = '';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str.match(/[\\s\\S]*?<\\/table>/gi);\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find \");\n\tif(mtch.length == 1) return sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\treturn out.join(\"\") + '';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array*/ = [header];\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tout.push(make_html_preamble(ws, r, o));\n\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"
\" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar rows/*:HTMLCollection*/ = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array*/ = [], midx = 0;\n\tvar rowinfo/*:Array*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts/*:HTMLCollection*/ = (row.children/*:any*/);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)}/*:any*/);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\") o.l = ({ Target: l });\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(//g,\" \")\n\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t.replace(//g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\treturn [v];\n}\n\nvar number_formats_ods = {\n\t/* ods name: [short ssf fmt, long ssf fmt] */\n\tday: [\"d\", \"dd\"],\n\tmonth: [\"m\", \"mm\"],\n\tyear: [\"y\", \"yy\"],\n\thours: [\"h\", \"hh\"],\n\tminutes: [\"m\", \"mm\"],\n\tseconds: [\"s\", \"ss\"],\n\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\tera: [\"e\", \"ee\"],\n\t/* there is no native representation of LO \"Q\" format */\n\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n};\n\n\nfunction parse_content_xml(d/*:string*/, _opts)/*:Workbook*/ {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state/*:Array*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", '名称':\"\"}*/;\n\t\tvar rowtag/*:: = {'行号':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array*/ = [];\n\t\tvar ws = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\n\t\tvar textp = \"\", textpidx = 0, textptag/*:: = {}*/;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges/*:Array*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]/*:any*/) : ({}/*:any*/); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.t = 'd'; q.v = numdate(q.v); }\n\t\t\t\t\t\t\tq.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': // 3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) /*::(*/comment/*:: :any)*/.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]}/*:any*/);\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ',\n\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t'',\n\t\t''\n\t].join(\"\");\n\n\tvar payload = '' + master_styles + '';\n\n\treturn function wso(/*::wb, opts*/) {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text/*:string*/)/*:string*/ {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb/*:Workbook*/, i/*:number*//*::, opts*/)/*:string*/ {\n\t\t/* Section 9 Tables */\n\t\tvar o/*:Array*/ = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' \\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o/*:Array*/, wb) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") {\n\t\t\to.push('\\n');\n\t\t\to.push(write_meta_ods().replace(/office:document-meta/g, \"office:meta\"));\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('\\n');\n\t\t// o.push(' \\n');\n\t\twrite_automatic_styles_ods(o, wb);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb/*:any*/, opts/*:any*/) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest/*:Array >*/ = [];\n\tvar rdf/*:Array<[string, string]>*/ = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods(/*::wb, opts*/));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nfunction u8_to_dataview(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\nfunction u8str(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n}\nfunction stru8(str) {\n return typeof TextEncoder != \"undefined\" ? new TextEncoder().encode(str) : s2a(utf8write(str));\n}\nfunction u8contains(body, search) {\n outer:\n for (var L = 0; L <= body.length - search.length; ++L) {\n for (var j = 0; j < search.length; ++j)\n if (body[L + j] != search[j])\n continue outer;\n return true;\n }\n return false;\n}\nfunction u8concat(u8a) {\n var len = u8a.reduce(function(acc, x) {\n return acc + x.length;\n }, 0);\n var out = new Uint8Array(len);\n var off = 0;\n u8a.forEach(function(u8) {\n out.set(u8, off);\n off += u8.length;\n });\n return out;\n}\nfunction popcnt(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n}\nfunction readDecimal128LE(buf, offset) {\n var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;\n var mantissa = buf[offset + 14] & 1;\n for (var j = offset + 13; j >= offset; --j)\n mantissa = mantissa * 256 + buf[j];\n return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);\n}\nfunction writeDecimal128LE(buf, offset, value) {\n var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 20;\n var mantissa = value / Math.pow(10, exp - 6176);\n buf[offset + 15] |= exp >> 7;\n buf[offset + 14] |= (exp & 127) << 1;\n for (var i = 0; mantissa >= 1; ++i, mantissa /= 256)\n buf[offset + i] = mantissa & 255;\n buf[offset + 15] |= value >= 0 ? 0 : 128;\n}\nfunction parse_varint49(buf, ptr) {\n var l = ptr ? ptr[0] : 0;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n if (ptr)\n ptr[0] = l;\n return usz;\n}\nfunction write_varint49(v) {\n var usz = new Uint8Array(7);\n usz[0] = v & 127;\n var L = 1;\n sz:\n if (v > 127) {\n usz[L - 1] |= 128;\n usz[L] = v >> 7 & 127;\n ++L;\n if (v <= 16383)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 14 & 127;\n ++L;\n if (v <= 2097151)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 21 & 127;\n ++L;\n if (v <= 268435455)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 256 >>> 21 & 127;\n ++L;\n if (v <= 34359738367)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 65536 >>> 21 & 127;\n ++L;\n if (v <= 4398046511103)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 16777216 >>> 21 & 127;\n ++L;\n }\n return usz.slice(0, L);\n}\nfunction varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 28;\n }\n return i32;\n}\nfunction parse_shallow(buf) {\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var off = ptr[0];\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = Math.floor(num / 8);\n var len = 0;\n var res;\n if (num == 0)\n break;\n switch (type) {\n case 0:\n {\n var l = ptr[0];\n while (buf[ptr[0]++] >= 128)\n ;\n res = buf.slice(l, ptr[0]);\n }\n break;\n case 5:\n len = 4;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 1:\n len = 8;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 2:\n len = parse_varint49(buf, ptr);\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 3:\n case 4:\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { data: res, type: type };\n if (out[num] == null)\n out[num] = [v];\n else\n out[num].push(v);\n }\n return out;\n}\nfunction write_shallow(proto) {\n var out = [];\n proto.forEach(function(field, idx) {\n field.forEach(function(item) {\n if (!item.data)\n return;\n out.push(write_varint49(idx * 8 + item.type));\n if (item.type == 2)\n out.push(write_varint49(item.data.length));\n out.push(item.data);\n });\n });\n return u8concat(out);\n}\nfunction mappa(data, cb) {\n return (data == null ? void 0 : data.map(function(d) {\n return cb(d.data);\n })) || [];\n}\nfunction parse_iwa_file(buf) {\n var _a;\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf.slice(ptr[0], ptr[0] + fl)\n });\n ptr[0] += fl;\n });\n if ((_a = ai[3]) == null ? void 0 : _a[0])\n res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;\n out.push(res);\n }\n return out;\n}\nfunction write_iwa_file(ias) {\n var bufs = [];\n ias.forEach(function(ia) {\n var ai = [];\n ai[1] = [{ data: write_varint49(ia.id), type: 0 }];\n ai[2] = [];\n if (ia.merge != null)\n ai[3] = [{ data: write_varint49(+!!ia.merge), type: 0 }];\n var midata = [];\n ia.messages.forEach(function(mi) {\n midata.push(mi.data);\n mi.meta[3] = [{ type: 0, data: write_varint49(mi.data.length) }];\n ai[2].push({ data: write_shallow(mi.meta), type: 2 });\n });\n var aipayload = write_shallow(ai);\n bufs.push(write_varint49(aipayload.length));\n bufs.push(aipayload);\n midata.forEach(function(mid) {\n return bufs.push(mid);\n });\n });\n return u8concat(bufs);\n}\nfunction parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = [0];\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n while (ptr[0] < buf.length) {\n var tag = buf[ptr[0]] & 3;\n if (tag == 0) {\n var len = buf[ptr[0]++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[ptr[0]];\n if (c > 1)\n len |= buf[ptr[0] + 1] << 8;\n if (c > 2)\n len |= buf[ptr[0] + 2] << 16;\n if (c > 3)\n len |= buf[ptr[0] + 3] << 24;\n len >>>= 0;\n len++;\n ptr[0] += c;\n }\n chunks.push(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[ptr[0]] >> 2 & 7) + 4;\n offset = (buf[ptr[0]++] & 224) << 3;\n offset |= buf[ptr[0]++];\n } else {\n length = (buf[ptr[0]++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[ptr[0]] | buf[ptr[0] + 1] << 8;\n ptr[0] += 2;\n } else {\n offset = (buf[ptr[0]] | buf[ptr[0] + 1] << 8 | buf[ptr[0] + 2] << 16 | buf[ptr[0] + 3] << 24) >>> 0;\n ptr[0] += 4;\n }\n }\n chunks = [u8concat(chunks)];\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n if (offset > chunks[0].length)\n throw new Error(\"Invalid offset beyond length\");\n if (length >= offset) {\n chunks.push(chunks[0].slice(-offset));\n length -= offset;\n while (length >= chunks[chunks.length - 1].length) {\n chunks.push(chunks[chunks.length - 1]);\n length -= chunks[chunks.length - 1].length;\n }\n }\n chunks.push(chunks[0].slice(-offset, -offset + length));\n }\n }\n var o = u8concat(chunks);\n if (o.length != usz)\n throw new Error(\"Unexpected length: \".concat(o.length, \" != \").concat(usz));\n return o;\n}\nfunction decompress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push(parse_snappy_chunk(t, buf.slice(l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return u8concat(out);\n}\nfunction compress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var c = Math.min(buf.length - l, 268435455);\n var frame = new Uint8Array(4);\n out.push(frame);\n var usz = write_varint49(c);\n var L = usz.length;\n out.push(usz);\n if (c <= 60) {\n L++;\n out.push(new Uint8Array([c - 1 << 2]));\n } else if (c <= 256) {\n L += 2;\n out.push(new Uint8Array([240, c - 1 & 255]));\n } else if (c <= 65536) {\n L += 3;\n out.push(new Uint8Array([244, c - 1 & 255, c - 1 >> 8 & 255]));\n } else if (c <= 16777216) {\n L += 4;\n out.push(new Uint8Array([248, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255]));\n } else if (c <= 4294967296) {\n L += 5;\n out.push(new Uint8Array([252, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255, c - 1 >>> 24 & 255]));\n }\n out.push(buf.slice(l, l + c));\n L += c;\n frame[0] = 0;\n frame[1] = L & 255;\n frame[2] = L >> 8 & 255;\n frame[3] = L >> 16 & 255;\n l += c;\n }\n return u8concat(out);\n}\nfunction parse_old_storage(buf, sst, rsst, v) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var data_offset = (v > 1 ? 12 : 8) + popcnt(flags & (v > 1 ? 3470 : 398)) * 4;\n var ridx = -1, sidx = -1, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 512) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n data_offset += popcnt(flags & (v > 1 ? 12288 : 4096)) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n var ret;\n switch (buf[2]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else if (sidx > -1)\n ret = { t: \"s\", v: sst[sidx] };\n else if (!isNaN(ieee))\n ret = { t: \"n\", v: ieee };\n else\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction parse_new_storage(buf, sst, rsst) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(8, true);\n var data_offset = 12;\n var ridx = -1, sidx = -1, d128 = NaN, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 1) {\n d128 = readDecimal128LE(buf, data_offset);\n data_offset += 16;\n }\n if (flags & 2) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 4) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n if (flags & 8) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 16) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n var ret;\n switch (buf[1]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: d128 };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n break;\n case 10:\n ret = { t: \"n\", v: d128 };\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction write_new_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 5;\n switch (cell.t) {\n case \"n\":\n out[1] = 2;\n writeDecimal128LE(out, l, cell.v);\n flags |= 1;\n l += 16;\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 2;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[1] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 8;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, flags, true);\n return out.slice(0, l);\n}\nfunction write_old_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 3;\n switch (cell.t) {\n case \"n\":\n out[2] = 2;\n dv.setFloat64(l, cell.v, true);\n flags |= 32;\n l += 8;\n break;\n case \"b\":\n out[2] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 32;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[2] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 16;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(4, flags, true);\n return out.slice(0, l);\n}\nfunction parse_cell_storage(buf, sst, rsst) {\n switch (buf[0]) {\n case 0:\n case 1:\n case 2:\n case 3:\n return parse_old_storage(buf, sst, rsst, buf[0]);\n case 5:\n return parse_new_storage(buf, sst, rsst);\n default:\n throw new Error(\"Unsupported payload version \".concat(buf[0]));\n }\n}\nfunction parse_TSP_Reference(buf) {\n var pb = parse_shallow(buf);\n return parse_varint49(pb[1][0].data);\n}\nfunction write_TSP_Reference(idx) {\n var out = [];\n out[1] = [{ type: 0, data: write_varint49(idx) }];\n return write_shallow(out);\n}\nfunction parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var le = parse_shallow(entry.data);\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_TSP_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_TSP_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n data[key] = tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\");\n }\n break;\n }\n });\n return data;\n}\nfunction parse_TST_TileRowInfo(u8, type) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var cnt = varint_to_i32(pb[2][0].data) >>> 0;\n var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;\n var used_storage_u8, used_storage;\n if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {\n used_storage_u8 = (_f = (_e = pb[7]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data;\n used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;\n } else if (((_j = (_i = pb[4]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data) && type != 1) {\n used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;\n used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;\n } else\n throw \"NUMBERS Tile missing \".concat(type, \" cell storage\");\n var width = wide_offsets ? 4 : 1;\n var used_storage_offsets = u8_to_dataview(used_storage_u8);\n var offsets = [];\n for (var C = 0; C < used_storage_u8.length / 2; ++C) {\n var off = used_storage_offsets.getUint16(C * 2, true);\n if (off < 65535)\n offsets.push([C, off]);\n }\n if (offsets.length != cnt)\n throw \"Expected \".concat(cnt, \" cells, found \").concat(offsets.length);\n var cells = [];\n for (C = 0; C < offsets.length - 1; ++C)\n cells[offsets[C][0]] = used_storage.subarray(offsets[C][1] * width, offsets[C + 1][1] * width);\n if (offsets.length >= 1)\n cells[offsets[offsets.length - 1][0]] = used_storage.subarray(offsets[offsets.length - 1][1] * width);\n return { R: R, cells: cells };\n}\nfunction parse_TST_Tile(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var storage = ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) ? varint_to_i32(pb[7][0].data) >>> 0 > 0 ? 1 : 0 : -1;\n var ri = mappa(pb[5], function(u8) {\n return parse_TST_TileRowInfo(u8, storage);\n });\n return {\n nrows: varint_to_i32(pb[4][0].data) >>> 0,\n data: ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, [])\n };\n}\nfunction parse_TST_TableModelArchive(M, root, ws) {\n var _a;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n var store = parse_shallow(pb[4][0].data);\n var sst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[4][0].data)][0]);\n var rsst = ((_a = store[17]) == null ? void 0 : _a[0]) ? parse_TST_TableDataList(M, M[parse_TSP_Reference(store[17][0].data)][0]) : [];\n var tile = parse_shallow(store[3][0].data);\n var _R = 0;\n tile[1].forEach(function(t) {\n var tl = parse_shallow(t.data);\n var ref = M[parse_TSP_Reference(tl[2][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype));\n var _tile = parse_TST_Tile(M, ref);\n _tile.data.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var addr = encode_cell({ r: _R + R, c: C });\n var res = parse_cell_storage(buf, sst, rsst);\n if (res)\n ws[addr] = res;\n });\n });\n _R += _tile.nrows;\n });\n}\nfunction parse_TST_TableInfoArchive(M, root) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n var tableref = M[parse_TSP_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out);\n return out;\n}\nfunction parse_TN_SheetArchive(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_TSP_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m));\n });\n });\n return out;\n}\nfunction parse_TN_DocumentArchive(M, root) {\n var out = book_new();\n var pb = parse_shallow(root.data);\n var sheetoffs = mappa(pb[1], parse_TSP_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_TN_SheetArchive(M, m);\n root2.sheets.forEach(function(sheet, idx) {\n book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + \"_\" + idx, true);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n return out;\n}\nfunction parse_numbers_iwa(cfb) {\n var _a, _b, _c, _d;\n var M = {}, indices = [];\n cfb.FullPaths.forEach(function(p) {\n if (p.match(/\\.iwpv2/))\n throw new Error(\"Unsupported password protection\");\n });\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n var o;\n try {\n o = decompress_iwa_file(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa_file(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n M[packet.id] = packet.messages;\n indices.push(packet.id);\n });\n });\n if (!indices.length)\n throw new Error(\"File has no messages\");\n var docroot = ((_d = (_c = (_b = (_a = M == null ? void 0 : M[1]) == null ? void 0 : _a[0]) == null ? void 0 : _b.meta) == null ? void 0 : _c[1]) == null ? void 0 : _d[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1 && M[1][0];\n if (!docroot)\n indices.forEach(function(idx) {\n M[idx].forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_TN_DocumentArchive(M, docroot);\n}\nfunction write_tile_row(tri, data, SST) {\n var _a, _b, _c, _d;\n if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0]))\n throw \"Mutation only works on post-BNC storages!\";\n var wide_offsets = ((_d = (_c = tri[8]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && varint_to_i32(tri[8][0].data) > 0 || false;\n if (wide_offsets)\n throw \"Math only works with normal offsets\";\n var cnt = 0;\n var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];\n var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];\n for (var C = 0; C < data.length; ++C) {\n if (data[C] == null) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535);\n continue;\n }\n dv.setUint16(C * 2, last_offset, true);\n _dv.setUint16(C * 2, _last_offset, true);\n var celload, _celload;\n switch (typeof data[C]) {\n case \"string\":\n celload = write_new_storage({ t: \"s\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"s\", v: data[C] }, SST);\n break;\n case \"number\":\n celload = write_new_storage({ t: \"n\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"n\", v: data[C] }, SST);\n break;\n case \"boolean\":\n celload = write_new_storage({ t: \"b\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"b\", v: data[C] }, SST);\n break;\n default:\n throw new Error(\"Unsupported value \" + data[C]);\n }\n cell_storage.push(celload);\n last_offset += celload.length;\n _cell_storage.push(_celload);\n _last_offset += _celload.length;\n ++cnt;\n }\n tri[2][0].data = write_varint49(cnt);\n for (; C < tri[7][0].data.length / 2; ++C) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535, true);\n }\n tri[6][0].data = u8concat(cell_storage);\n tri[3][0].data = u8concat(_cell_storage);\n return cnt;\n}\nfunction write_numbers_iwa(wb, opts) {\n if (!opts || !opts.numbers)\n throw new Error(\"Must pass a `numbers` option -- check the README\");\n var ws = wb.Sheets[wb.SheetNames[0]];\n if (wb.SheetNames.length > 1)\n console.error(\"The Numbers writer currently writes only the first table\");\n var range = decode_range(ws[\"!ref\"]);\n range.s.r = range.s.c = 0;\n var trunc = false;\n if (range.e.c > 9) {\n trunc = true;\n range.e.c = 9;\n }\n if (range.e.r > 49) {\n trunc = true;\n range.e.r = 49;\n }\n if (trunc)\n console.error(\"The Numbers writer is currently limited to \".concat(encode_range(range)));\n var data = sheet_to_json(ws, { range: range, header: 1 });\n var SST = [\"~Sh33tJ5~\"];\n data.forEach(function(row) {\n return row.forEach(function(cell) {\n if (typeof cell == \"string\")\n SST.push(cell);\n });\n });\n var dependents = {};\n var indices = [];\n var cfb = CFB.read(opts.numbers, { type: \"base64\" });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (fi.type != 2)\n return;\n if (!fi.name.match(/\\.iwa/))\n return;\n var old_content = fi.content;\n var raw1 = decompress_iwa_file(old_content);\n var x2 = parse_iwa_file(raw1);\n x2.forEach(function(packet2) {\n indices.push(packet2.id);\n dependents[packet2.id] = { deps: [], location: fp, type: varint_to_i32(packet2.messages[0].meta[1][0].data) };\n });\n });\n indices.sort(function(x2, y2) {\n return x2 - y2;\n });\n var indices_varint = indices.filter(function(x2) {\n return x2 > 1;\n }).map(function(x2) {\n return [x2, write_varint49(x2)];\n });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (!fi.name.match(/\\.iwa/))\n return;\n var x2 = parse_iwa_file(decompress_iwa_file(fi.content));\n x2.forEach(function(ia) {\n ia.messages.forEach(function(m) {\n indices_varint.forEach(function(ivi) {\n if (ia.messages.some(function(mess) {\n return varint_to_i32(mess.meta[1][0].data) != 11006 && u8contains(mess.data, ivi[1]);\n })) {\n dependents[ivi[0]].deps.push(ia.id);\n }\n });\n });\n });\n });\n function get_unique_msgid() {\n for (var i = 927262; i < 2e6; ++i)\n if (!dependents[i])\n return i;\n throw new Error(\"Too many messages\");\n }\n var entry = CFB.find(cfb, dependents[1].location);\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var docroot;\n for (var xi = 0; xi < x.length; ++xi) {\n var packet = x[xi];\n if (packet.id == 1)\n docroot = packet;\n }\n var sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n var pb = parse_shallow(docroot.messages[0].data);\n {\n pb[6][0].data = write_varint49(range.e.r + 1);\n pb[7][0].data = write_varint49(range.e.c + 1);\n var cruidsref = parse_TSP_Reference(pb[46][0].data);\n var oldbucket = CFB.find(cfb, dependents[cruidsref].location);\n var _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n for (var j = 0; j < _x.length; ++j) {\n if (_x[j].id == cruidsref)\n break;\n }\n if (_x[j].id != cruidsref)\n throw \"Bad ColumnRowUIDMapArchive\";\n var cruids = parse_shallow(_x[j].messages[0].data);\n cruids[1] = [];\n cruids[2] = [], cruids[3] = [];\n for (var C = 0; C <= range.e.c; ++C) {\n var uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(C + 420690) }];\n cruids[1].push({ type: 2, data: write_shallow(uuid) });\n cruids[2].push({ type: 0, data: write_varint49(C) });\n cruids[3].push({ type: 0, data: write_varint49(C) });\n }\n cruids[4] = [];\n cruids[5] = [], cruids[6] = [];\n for (var R = 0; R <= range.e.r; ++R) {\n uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(R + 726270) }];\n cruids[4].push({ type: 2, data: write_shallow(uuid) });\n cruids[5].push({ type: 0, data: write_varint49(R) });\n cruids[6].push({ type: 0, data: write_varint49(R) });\n }\n _x[j].messages[0].data = write_shallow(cruids);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n delete pb[46];\n var store = parse_shallow(pb[4][0].data);\n {\n store[7][0].data = write_varint49(range.e.r + 1);\n var row_headers = parse_shallow(store[1][0].data);\n var row_header_ref = parse_TSP_Reference(row_headers[2][0].data);\n oldbucket = CFB.find(cfb, dependents[row_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != row_header_ref)\n throw \"Bad HeaderStorageBucket\";\n var base_bucket = parse_shallow(_x[0].messages[0].data);\n for (R = 0; R < data.length; ++R) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(R);\n _bucket[4][0].data = write_varint49(data[R].length);\n base_bucket[2][R] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var col_header_ref = parse_TSP_Reference(store[2][0].data);\n oldbucket = CFB.find(cfb, dependents[col_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != col_header_ref)\n throw \"Bad HeaderStorageBucket\";\n base_bucket = parse_shallow(_x[0].messages[0].data);\n for (C = 0; C <= range.e.c; ++C) {\n _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(C);\n _bucket[4][0].data = write_varint49(range.e.r + 1);\n base_bucket[2][C] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var sstref = parse_TSP_Reference(store[4][0].data);\n (function() {\n var sentry = CFB.find(cfb, dependents[sstref].location);\n var sx = parse_iwa_file(decompress_iwa_file(sentry.content));\n var sstroot;\n for (var sxi = 0; sxi < sx.length; ++sxi) {\n var packet2 = sx[sxi];\n if (packet2.id == sstref)\n sstroot = packet2;\n }\n var sstdata = parse_shallow(sstroot.messages[0].data);\n {\n sstdata[3] = [];\n var newsst = [];\n SST.forEach(function(str, i) {\n newsst[1] = [{ type: 0, data: write_varint49(i) }];\n newsst[2] = [{ type: 0, data: write_varint49(1) }];\n newsst[3] = [{ type: 2, data: stru8(str) }];\n sstdata[3].push({ type: 2, data: write_shallow(newsst) });\n });\n }\n sstroot.messages[0].data = write_shallow(sstdata);\n var sy = write_iwa_file(sx);\n var raw32 = compress_iwa_file(sy);\n sentry.content = raw32;\n sentry.size = sentry.content.length;\n })();\n var tile = parse_shallow(store[3][0].data);\n {\n var t = tile[1][0];\n delete tile[2];\n var tl = parse_shallow(t.data);\n {\n var tileref = parse_TSP_Reference(tl[2][0].data);\n (function() {\n var tentry = CFB.find(cfb, dependents[tileref].location);\n var tx = parse_iwa_file(decompress_iwa_file(tentry.content));\n var tileroot;\n for (var sxi = 0; sxi < tx.length; ++sxi) {\n var packet2 = tx[sxi];\n if (packet2.id == tileref)\n tileroot = packet2;\n }\n var tiledata = parse_shallow(tileroot.messages[0].data);\n {\n delete tiledata[6];\n delete tile[7];\n var rowload = new Uint8Array(tiledata[5][0].data);\n tiledata[5] = [];\n var cnt = 0;\n for (var R2 = 0; R2 <= range.e.r; ++R2) {\n var tilerow = parse_shallow(rowload);\n cnt += write_tile_row(tilerow, data[R2], SST);\n tilerow[1][0].data = write_varint49(R2);\n tiledata[5].push({ data: write_shallow(tilerow), type: 2 });\n }\n tiledata[1] = [{ type: 0, data: write_varint49(range.e.c + 1) }];\n tiledata[2] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n tiledata[3] = [{ type: 0, data: write_varint49(cnt) }];\n tiledata[4] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n }\n tileroot.messages[0].data = write_shallow(tiledata);\n var ty = write_iwa_file(tx);\n var raw32 = compress_iwa_file(ty);\n tentry.content = raw32;\n tentry.size = tentry.content.length;\n })();\n }\n t.data = write_shallow(tl);\n }\n store[3][0].data = write_shallow(tile);\n }\n pb[4][0].data = write_shallow(store);\n }\n docroot.messages[0].data = write_shallow(pb);\n var y = write_iwa_file(x);\n var raw3 = compress_iwa_file(y);\n entry.content = raw3;\n entry.size = entry.content.length;\n return cfb;\n}\nfunction fix_opts_func(defaults/*:Array >*/)/*:{(o:any):void}*/ {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nfunction fix_read_opts(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\n\nfunction fix_write_opts(opts) {\nfix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\nfunction get_sheet_type(n/*:string*/)/*:string*/ {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path/*:string*/, relsPath/*:string*/, sheet, idx/*:number*/, sheetRels, sheets, stype/*:string*/, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments and threaded comments */\n\t\tvar tcomments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tvar dfile = \"\";\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tvar comments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments, false);\n\t\t\t}\n\t\t\tif(sheetRels[sheet][n].Type == RELS.TCMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\ttcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile, true), opts));\n\t\t\t}\n\t\t});\n\t\tif(tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x/*:string*/)/*:string*/ { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip/*:ZIP*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tmake_ssf();\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof parse_numbers_iwa != \"undefined\") {\n\t\t\tif(zip.FileIndex) return parse_numbers_iwa(zip);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn parse_numbers_iwa(_zip);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')/*:?any*/));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({}/*:any*/);\n\tvar styles = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({}/*:any*/);\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({}/*:any*/);\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, \"s5s\"));\n\n\tif((dir.metadata || []).length >= 1) {\n\t\t/* TODO: MDX and other types of metadata */\n\t\topts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])),dir.metadata[0],opts);\n\t}\n\n\tif((dir.people || []).length >= 1) {\n\t\topts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])),opts);\n\t}\n\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: dup(table_fmt)\n\t}/*:any*/);\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\n/*:: declare var decrypt_agile:any; */\n\tif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\n/*:: declare var decrypt_std76:any; */\n\tif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(opts.bookType == \"numbers\") return write_numbers_iwa(wb, opts);\n\tif(opts.bookType == \"xlsb\") return write_zip_xlsxb(wb, opts);\n\treturn write_zip_xlsx(wb, opts);\n}\n\n/* XLSX and XLSB writing are very similar. Originally they were unified in one\n export function. This is horrible for tree shaking in the common case (most\n applications need to export files in one format) so this function supports\n both formats while write_zip_xlsx only handles XLSX */\nfunction write_zip_xlsxb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta(f));\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction write_zip_xlsx(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_xml(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".\" + wbext;\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".\" + wbext, RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_xml(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_xml(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_xml(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_xml(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_xml());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array*/ {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64_decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data/*:string*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64_decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\to.type = \"binary\";\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64_decode(d);\n\td = $cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data/*:string*/)/*:string*/ {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treset_cp();\n\tvar o = opts||{};\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tif(typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && !o.type) o.type = typeof Deno !== \"undefined\" ? \"buffer\" : \"array\";\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); if(typeof Uint8Array !== 'undefined' && !has_buf) o.type = \"array\"; }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t}\n\tif(DBF_SUPPORTED_VERSIONS.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb/*:CFBContainer*/, o/*:WriteOpts*/)/*:any*/ {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\n/*:: declare var encrypt_agile:any; */\nfunction write_zip_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_typeXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip_xlsx(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_denouement(z/*:any*/, o/*:?WriteOpts*/)/*:any*/ {\n\tvar oopts = {};\n\tvar ftype = has_buf ? \"nodebuffer\" : (typeof Uint8Array !== \"undefined\" ? \"array\" : \"string\");\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = ftype;\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = ftype; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: /*::(*/{\"nodebuffer\": \"buffer\", \"string\": \"binary\"}/*:: :any)*/[oopts.type] || oopts.type, compression: !!o.compression}) : z.generate(oopts);\n\tif(typeof Deno !== \"undefined\") {\n\t\tif(typeof out == \"string\") {\n\t\t\tif(o.type == \"binary\" || o.type == \"base64\") return out;\n\t\t\tout = new Uint8Array(s2ab(out));\n\t\t}\n\t}\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(/*::(*/out/*:: :any)*/) : out;\n}\n\nfunction write_cfb_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = opts||{};\n\tvar cfb/*:CFBContainer*/ = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out/*:string*/, opts/*:WriteOpts*/, bom/*:?string*/)/*:any*/ {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse if(typeof TextEncoder !== \"undefined\") return new TextEncoder().encode(o);\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out/*:string*/, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64_encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSyncXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSyncXLSX(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\treturn write_zip_typeXLSX(wb, o);\n}\n\nfunction writeSync(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSync(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\tvar idx = 0;\n\tif(o.sheet) {\n\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t}\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'txt': return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'csv': return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'dbf': return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'prn': return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'rtf': return write_string_type(RTF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'eth': return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'numbers':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o/*:WriteFileOpts*/) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileSyncXLSX(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSyncXLSX(wb, o);\n}\n\n\nfunction writeFileAsync(filename/*:string*/, wb/*:Workbook*/, opts/*:?WriteFileOpts*/, cb/*:?(e?:ErrnoError)=>void*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts/*:any*/);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\n/*::\ntype MJRObject = {\n\trow: any;\n\tisempty: boolean;\n};\n*/\nfunction make_json_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, header/*:number*/, hdr/*:Array*/, dense/*:boolean*/, o/*:Sheet2JSONOpts*/)/*:MJRObject*/ {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row/*:any*/ = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw && (val.t !== \"n\" || (val.t === \"n\" && o.rawNumbers !== false)) ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar out/*:Array*/ = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, fs/*:number*/, rs/*:number*/, FS/*:string*/, o/*:Sheet2CSVOpts*/)/*:?string*/ {\n\tvar isempty = true;\n\tvar row/*:Array*/ = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar w = 0;\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tif(row || (o.blankrows !== false)) out.push((w++ ? RS : \"\") + row);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof $cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = $cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet/*:Worksheet*/)/*:Array*/ {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols/*:Array*/ = [], C;\n\tvar cmds/*:Array*/ = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws/*:Worksheet*/ = _ws || ({}/*:any*/);\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell/*:Cell*/;\n\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr/*:Array*/ = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R/*:number*/) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = ws_get_cell_stub(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || table_fmt[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js/*:Array*/, opts)/*:Worksheet*/ { return sheet_add_json(null, js, opts); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws/*:Worksheet*/, R, C/*:?number*/)/*:Cell*/ {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb/*:Workbook*/, sh/*:number|string*/) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nfunction book_new()/*:Workbook*/ {\n\treturn { SheetNames: [], Sheets: {} };\n}\n\n/* add a worksheet to the end of a given workbook */\nfunction book_append_sheet(wb/*:Workbook*/, ws/*:Worksheet*/, name/*:?string*/, roll/*:?boolean*/)/*:string*/ {\n\tvar i = 1;\n\tif(!name) for(; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tif(roll && wb.SheetNames.indexOf(name) >= 0) {\n\t\tvar m = name.match(/(^.*?)(\\d+)$/);\n\t\ti = m && +m[2] || 0;\n\t\tvar root = m && m[1] || name;\n\t\tfor(++i; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = root + i) == -1) break;\n\t}\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n\treturn name;\n}\n\n/* set sheet visibility (visible/hidden/very hidden) */\nfunction book_set_sheet_visibility(wb/*:Workbook*/, sh/*:number|string*/, vis/*:number*/) {\n\tif(!wb.Workbook) wb.Workbook = {};\n\tif(!wb.Workbook.Sheets) wb.Workbook.Sheets = [];\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tif(!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n}\n\n/* set number format */\nfunction cell_set_number_format(cell/*:Cell*/, fmt/*:string|number*/) {\n\tcell.z = fmt;\n\treturn cell;\n}\n\n/* set cell hyperlink */\nfunction cell_set_hyperlink(cell/*:Cell*/, target/*:string*/, tooltip/*:?string*/) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target }/*:Hyperlink*/);\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n}\nfunction cell_set_internal_link(cell/*:Cell*/, range/*:string*/, tooltip/*:?string*/) { return cell_set_hyperlink(cell, \"#\" + range, tooltip); }\n\n/* add to cell comments */\nfunction cell_add_comment(cell/*:Cell*/, text/*:string*/, author/*:?string*/) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n}\n\n/* set array formula and flush related cells */\nfunction sheet_set_array_formula(ws/*:Worksheet*/, range, formula/*:string*/, dynamic/*:boolean*/) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) {\n\t\t\tcell.f = formula;\n\t\t\tif(dynamic) cell.D = true;\n\t\t}\n\t}\n\treturn ws;\n}\n\nvar utils/*:any*/ = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: sheet_to_html,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json,\n\tsheet_get_cell: ws_get_cell_stub,\n\tbook_new: book_new,\n\tbook_append_sheet: book_append_sheet,\n\tbook_set_sheet_visibility: book_set_sheet_visibility,\n\tcell_set_number_format: cell_set_number_format,\n\tcell_set_hyperlink: cell_set_hyperlink,\n\tcell_set_internal_link: cell_set_internal_link,\n\tcell_add_comment: cell_add_comment,\n\tsheet_set_array_formula: sheet_set_array_formula,\n\tconsts: {\n\t\tSHEET_VISIBLE: 0,\n\t\tSHEET_HIDDEN: 1,\n\t\tSHEET_VERY_HIDDEN: 2\n\t}\n};\n\nvar _Readable;\nfunction set_readable(R) { _Readable = R; }\n\nfunction write_csv_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable();\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row/*:?string*/ = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar R = r.s.r;\n\tvar BOM = false, w = 0;\n\tstream._read = function() {\n\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\twhile(R <= r.e.r) {\n\t\t\t++R;\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\tif(row != null) {\n\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\tif(row || (o.blankrows !== false)) return stream.push((w++ ? RS : \"\") + row);\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nfunction write_html_stream(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*/) {\n\tvar stream = _Readable();\n\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tstream.push(header);\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tstream.push(make_html_preamble(ws, r, o));\n\tvar R = r.s.r;\n\tvar end = false;\n\tstream._read = function() {\n\t\tif(R > r.e.r) {\n\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\treturn stream.push(null);\n\t\t}\n\t\twhile(R <= r.e.r) {\n\t\t\tstream.push(make_html_row(ws, r, R, o));\n\t\t\t++R;\n\t\t\tbreak;\n\t\t}\n\t};\n\treturn stream;\n}\n\nfunction write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable({objectMode:true});\n\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tR = r.s.r + offset;\n\tstream._read = function() {\n\t\twhile(R <= r.e.r) {\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t++R;\n\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\tstream.push(row.row);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nvar __stream = {\n\tto_json: write_json_stream,\n\tto_html: write_html_stream,\n\tto_csv: write_csv_stream,\n set_readable: set_readable\n};\nexport const version = XLSX.version;\nexport {\n\tparse_xlscfb,\n\tparse_zip,\n\treadSync as read,\n\treadFileSync as readFile,\n\treadFileSync,\n\twriteSync as write,\n\twriteFileSync as writeFile,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteSyncXLSX as writeXLSX,\n\twriteFileSyncXLSX as writeFileXLSX,\n\tutils,\n\t__stream as stream,\n\tSSF,\n\tCFB\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","export enum CompanyType {\n CompanyAzureAd = \"CompanyAzureAd\",\n}\n","\n\n\n","import type { Ref } from \"vue\";\nimport type { AzureAd, AzureAdServicePrincipal } from \"@/models/azureAd\";\nimport type { Company } from \"@/models/company\";\nimport { AddToSlackInfo } from \"@/models/slackInformation\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\n\nconst BASE_URL = \"/api/company/settings\";\nconst { put, get, appBaseUrl, loading } = useHttpClient();\n\ninterface UseCompanySettingsReturn {\n getCompany: () => Promise;\n downloadChatBotUrl: () => string;\n updateCompany: (name: string, language: string, description: string | undefined, feedbackEmail: string | undefined) => Promise;\n getAzureInformation: () => Promise;\n getSlackInformation: () => Promise;\n updateAzureInformation: (azureServicePrincipal: AzureAdServicePrincipal) => Promise;\n loading: Ref;\n}\n\nexport default (): UseCompanySettingsReturn => {\n const getCompany = (): Promise => get(BASE_URL);\n const updateCompany = (name: string, language: string, description: string | undefined, feedbackEmail: string | undefined) =>\n put(BASE_URL, { name, language, description, feedbackEmail });\n const getAzureInformation = (): Promise => get(`${BASE_URL}/azure`);\n const getSlackInformation = (): Promise => get(`${BASE_URL}/slack`);\n const updateAzureInformation = (azureServicePrincipal: AzureAdServicePrincipal) => put(`${BASE_URL}/azure`, azureServicePrincipal);\n const downloadChatBotUrl = (): string => `${appBaseUrl}${BASE_URL}/chatbot`;\n\n return { getCompany, updateCompany, getAzureInformation, updateAzureInformation, downloadChatBotUrl, getSlackInformation, loading };\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","export default \"__VITE_ASSET__ffa6963a__\"","\n\n\n","export default \"__VITE_ASSET__10926f34__\"","\n\n\n","export enum SkillStatus {\n Pending = \"Pending\",\n Approved = \"Approved\",\n}\n","\n\n\n","\n\n","\n\n\n","\n\n\n","import AdminAIAssistantOverviewView from \"@/views/admin/ai-assistant/AdminAIAssistantOverviewView.vue\";\nimport AdminAIAssistantQuestionsView from \"@/views/admin/ai-assistant/AdminAIAssistantQuestionsView.vue\";\nimport AdminAIAssistantView from \"@/views/admin/ai-assistant/AdminAIAssistantView.vue\";\nimport AdminCompanyGoalsDetailsView from \"@/views/admin/company-goals/AdminCompanyGoalsDetailsView.vue\";\nimport AdminCompanyGoalsOverviewView from \"@/views/admin/company-goals/AdminCompanyGoalsOverviewView.vue\";\nimport AdminCompanyGoalsView from \"@/views/admin/company-goals/AdminCompanyGoalsView.vue\";\nimport AdminCompanySettingsView from \"@/views/admin/company-settings/AdminCompanySettingsView.vue\";\nimport AdminDashboardOverviewView from \"@/views/admin/dashboard/AdminDashboardOverviewView.vue\";\nimport AdminDashboardView from \"@/views/admin/dashboard/AdminDashboardView.vue\";\nimport AdminInternalPromotionsView from \"@/views/admin/internal-promotions/AdminInternalPromotionsView.vue\";\nimport AdminLayout from \"@/layout/admin/AdminLayout.vue\";\nimport AdminLearningView from \"@/views/admin/learning/AdminLearningView.vue\";\nimport AdminTalentDetectionView from \"@/views/admin/talent-detection/AdminTalentDetectionView.vue\";\nimport AdminCompanyEmployeeGroupEditorView from \"@/views/admin/company-settings/company-employee-groups/AdminCompanyEmployeeGroupEditorView.vue\";\nimport AdminCompanyEmployeeGroupManageView from \"@/views/admin/company-settings/company-employee-groups/AdminCompanyEmployeeGroupManageView.vue\";\nimport EmployeeProfileView from \"@/views/shared/employee/EmployeeProfileView.vue\";\nimport AdminCompanySettingsOverview from \"@/views/admin/company-settings/AdminCompanySettingsOverview.vue\";\n\nexport default [\n {\n path: \"/admin\",\n component: AdminLayout,\n children: [\n {\n path: \"\",\n name: \"default-admin\",\n redirect: \"/admin/dashboard/overview\",\n },\n {\n path: \"dashboard\",\n name: \"dashboard-admin\",\n component: AdminDashboardView,\n children: [\n {\n path: \"overview\",\n name: \"dashboard-admin-overview\",\n component: AdminDashboardOverviewView,\n },\n {\n path: \"employees/:employeeId\",\n name: \"dashboard-admin-employee\",\n props: {\n backRoute: \"dashboard-admin-overview\",\n },\n component: EmployeeProfileView,\n },\n {\n path: \"\",\n name: \"dashboard-admin-default\",\n redirect: \"/admin/dashboard/overview\",\n },\n ],\n },\n {\n path: \"ai-assistant\",\n name: \"ai-assistant-admin\",\n component: AdminAIAssistantView,\n children: [\n {\n path: \"overview\",\n name: \"ai-assistant-admin-overview\",\n component: AdminAIAssistantOverviewView,\n },\n {\n path: \"questions\",\n name: \"ai-assistant-admin-questions\",\n component: AdminAIAssistantQuestionsView,\n },\n {\n path: \"\",\n name: \"default-ai-assistant-admin\",\n redirect: \"/admin/ai-assistant/overview\",\n },\n ],\n },\n {\n path: \"corporate-goals\",\n name: \"corporate-goals-admin\",\n component: AdminCompanyGoalsView,\n children: [\n {\n path: \"\",\n name: \"corporate-goals-admin-overview\",\n component: AdminCompanyGoalsOverviewView,\n },\n {\n path: \"goal/:goalId\",\n name: \"corporate-goals-admin-goal\",\n component: AdminCompanyGoalsDetailsView,\n },\n ],\n },\n {\n path: \"internal-promotions\",\n name: \"internal-promotions-admin\",\n component: AdminInternalPromotionsView,\n },\n {\n path: \"talent-detection\",\n name: \"talent-detection-admin\",\n component: AdminTalentDetectionView,\n },\n {\n path: \"skills-management\",\n name: \"skills-admin\",\n redirect: \"/admin/company-settings/overview/SkillsManagement\",\n },\n {\n path: \"learning\",\n name: \"learning-admin\",\n component: AdminLearningView,\n },\n {\n path: \"company-settings\",\n name: \"company-settings-admin\",\n component: AdminCompanySettingsView,\n children: [\n {\n path: \"overview/:tabId?\",\n name: \"company-settings-overview\",\n component: AdminCompanySettingsOverview,\n },\n {\n path: \"company-employee-groups/editor/:backTabId/:groupId?\",\n name: \"company-settings-company-employee-groups-editor\",\n component: AdminCompanyEmployeeGroupEditorView,\n },\n {\n path: \"company-employee-groups/manage/:backTabId/:groupId?\",\n name: \"company-settings-company-employee-groups-group-manage\",\n component: AdminCompanyEmployeeGroupManageView,\n },\n {\n path: \"\",\n name: \"default-company-settings\",\n redirect: \"/admin/company-settings/overview\",\n },\n ],\n },\n ],\n meta: {\n requiresAuth: true,\n requiresAdministrator: true,\n isAdministratorArea: true,\n },\n },\n];\n","\n\n","\n","import type { Ref } from \"vue\";\nimport type { CompanyAd } from \"@/models/response/companyAd\";\nimport type { AzureAdServicePrincipal } from \"@/models/azureAd\";\nimport type { CompanyAdSubscription } from \"@/models/response/companyAdSubscription\";\nimport useHttpClient from \"@/services/shared/useHttpClient\";\n\nconst BASE_URL = \"/api/companies\";\nconst { post, get, loading } = useHttpClient();\n\ninterface UseCompanyServiceReturn {\n getAzureAdCompany: (token: string) => Promise;\n validateServicePrincipalAndGetNumberOfUsers: (\n token: string,\n azureAdServicePrincipal: AzureAdServicePrincipal\n ) => Promise;\n signUpAzureAdCompany: (token: string, azureAdServicePrincipal: AzureAdServicePrincipal) => Promise;\n loading: Ref;\n}\n\nexport default (): UseCompanyServiceReturn => {\n const getAzureAdCompany = (token: string): Promise => get(`${BASE_URL}/azuread/${token}`);\n\n const validateServicePrincipalAndGetNumberOfUsers = (\n token: string,\n azureAdServicePrincipal: AzureAdServicePrincipal\n ): Promise => post(`${BASE_URL}/azuread/${token}/validate`, { ...azureAdServicePrincipal });\n\n const signUpAzureAdCompany = (token: string, azureAdServicePrincipal: AzureAdServicePrincipal) =>\n post(`${BASE_URL}/azuread/${token}`, { ...azureAdServicePrincipal });\n\n return { getAzureAdCompany, validateServicePrincipalAndGetNumberOfUsers, signUpAzureAdCompany, loading };\n};\n","\n\n\n\n\n","import GuestApp from \"@/GuestApp.vue\";\nimport GuestCreateCompanyFromAzureAdView from \"@/views/guest/create-company-from-azuread/GuestCreateCompanyFromAzureAdView.vue\";\n\nexport default [\n {\n path: \"/guest\",\n component: GuestApp,\n children: [\n {\n path: \"create-company-from-azure-ad\",\n name: \"guest-create-company-from-azure-ad\",\n component: GuestCreateCompanyFromAzureAdView,\n },\n ],\n meta: {\n requiresAuth: false,\n },\n },\n];\n","\n\n\n","\n\n\n","\n\n\n","import AdminCompanySettingsOverview from \"@/views/it-manager/company-settings/ItManagerCompanySettingsOverview.vue\";\nimport ItManagerLayout from \"@/layout/it-manager/ItManagerLayout.vue\";\n\nexport default [\n {\n path: \"/it-manager\",\n component: ItManagerLayout,\n children: [\n {\n path: \"\",\n name: \"default-it-manager\",\n redirect: \"/it-manager/company-settings\",\n },\n {\n path: \"company-settings\",\n name: \"company-settings-it\",\n component: AdminCompanySettingsOverview,\n },\n ],\n meta: {\n requiresAuth: true,\n requiresItManager: true,\n isAdministratorArea: true,\n },\n },\n];\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import GuestApp from \"@/GuestApp.vue\";\nimport AccountsAdminRequiredView from \"@/views/accounts/admin-required/AccountsAdminRequiredView.vue\";\nimport AccountsLogoutView from \"@/views/accounts/logout/AccountsLogoutView.vue\";\nimport AccountsTenantUnauthorizedView from \"@/views/accounts/tenant-unauthorized/AccountsTenantUnauthorizedView.vue\";\nimport AccountsUserUnauthorizedView from \"@/views/accounts/user-unauthorized/AccountsUserUnauthorizedView.vue\";\n\nexport default [\n {\n path: \"/accounts\",\n component: GuestApp,\n children: [\n {\n path: \"logout\",\n name: \"accounts-logout\",\n component: AccountsLogoutView,\n },\n {\n path: \"admin-required\",\n name: \"accounts-admin-required\",\n component: AccountsAdminRequiredView,\n },\n {\n path: \"tenant-unauthorized\",\n name: \"accounts-tenant-unauthorized\",\n component: AccountsTenantUnauthorizedView,\n },\n {\n path: \"user-unauthorized\",\n name: \"accounts-user-unauthorized\",\n component: AccountsUserUnauthorizedView,\n },\n ],\n },\n];\n","import { createRouter, createWebHistory } from \"vue-router\";\nimport type { RouteRecordRaw } from \"vue-router\";\nimport { authenticationGuard } from \"@/router/guards/authenticationGuard\";\nimport { featureGuard } from \"@/router/guards/featureGuard\";\nimport appRoutes from \"@/router/routes/app.routes\";\nimport adminRoutes from \"@/router/routes/admin.routes\";\nimport guestRoutes from \"@/router/routes/guest.routes\";\nimport itManagerRoutes from \"@/router/routes/it-manager.routes\";\nimport accountsRoutes from \"@/router/routes/accounts.routes\";\n\nconst routes: RouteRecordRaw[] = [\n ...appRoutes,\n ...adminRoutes,\n ...guestRoutes,\n ...itManagerRoutes,\n ...accountsRoutes,\n {\n path: \"/\",\n name: \"default\",\n redirect: \"/app/\",\n },\n { path: \"/:pathMatch(.*)*\", redirect: \"/app/\" },\n];\n\nconst router = createRouter({\n history: createWebHistory(import.meta.env.BASE_URL),\n routes,\n});\n\nauthenticationGuard(router);\nfeatureGuard(router);\n\nexport default router;\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\n// These constants are currently NOT exported directly, we may export them later associated with a frozen namespace (maybe)\r\n// For now do NOT expect that we will export these values.\r\nexport var UNDEF_VALUE = undefined;\r\nexport var EMPTY = \"\";\r\nexport var BOOLEAN = \"boolean\";\r\nexport var FUNCTION = \"function\";\r\nexport var NUMBER = \"number\";\r\nexport var OBJECT = \"object\";\r\nexport var PROTOTYPE = \"prototype\";\r\nexport var STRING = \"string\";\r\nexport var UNDEFINED = \"undefined\";\r\nexport var CONSTRUCTOR = \"constructor\";\r\nexport var SYMBOL = \"Symbol\";\r\nexport var POLYFILL_TAG = \"_polyfill\";\r\nexport var INDEX_OF = \"indexOf\";\r\nexport var LAST_INDEX_OF = \"lastIndexOf\";\r\nexport var LENGTH = \"length\";\r\nexport var DONE = \"done\";\r\nexport var VALUE = \"value\";\r\nexport var NAME = \"name\";\r\nexport var SLICE = \"slice\";\r\n/**\r\n * @ignore\r\n */\r\nexport var ObjClass = Object;\r\n/**\r\n * @ignore\r\n */\r\nexport var ObjProto = ObjClass[PROTOTYPE];\r\n/**\r\n * @ignore\r\n */\r\nexport var StrCls = String;\r\n/**\r\n * @ignore\r\n */\r\nexport var StrProto = StrCls[PROTOTYPE];\r\n/**\r\n * @ignore\r\n */\r\nexport var MathCls = Math;\r\n/**\r\n * @ignore\r\n */\r\nexport var ArrCls = Array;\r\n/**\r\n * @ignore\r\n */\r\nexport var ArrProto = ArrCls[PROTOTYPE];\r\n//# sourceMappingURL=constants.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\n/**\r\n * Function to safely execute a callback function, if the function throws the provided default\r\n * value will be returned.\r\n * @since 0.9.5\r\n * @group Safe\r\n * @param cb - Callback function be wrapped with an exception\r\n * @param defValue - The default value to return when an exception is thrown\r\n * @returns The result of the callback function or the default if an exception occurred calling the callback\r\n * function.\r\n * @example\r\n * ```ts\r\n * let theExpression = \"{ invalid: json value\";\r\n *\r\n * let result = safeGet(() => {\r\n * return JSON.parse(theExpression);\r\n * }, {});\r\n *\r\n * // result === {};\r\n * ```\r\n */\r\nexport function safeGet(cb, defValue) {\r\n var result = defValue;\r\n try {\r\n result = cb();\r\n }\r\n catch (e) {\r\n // Do nothing\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=safe_get.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ArrCls, BOOLEAN, FUNCTION, NUMBER, OBJECT, ObjProto, STRING, UNDEFINED, UNDEF_VALUE } from \"../internal/constants\";\r\nimport { safeGet } from \"./safe_get\";\r\nvar PRIMITIVE_TYPES = [STRING, NUMBER, BOOLEAN, UNDEFINED, \"symbol\", \"bigint\"];\r\n/**\r\n * @ignore\r\n * @internal\r\n * Create and returns a function that will return `true` if the argument passed\r\n * to it matches the provided type.\r\n * @param theType - The type to match against the `typeof value`\r\n * @returns A function which takes a single argument and returns a boolean\r\n */\r\nexport function _createIs(theType) {\r\n return function (value) {\r\n return typeof value === theType;\r\n };\r\n}\r\n/**\r\n * @ignore\r\n * @internal\r\n * Create and returns a function that will return `true` if the argument passed\r\n * to it matches the object type specified based on {@link objToString}.\r\n * @param - The object name to match for the `objToString(value)`\r\n * @returns A function which takes a single argument and returns a boolean\r\n */\r\nexport function _createObjIs(theName) {\r\n var theType = \"[object \" + theName + \"]\";\r\n return function (value) {\r\n return !!(value && objToString(value) === theType);\r\n };\r\n}\r\n/**\r\n * The `objToString()` method returns a string representing the object. This explicitly\r\n * always calls the `Object.prototype.toString()` method.\r\n *\r\n * An object's toString() method is most commonly invoked when that object undergoes:\r\n * - explicit type conversion to a string (for example, String(myObject))\r\n * - implicit type coercion into a string (for example, myObject + \"hello world\")\r\n *\r\n * @group Object\r\n * @param value - The object to be converted into a string\r\n * @returns A string representation of the object\r\n * @example\r\n * ```ts\r\n * objToString(new Date()); // [object Date]\r\n * objToString(new String()); // [object String]\r\n *\r\n * // Math has its Symbol.toStringTag\r\n * objToString(Math); // [object Math]\r\n *\r\n * objToString(undefined); // [object Undefined]\r\n * objToString(null); // [object Null]\r\n * ```\r\n */\r\nexport function objToString(value) {\r\n return ObjProto.toString.call(value);\r\n}\r\n/**\r\n * Validate if the provided value object is of the expected type\r\n * @group Type Identity\r\n * @param value - The value to check\r\n * @param theType - The expected type name as a string\r\n * @returns `true` if the value matches the provided type\r\n */\r\nexport function isTypeof(value, theType) {\r\n return typeof value === theType;\r\n}\r\n/**\r\n * Checks if the provided value is undefined or contains the string value \"undefined\",\r\n * if you want to consider the string value as undefined see {@link isStrictUndefined}\r\n * @group Type Identity\r\n * @group Value Check\r\n * @param value - The value to check\r\n * @returns true if the value is undefined or \"undefined\", otherwise false\r\n * @example\r\n * ```ts\r\n * isUndefined(undefined); // true\r\n * isUndefined(\"undefined\"); // true\r\n *\r\n * isUndefined(null); // false\r\n * isUndefined(\"null\"); // false\r\n * isUndefined(\"1\"); // false\r\n * isUndefined(\"aa\"); // false\r\n * isUndefined(new Date()); // false\r\n * isUndefined(1); // false\r\n * isUndefined(\"\"); // false\r\n * isUndefined(_dummyFunction); // false\r\n * isUndefined([]); // false\r\n * isUndefined(new Array(1)); // false\r\n * isUndefined(true); // false\r\n * isUndefined(false); // false\r\n * isUndefined(\"true\"); // false\r\n * isUndefined(\"false\"); // false\r\n * isUndefined(new Boolean(true)); // false\r\n * isUndefined(new Boolean(false)); // false\r\n * isUndefined(new Boolean(\"true\")); // false\r\n * isUndefined(new Boolean(\"false\")); // false\r\n * isUndefined(Boolean(true)); // false\r\n * isUndefined(Boolean(false)); // false\r\n * isUndefined(Boolean(\"true\")); // false\r\n * isUndefined(Boolean(\"false\")); // false\r\n * isUndefined(new RegExp(\"\")); // false\r\n * isUndefined(new ArrayBuffer(0)); // false\r\n * isUndefined(new Error(\"Test Error\"));// false\r\n * isUndefined(new TypeError(\"Test TypeError\")); // false\r\n * isUndefined(new TestError(\"Test TestError\")); // false\r\n * isUndefined(_dummyError()); // false\r\n * isUndefined(Promise.reject()); // false\r\n * isUndefined(Promise.resolve()); // false\r\n * isUndefined(new Promise(() => {})); // false\r\n * isUndefined(_simplePromise()); // false\r\n * isUndefined(_simplePromiseLike()); // false\r\n * isUndefined(Object.create(null)); // false\r\n * isUndefined(polyObjCreate(null)); // false\r\n * ```\r\n */\r\nexport function isUndefined(value) {\r\n return typeof value === UNDEFINED || value === UNDEFINED;\r\n}\r\n/**\r\n * Checks if the provided value is undefined, a string value of \"undefined\" is NOT considered\r\n * to be undefined.\r\n * @group Type Identity\r\n * @group Value Check\r\n * @param value - The value to check\r\n * @returns true if the typeof value === UNDEFINED\r\n * @example\r\n * ```ts\r\n * isStrictUndefined(undefined); // true\r\n *\r\n * isStrictUndefined(null); // false\r\n * isStrictUndefined(\"null\"); // false\r\n * isStrictUndefined(\"undefined\"); // false\r\n * isStrictUndefined(\"1\"); // false\r\n * isStrictUndefined(\"aa\"); // false\r\n * isStrictUndefined(new Date()); // false\r\n * isStrictUndefined(0); // false\r\n * isStrictUndefined(1); // false\r\n * isStrictUndefined(\"\"); // false\r\n * ```\r\n */\r\nexport function isStrictUndefined(arg) {\r\n return !isDefined(arg);\r\n}\r\n/**\r\n * Checks if the provided value is null, undefined or contains the string value of \"undefined\".\r\n * @group Type Identity\r\n * @group Value Check\r\n * @param value - The value to check\r\n * @returns `true` if the value is `null` or `undefined`\r\n * @example\r\n * ```ts\r\n * isNullOrUndefined(null); // true\r\n * isNullOrUndefined(undefined); // true\r\n * isNullOrUndefined(\"undefined\"); // true\r\n *\r\n * let value = null;\r\n * isNullOrUndefined(value); // true\r\n * let value = undefined;\r\n * isNullOrUndefined(value); // true\r\n *\r\n * isNullOrUndefined(\"\"); // false\r\n * isNullOrUndefined(0); // false\r\n * isNullOrUndefined(new Date()); // false\r\n * isNullOrUndefined(true); // false\r\n * isNullOrUndefined(false); // false\r\n * ```\r\n */\r\nexport function isNullOrUndefined(value) {\r\n return value === null || isUndefined(value);\r\n}\r\n/**\r\n * Checks if the provided value is null, undefined only, a string value of \"undefined\" is NOT considered\r\n * to be undefined.\r\n * @group Type Identity\r\n * @group Value Check\r\n * @param value - The value to check\r\n * @returns\r\n * @example\r\n * ```ts\r\n * isStrictNullOrUndefined(null); // true\r\n * isStrictNullOrUndefined(undefined); // true\r\n * isStrictNullOrUndefined(\"undefined\"); // false\r\n *\r\n * let value = null;\r\n * isStrictNullOrUndefined(value); // true\r\n * let value = undefined;\r\n * isStrictNullOrUndefined(value); // true\r\n *\r\n * isStrictNullOrUndefined(\"\"); // false\r\n * isStrictNullOrUndefined(0); // false\r\n * isStrictNullOrUndefined(new Date()); // false\r\n * isStrictNullOrUndefined(true); // false\r\n * isStrictNullOrUndefined(false); // false\r\n * ```\r\n */\r\nexport function isStrictNullOrUndefined(value) {\r\n return value === null || !isDefined(value);\r\n}\r\n/**\r\n * Checks if the passed value is defined, which means it has any value and is not undefined.\r\n * A string value of \"undefined\" is considered to be defined.\r\n * @group Value Check\r\n * @param arg - The value to check\r\n * @returns true if arg has a value (is not === undefined)\r\n * @example\r\n * ```ts\r\n * isDefined(null); // false\r\n * isDefined(undefined); // false\r\n * isDefined(\"undefined\"); // true\r\n *\r\n * let value = null;\r\n * isDefined(value); // false\r\n * let value = undefined;\r\n * isDefined(value); // false\r\n *\r\n * isDefined(\"\"); // true\r\n * isDefined(0); // true\r\n * isDefined(new Date()); // true\r\n * isDefined(true); // true\r\n * isDefined(false); // true\r\n * ```\r\n */\r\nexport function isDefined(arg) {\r\n return !!arg || arg !== UNDEF_VALUE;\r\n}\r\n/**\r\n * Identifies whether the provided value is a JavaScript [primitive](https://developer.mozilla.org/en-US/docs/Glossary/Primitive)\r\n * which is when is it not an object and has no methods or properties. There are 7 primitive data types:\r\n * - string\r\n * - number\r\n * - bigint\r\n * - boolean\r\n * - undefined\r\n * - null\r\n * - symbol\r\n *\r\n * Most of the time, a primitive value is represented directly at the lowest level of the language implementation.\r\n *\r\n * All primitives are immutable; that is, they cannot be altered. It is important not to confuse a primitive itself\r\n * with a variable assigned a primitive value. The variable may be reassigned to a new value, but the existing value\r\n * can not be changed in the ways that objects, arrays, and functions can be altered. The language does not offer\r\n * utilities to mutate primitive values.\r\n * @since 0.4.4\r\n * @group Type Identity\r\n * @param value - The value to check whether it's a primitive value\r\n * @example\r\n * ```ts\r\n * isPrimitive(null); // true\r\n * isPrimitive(undefined); // true\r\n * isPrimitive(\"null\"); // true\r\n * isPrimitive(\"undefined\"); // true\r\n * isPrimitive(\"1\"); // true\r\n * isPrimitive(\"aa\"); // true\r\n * isPrimitive(1); // true\r\n * isPrimitive(Number(2)); // true\r\n * isPrimitive(\"\"); // true\r\n * isPrimitive(String(\"\")); // true\r\n * isPrimitive(true); // true\r\n * isPrimitive(false); // true\r\n * isPrimitive(\"true\"); // true\r\n * isPrimitive(\"false\"); // true\r\n * isPrimitive(BigInt(42)); // true\r\n * isPrimitive(Symbol.for(\"Hello\")); // true\r\n *\r\n * isPrimitive(new String(\"aa\")); // false\r\n * isPrimitive(new Date()); // false\r\n * isPrimitive(_dummyFunction); // false\r\n * isPrimitive([]); // false\r\n * isPrimitive(new Array(1)); // false\r\n * isPrimitive(new Boolean(true)); // false\r\n * isPrimitive(new Boolean(false)); // false\r\n * isPrimitive(new Boolean(\"true\")); // false\r\n * isPrimitive(new Boolean(\"false\")); // false\r\n * ```\r\n */\r\nexport function isPrimitive(value) {\r\n var theType = typeof value;\r\n if (value && theType === OBJECT) {\r\n return false;\r\n }\r\n return value === null || PRIMITIVE_TYPES.indexOf(theType) !== -1;\r\n}\r\n/**\r\n * Checks to see if the past value is a string value\r\n * @group Type Identity\r\n * @group String\r\n * @param value - The value to check\r\n * @returns\r\n * @example\r\n * ```ts\r\n * isString(\"\"); // true\r\n * isString(\"null\"); // true\r\n * isString(\"undefined\"); // true\r\n * isString(String(\"\")); // true\r\n *\r\n * isString(null); // false\r\n * isString(undefined); // false\r\n * isString(0); // false\r\n * ```\r\n */\r\nexport var isString = _createIs(STRING);\r\n/**\r\n * Checks to see if the past value is a function value\r\n * @group Type Identity\r\n * @param value - The value to check\r\n * @returns\r\n * @example\r\n * ```ts\r\n * function myFunction() { }\r\n * isFunction(null); // false\r\n * isFunction(undefined); // false\r\n * isFunction(\"null\"); // false\r\n * isFunction(\"undefined\"); // false\r\n * isFunction(\"1\"); // false\r\n * isFunction(\"aa\"); // false\r\n * isFunction(new Date()); // false\r\n * isFunction(1); // false\r\n * isFunction(\"\"); // false\r\n * isFunction(myFunction); // true\r\n * isFunction([]); // false\r\n * isFunction(new Array(1)); // false\r\n * ```\r\n */\r\nexport var isFunction = _createIs(FUNCTION);\r\n/**\r\n * Checks to see if the past value is an object value\r\n * @group Type Identity\r\n * @group Object\r\n * @typeParam T - The object type, defaults to any\r\n * @param value - The value to check\r\n * @returns\r\n */\r\nexport function isObject(value) {\r\n if (!value && isNullOrUndefined(value)) {\r\n return false;\r\n }\r\n return !!value && typeof value === OBJECT;\r\n}\r\n/**\r\n * Checks if the type of value is an Array.\r\n *\r\n * @group Type Identity\r\n * @group Array\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Array, false otherwise.\r\n * @example\r\n * ```ts\r\n * import { isArray, isObject } from \"@nevware21/ts-utils\";\r\n *\r\n * function performAction(value: any) {\r\n * if (isArray(value) || isObject(value)) {\r\n * // Do something\r\n * } else {\r\n * // Do something else\r\n * }\r\n * }\r\n * ```\r\n */\r\nexport var isArray = ArrCls.isArray;\r\n/**\r\n * Check if an object is of type Date\r\n * @group Type Identity\r\n * @example\r\n * ```ts\r\n * import { isDate } from \"@nevware21/ts-utils\";\r\n *\r\n * let _theDate = null;\r\n *\r\n * function getSetDate(newDate?: any) {\r\n * _theDate = isDate(newDate) ? newDate : new Date();\r\n *\r\n * return _theDate;\r\n * }\r\n * ```\r\n */\r\nexport var isDate = _createObjIs(\"Date\");\r\n/**\r\n * Checks if the type of value is a number.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a number, false otherwise.\r\n */\r\nexport var isNumber = _createIs(NUMBER);\r\n/**\r\n * Checks if the type of value is a boolean.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\nexport var isBoolean = _createIs(BOOLEAN);\r\n/**\r\n * Determines if a value is a regular expression object.\r\n * @group Type Identity\r\n * @param {*} value Reference to check.\r\n * @returns {boolean} True if `value` is a `RegExp`.\r\n */\r\nexport var isRegExp = _createObjIs(\"RegExp\");\r\n/**\r\n * Checks if the type of value is a File object.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a File, false otherwise.\r\n */\r\nexport var isFile = _createObjIs(\"File\");\r\n/**\r\n * Checks if the type of value is a FormData object.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a FormData, false otherwise.\r\n */\r\nexport var isFormData = _createObjIs(\"FormData\");\r\n/**\r\n * Checks if the type of value is a Blob object.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Blob, false otherwise.\r\n */\r\nexport var isBlob = _createObjIs(\"Blob\");\r\n/**\r\n * Checks if the type of value is a ArrayBuffer object.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a ArrayBuffer, false otherwise.\r\n */\r\nexport var isArrayBuffer = _createObjIs(\"ArrayBuffer\");\r\n/**\r\n * Checks if the type of value is a Error object.\r\n * @group Type Identity\r\n * @group Error\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Error, false otherwise.\r\n */\r\nexport var isError = _createObjIs(\"Error\");\r\n/**\r\n * Checks if the type of value is a PromiseLike instance (contains a then function).\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a PromiseLike, false otherwise.\r\n */\r\nexport function isPromiseLike(value) {\r\n return !!value && isFunction(value.then);\r\n}\r\n/**\r\n * Checks if the type of value is a PromiseLike instance (contains a then function).\r\n * This is an alias for {@link isPromiseLike}.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a PromiseLike, false otherwise.\r\n */\r\nexport var isThenable = isPromiseLike;\r\n/**\r\n * Checks if the type of value is a Promise instance (contains then and catch functions).\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Promise, false otherwise.\r\n */\r\nexport function isPromise(value) {\r\n return isPromiseLike(value) && isFunction(value.catch);\r\n}\r\n/**\r\n * Checks if the type of value does not evaluate to true value, handling some special\r\n * case usages of Boolean(true/false) and new Boolean(true/false).\r\n * @group Value Check\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is not truthy, false otherwise.\r\n */\r\nexport function isNotTruthy(value) {\r\n return !value || !safeGet(function () { return (value && (0 + value)); }, value);\r\n}\r\n/**\r\n * Checks if the type of value evaluates to true value, handling some special\r\n * case usages of Boolean(true/false) and new Boolean(true/false).\r\n * @group Value Check\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is not truthy, false otherwise.\r\n */\r\nexport function isTruthy(value) {\r\n // Objects created with no prototype (Object.create(null)) cannot be converted to primitives\r\n // Which causes this code to throw, additionally just using !! also fails for Boolean objects\r\n // !!(new Boolean(false)) evaluates to true\r\n return !(!value || safeGet(function () { return !(value && (0 + value)); }, !value));\r\n //return !(!value || !(value && (0 + value)));\r\n}\r\n//# sourceMappingURL=base.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ObjClass } from \"../internal/constants\";\r\n/**\r\n * The objGetOwnPropertyDescriptor() method returns an object describing the configuration of a specific property on\r\n * a given object (that is, one directly present on an object and not in the object's prototype chain). The object\r\n * returned is mutable but mutating it has no effect on the original property's configuration.\r\n * @since 0.4.3\r\n * @group Object\r\n * @param target - Object that contains the property.\r\n * @param prop - Name of the property.\r\n * @returns A property descriptor of the given property if it exists on the object, otherwise undefined.\r\n *\r\n * @example\r\n * ```ts\r\n * o = {};\r\n * objDefineProp(o, 'qux', {\r\n * value: 8675309,\r\n * writable: false,\r\n * enumerable: false\r\n * });\r\n * d = objGetOwnPropertyDescriptor(o, 'qux');\r\n * // d is {\r\n * // value: 8675309,\r\n * // writable: false,\r\n * // enumerable: false,\r\n * // configurable: false\r\n * // }\r\n *\r\n * objGetOwnPropertyDescriptor('foo', 0);\r\n * // TypeError: \"foo\" is not an object // ES5 code\r\n *\r\n * objGetOwnPropertyDescriptor('foo', 0);\r\n * // Object returned by ES2015 code: {\r\n * // configurable: false,\r\n * // enumerable: true,\r\n * // value: \"f\",\r\n * // writable: false\r\n * // }\r\n * ```\r\n * Note: In ES5, if the first argument to this method is not an object (a primitive), then it will cause a TypeError. In ES2015, a non-object first argument will be coerced to an object at first.\r\n */\r\nexport var objGetOwnPropertyDescriptor = ObjClass.getOwnPropertyDescriptor;\r\n//# sourceMappingURL=get_own_prop_desc.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ObjProto } from \"../internal/constants\";\r\n/**\r\n * The objHasOwnProperty() method returns a boolean indicating whether the object\r\n * has the specified property as its own property (as opposed to inheriting it).\r\n *\r\n * The objHasOwnProperty() method returns true if the specified property is a direct\r\n * property of the object — even if the value is null or undefined. The method returns\r\n * false if the property is inherited, or has not been declared at all. Unlike the in\r\n * operator, this method does not check for the specified property in the object's\r\n * prototype chain.\r\n *\r\n * The method can be called on most JavaScript objects, because most objects descend\r\n * from Object, and hence inherit its methods. For example Array is an Object, so you\r\n * can use objHasOwnProperty() method to check whether an index exists:\r\n * @group Object\r\n * @param obj - The object being evaluated\r\n * @param prop - The String or Symbol of the property to test\r\n * @returns `true` if the object has the specified property as own property; otherwise `false`\r\n * @example\r\n * ```ts\r\n * let example = {};\r\n * objHasOwnProperty(example, 'prop'); // false\r\n *\r\n * example.prop = 'exists';\r\n * objHasOwnProperty(example, 'prop'); // true - 'prop' has been defined\r\n *\r\n * example.prop = null;\r\n * objHasOwnProperty(example, 'prop'); // true - own property exists with value of null\r\n *\r\n * example.prop = undefined;\r\n * objHasOwnProperty(example, 'prop'); // true - own property exists with value of undefined\r\n * ```\r\n */\r\nexport function objHasOwnProperty(obj, prop) {\r\n return obj && ObjProto.hasOwnProperty.call(obj, prop);\r\n}\r\n//# sourceMappingURL=has_own_prop.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ObjClass } from \"../internal/constants\";\r\nimport { objGetOwnPropertyDescriptor } from \"./get_own_prop_desc\";\r\nimport { objHasOwnProperty } from \"./has_own_prop\";\r\n/**\r\n * The objHasOwn() method returns a boolean indicating whether the object\r\n * has the specified property as its own property (as opposed to inheriting it).\r\n * If the property is inherited, or does not exist, the method returns false.\r\n *\r\n * The objHasOwn() method returns true if the specified property is a direct property\r\n * of the object — even if the property value is null or undefined. The method returns\r\n * false if the property is inherited, or has not been declared at all. Unlike the in operator,\r\n * this method does not check for the specified property in the object's prototype chain.\r\n *\r\n * It is recommended over {@link objHasOwnProperty} () because it works for objects created using\r\n * objCreate(null) and with objects that have overridden the inherited hasOwnProperty() method.\r\n * While it is possible to workaround these problems by calling Object.prototype.hasOwnProperty()\r\n * on an external object, Object.hasOwn() is more intuitive.\r\n *\r\n * @since 0.4.3\r\n * @group Object\r\n * @param obj - The object being evaluated\r\n * @param prop - The String or Symbol of the property to test\r\n * @returns `true` if the object has the specified property as own property; otherwise `false`\r\n * @example\r\n * ```ts\r\n * let example = {};\r\n * objHasOwn(example, 'prop'); // false\r\n *\r\n * example.prop = 'exists';\r\n * objHasOwn(example, 'prop'); // true - 'prop' has been defined\r\n *\r\n * example.prop = null;\r\n * objHasOwn(example, 'prop'); // true - own property exists with value of null\r\n *\r\n * example.prop = undefined;\r\n * objHasOwn(example, 'prop'); // true - own property exists with value of undefined\r\n * ```\r\n */\r\nexport var objHasOwn = ObjClass[\"hasOwn\"] || polyObjHasOwn;\r\n/**\r\n * The polyObjHasOwn() method is a polyfill for {@link objHasOwn} when the native\r\n * [Object.hasOwnreturns](https://caniuse.com/?search=hasOwn) is not supported, it returns a\r\n * boolean indicating whether the object has the specified property as its own property (as\r\n * opposed to inheriting it). If the property is inherited, or does not exist, the method\r\n * returns false.\r\n *\r\n * The objHasOwn() method returns true if the specified property is a direct property\r\n * of the object — even if the property value is null or undefined. The method returns\r\n * false if the property is inherited, or has not been declared at all. Unlike the in operator,\r\n * this method does not check for the specified property in the object's prototype chain.\r\n *\r\n * It is recommended over objHasOwnProperty() because it works for objects created using\r\n * objCreate(null) and with objects that have overridden the inherited hasOwnProperty() method.\r\n * While it is possible to workaround these problems by calling Object.prototype.hasOwnProperty()\r\n * on an external object, Object.hasOwn() is more intuitive.\r\n *\r\n * @since 0.4.3\r\n * @group Object\r\n * @group Polyfill\r\n * @param obj - The object being evaluated\r\n * @param prop - The String or Symbol of the property to test\r\n * @returns `true` if the object has the specified property as own property; otherwise `false`\r\n * @example\r\n * ```ts\r\n * let example = {};\r\n * polyObjHasOwn(example, 'prop'); // false\r\n *\r\n * example.prop = 'exists';\r\n * polyObjHasOwn(example, 'prop'); // true - 'prop' has been defined\r\n *\r\n * example.prop = null;\r\n * polyObjHasOwn(example, 'prop'); // true - own property exists with value of null\r\n *\r\n * example.prop = undefined;\r\n * polyObjHasOwn(example, 'prop'); // true - own property exists with value of undefined\r\n * ```\r\n */\r\nexport function polyObjHasOwn(obj, prop) {\r\n return objHasOwnProperty(obj, prop) || !!objGetOwnPropertyDescriptor(obj, prop);\r\n}\r\n//# sourceMappingURL=has_own.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { isObject } from \"../helpers/base\";\r\nimport { objHasOwn } from \"./has_own\";\r\n/**\r\n * Calls the provided `callbackFn` function once for each key in an object. This is equivelent to `arrForEach(Object.keys(theObject), callbackFn)` or\r\n * if not using the array helper `Object.keys(theObject).forEach(callbackFn)` except that this helper avoid creating a temporary of the object\r\n * keys before iterating over them and like the `arrForEach` helper you CAN stop or break the iteration by returning -1 from the `callbackFn` function.\r\n * @group Object\r\n * @typeParam T - The object type\r\n * @param callbackfn A function that accepts up to two arguments, the key name and the current value of the property represented by the key.\r\n * @param thisArg [Optional] An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, null or undefined\r\n * the object will be used as the this value.\r\n * @example\r\n * ```ts\r\n * function performAction(target: T, source: any) {\r\n * if (!isNullOrUndefined(source)) {\r\n * objForEachKey(source, (key, value) => {\r\n * // Set the target with a reference to the same value with the same name\r\n * target[key] = value;\r\n * });\r\n * }\r\n *\r\n * return target;\r\n * }\r\n * ```\r\n */\r\nexport function objForEachKey(theObject, callbackfn, thisArg) {\r\n if (theObject && isObject(theObject)) {\r\n for (var prop in theObject) {\r\n if (objHasOwn(theObject, prop)) {\r\n if (callbackfn.call(thisArg || theObject, prop, theObject[prop]) === -1) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=for_each_key.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { objForEachKey } from \"../object/for_each_key\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal Helper function to create a key and value mapped representation of the values\r\n * @param values - The source values\r\n * @param keyType - Identifies the value to populate against the key\r\n * @param valueType - Identifies the value to populate against the value\r\n * @param completeFn - The function to call to complete the map (used to freeze the instance)\r\n * @returns\r\n */\r\nexport function _createKeyValueMap(values, keyType, valueType, completeFn) {\r\n var theMap = {};\r\n objForEachKey(values, function (key, value) {\r\n theMap[key] = keyType ? value : key;\r\n theMap[value] = valueType ? value : key;\r\n });\r\n return completeFn(theMap);\r\n}\r\n//# sourceMappingURL=map.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\n/**\r\n * Throw an error exception with the specified optional message\r\n * @group Error\r\n * @param message\r\n */\r\nexport function throwError(message) {\r\n throw new Error(message);\r\n}\r\n/**\r\n * Throw a type error with the specified optional message\r\n * @group Error\r\n * @param message\r\n */\r\nexport function throwTypeError(message) {\r\n throw new TypeError(message);\r\n}\r\n/**\r\n * Throw a RangeError with the specified optional message\r\n * @group Error\r\n * @param message\r\n */\r\nexport function throwRangeError(message) {\r\n throw new RangeError(message);\r\n}\r\n//# sourceMappingURL=throw.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ObjClass } from \"../internal/constants\";\r\nimport { isArray, isObject } from \"../helpers/base\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { objForEachKey } from \"./for_each_key\";\r\nvar _objFreeze = ObjClass[\"freeze\"];\r\nvar _doNothing = function (value) { return value; };\r\n/**\r\n * The `objAssign()` method copies all enumerable own properties from one or more source objects\r\n * to a target object. It returns the modified target object.\r\n *\r\n * Properties in the target object are overwritten by properties in the sources if they have the\r\n * same key. Later sources' properties overwrite earlier ones.\r\n *\r\n * The objAssign() method only copies enumerable and own properties from a source object to a\r\n * target object. It uses `Get` on the source and `Set` on the target, so it will invoke\r\n * [getters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get) and\r\n * [setters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set).\r\n * Therefore it assigns properties, versus copying or defining new properties. This may make it\r\n * unsuitable for merging new properties into a prototype if the merge sources contain getters.\r\n *\r\n * For copying property definitions (including their enumerability) into prototypes, use\r\n * {@link objGetOwnPropertyDescriptor} and {@link objDefineProp} instead.\r\n *\r\n * Both String and Symbol properties are copied.\r\n *\r\n * In case of an error, for example if a property is non-writable, a TypeError is raised, and\r\n * the target object is changed if any properties are added before the error is raised.\r\n * @group Object\r\n * @example\r\n * ```ts\r\n * const obj = { a: 1 };\r\n * const copy = objAssign({}, obj);\r\n * console.log(copy); // { a: 1 }\r\n *\r\n * const o1 = { a: 1 };\r\n * const o2 = { b: 2 };\r\n * const o3 = { c: 3 };\r\n *\r\n * const obj = objAssign(o1, o2, o3);\r\n * console.log(obj); // { a: 1, b: 2, c: 3 }\r\n * console.log(o1); // { a: 1, b: 2, c: 3 }, target object itself is changed.\r\n * ```\r\n */\r\nexport var objAssign = ObjClass[\"assign\"];\r\n/**\r\n * The `objKeys()` method returns an array of a given object's own enumerable property names, iterated in\r\n * the same order that a normal loop would.\r\n *\r\n * objKeys() returns an array whose elements are strings corresponding to the enumerable properties found\r\n * directly upon object. The ordering of the properties is the same as that given by looping over the\r\n * properties of the object manually.\r\n * @group Object\r\n * @param value - The object to obtain a copy of the keys from\r\n * @returns An array of the properties names for the value object.\r\n * @example\r\n * ```ts\r\n * // simple array\r\n * const arr = ['a', 'b', 'c'];\r\n * console.log(objKeys(arr)); // console: ['0', '1', '2']\r\n *\r\n * // array-like object\r\n * const obj = { 0: 'a', 1: 'b', 2: 'c' };\r\n * console.log(objKeys(obj)); // console: ['0', '1', '2']\r\n *\r\n * // array-like object with random key ordering\r\n * const anObj = { 100: 'a', 2: 'b', 7: 'c' };\r\n * console.log(objKeys(anObj)); // console: ['2', '7', '100']\r\n *\r\n * // getFoo is a property which isn't enumerable\r\n * const myObj = objCreate({}, {\r\n * getFoo: {\r\n * value() { return this.foo; }\r\n * }\r\n * });\r\n * myObj.foo = 1;\r\n * console.log(objKeys(myObj)); // console: ['foo']\r\n * ```\r\n */\r\nexport function objKeys(value) {\r\n if (!isObject(value) || value === null) {\r\n throwTypeError(\"objKeys called on non-object\");\r\n }\r\n return ObjClass.keys(value);\r\n}\r\n/**\r\n * Perform a deep freeze on the object and all of it's contained values / properties by recursively calling\r\n * `objFreeze()` on all enumerable properties of the object and on each property returned.\r\n * @group Object\r\n * @param value - the object to be completly frozen.\r\n * @returns The originally passed in object.\r\n */\r\nexport function objDeepFreeze(value) {\r\n if (_objFreeze) {\r\n objForEachKey(value, function (key, value) {\r\n if (isArray(value) || isObject(value)) {\r\n _objFreeze(value);\r\n }\r\n });\r\n }\r\n return objFreeze(value);\r\n}\r\n/**\r\n * The `objFreeze()` method freezes an object. A frozen object can no longer be changed; freezing an object\r\n * prevents new properties from being added to it, existing properties from being removed, prevents changing the\r\n * enumerability, configurability, or writability of existing properties, and prevents the values of existing\r\n * properties from being changed. In addition, freezing an object also prevents its prototype from being changed.\r\n * `objFreeze()` returns the same object that was passed in.\r\n *\r\n * Nothing can be added to or removed from the properties set of a frozen object. Any attempt to do so will fail,\r\n * either silently or by throwing a TypeError exception (most commonly, but not exclusively, when in strict mode).\r\n *\r\n * For data properties of a frozen object, values cannot be changed, the writable and configurable attributes are\r\n * set to false. Accessor properties (getters and setters) work the same (and still give the illusion that you are\r\n * changing the value). Note that values that are objects can still be modified, unless they are also frozen. As\r\n * an object, an array can be frozen; after doing so, its elements cannot be altered and no elements can be added\r\n * to or removed from the array.\r\n *\r\n * `objFreeze()` returns the same object that was passed into the function. It does not create a frozen copy.\r\n * @group Object\r\n * @param value - The object to freeze.\r\n * @returns The object that was passed to the function.\r\n */\r\nexport var objFreeze = _objFreeze || _doNothing;\r\n/**\r\n * The `objSeal()` method seals an object, preventing new properties from being added to it and marking all\r\n * existing properties as non-configurable. Values of present properties can still be changed as long as they\r\n * are writable.\r\n * @group Object\r\n * @param value - The object which should be sealed.\r\n * @returns The object being sealed.\r\n */\r\nexport var objSeal = ObjClass[\"seal\"] || _doNothing;\r\n/**\r\n * The objGetPrototypeOf() method returns the prototype (i.e. the value of the internal `Prototype` property)\r\n * of the specified value.\r\n * @since 0.4.4\r\n * @group Object\r\n * @param value = The object whose prototype is to be returned\r\n */\r\nexport var objGetPrototypeOf = ObjClass[\"getPrototypeOf\"] || _doNothing;\r\n//# sourceMappingURL=object.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { _createKeyValueMap } from \"../internal/map\";\r\nimport { objForEachKey } from \"../object/for_each_key\";\r\nimport { objDeepFreeze } from \"../object/object\";\r\n/**\r\n * Create a TypeScript style enum class which is a mapping that maps from the key -> value and the value -> key.\r\n * This is effectively the same as defining a non-constant enum, but this only repeats the \"Name\" of the enum value once.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * const enum Animal {\r\n * Dog = 0,\r\n * Cat = 1,\r\n * Butterfly = 2,\r\n * Bear = 3\r\n * }\r\n * const Animals = createEnum({\r\n * Dog: Animal.Dog,\r\n * Cat: Animal.Cat,\r\n * Butterfly: Animal.Butterfly,\r\n * Bear: Animal.Bear\r\n * });\r\n * // You end up with an object that maps everything to the name\r\n * Animals.Dog === 0; // true\r\n * Animals[0] === \"Dog\"; // true\r\n * Animals[\"Dog\"] === 0; // true\r\n * Animals.Cat === 1; // true\r\n * Animals[1] === \"Cat\"; // true\r\n * Animals[\"Cat\"] === 1; // true\r\n * ```\r\n\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the const enum type being mapped\r\n * @returns A new frozen (immutable) object which looks and acts like a TypeScript Enum class.\r\n */\r\nexport function createEnum(values) {\r\n return _createKeyValueMap(values, 1 /* eMapValues.Value */, 0 /* eMapValues.Key */, objDeepFreeze);\r\n}\r\n/**\r\n * Create a map object which contains both the property key and value which both map to the key,\r\n * E[key] => key and E[value] => key.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * const enum Animal {\r\n * Dog = 0,\r\n * Cat = 1,\r\n * Butterfly = 2,\r\n * Bear = 3\r\n * }\r\n * const animalMap = createEnumKeyMap({\r\n * Dog: Animal.Dog,\r\n * Cat: Animal.Cat,\r\n * Butterfly: Animal.Butterfly,\r\n * Bear: Animal.Bear\r\n * });\r\n * // You end up with an object that maps everything to the name\r\n * animalMap.Dog === \"Dog\"; // true\r\n * animalMap[0] === \"Dog\"; // true\r\n * animalMap[\"Dog\"] === \"Dog\"; // true\r\n * animalMap.Cat === \"Cat\"; // true\r\n * animalMap[1] === \"Cat\"; // true\r\n * animalMap[\"Cat\"] === \"Cat\"; // true\r\n * // Helper function to always return the \"Name\" of the type of animal\r\n * function getAnimalType(type: string | number | Animal) {\r\n * return animalMap[type];\r\n * }\r\n * ```\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the const enum type being mapped\r\n * @returns A new frozen (immutable) object which contains a property for each key and value that returns the value.\r\n */\r\nexport function createEnumKeyMap(values) {\r\n return _createKeyValueMap(values, 0 /* eMapValues.Key */, 0 /* eMapValues.Key */, objDeepFreeze);\r\n}\r\n/**\r\n * Create a map object which contains both the perperty key and value which both map to the resulting value,\r\n * E[key] => value and E[value] => value.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * const enum Animal {\r\n * Dog = 0,\r\n * Cat = 1,\r\n * Butterfly = 2,\r\n * Bear = 3\r\n * }\r\n * const animalMap = createEnumValueMap({\r\n * Dog: Animal.Dog,\r\n * Cat: Animal.Cat,\r\n * Butterfly: Animal.Butterfly,\r\n * Bear: Animal.Bear\r\n * });\r\n * // You end up with an object that maps everything to the name\r\n * animalMap.Dog === 0; // true\r\n * animalMap[0] === 0; // true\r\n * animalMap[\"Dog\"] === 0; // true\r\n * animalMap.Cat === 1; // true\r\n * animalMap[1] === 1; // true\r\n * animalMap[\"Cat\"] === 1; // true\r\n *\r\n * // Helper function to always return the \"Name\" of the type of animal\r\n * function getAnimalValue(type: string | number | Animal) {\r\n * return animalMap[type];\r\n * }\r\n * ```\r\n\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the const enum type being mapped\r\n * @returns A new frozen (immutable) object which contains a property for each key and value that returns the value.\r\n */\r\nexport function createEnumValueMap(values) {\r\n return _createKeyValueMap(values, 1 /* eMapValues.Value */, 1 /* eMapValues.Value */, objDeepFreeze);\r\n}\r\n/**\r\n * Create a map object which contains both the perperty key and value which both map to the requested\r\n * generic mapValue with a type of V, E[key] => mapValue and E[value] => mapValue.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * const enum Animal {\r\n * Dog = 0,\r\n * Cat = 1,\r\n * Butterfly = 2,\r\n * Bear = 3\r\n * };\r\n * // Creates a simple mapping to a string value\r\n * const animalFamilyMap = createValueMap({\r\n * Dog: [ Animal.Dog, \"Canidae\"],\r\n * Cat: [ Animal.Cat, \"Felidae\"],\r\n * Butterfly: [ Animal.Butterfly, \"Papilionidae\"],\r\n * Bear: [ Animal.Bear, \"Ursidae\"]\r\n * });\r\n * // You end up with an object that maps everything to the name\r\n * animalMap.Dog === \"Canidae\"; // true with typeof animalMap.Dog is \"string\"\r\n * animalMap[0] === \"Canidae\"; // true with typeof animalMap[0] is \"string\"\r\n * animalMap[\"Dog\"] === \"Canidae\"; // true with typeof animalMap[\"Dog\"] is \"string\"\r\n * animalMap.Cat === \"Felidae\"; // true with typeof animalMap.Cat is \"string\"\r\n * animalMap[1] === \"Felidae\"; // true with typeof animalMap[1] is \"string\"\r\n * animalMap[\"Cat\"] === \"Felidae\"; // true with typeof animalMap[\"Cat\"] is \"string\"\r\n * ```\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the const enum type (eg. typeof Animal);\r\n * @typeParam V - Identifies the type of the mapping `string`; `number`; etc is not restructed to primitive types.\r\n * @returns A new frozen (immutable) object which contains a property for each key and value that returns the defiend mapped value.\r\n */\r\nexport function createSimpleMap(values) {\r\n var mapClass = {};\r\n objForEachKey(values, function (key, value) {\r\n mapClass[key] = value[1];\r\n mapClass[value[0]] = value[1];\r\n });\r\n return objDeepFreeze(mapClass);\r\n}\r\n/**\r\n * Create a strongly types map object which contains both the perperty key and value which both map\r\n * to the requested mapValue,\r\n * E[key] => mapValue and E[value] => mapValue.\r\n * - E = the const enum type (typeof Animal);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * // Create a strongly types map\r\n * const animalFamilyMap = createTypeMap({\r\n * Dog: [ Animal.Dog, \"Canidae\"],\r\n * Cat: [ Animal.Cat, \"Felidae\"],\r\n * Butterfly: [ Animal.Butterfly, \"Papilionidae\"],\r\n * Bear: [ Animal.Bear, \"Ursidae\"]\r\n * });\r\n * // You end up with a strongly types result for each value\r\n * animalMap.Dog === \"Canidae\"; // true with typeof animalMap.Dog is (const) \"Canidae\"\r\n * animalMap[0] === \"Canidae\"; // true with typeof animalMap[0] is \"Canidae\"\r\n * animalMap[\"Dog\"] === \"Canidae\"; // true with typeof animalMap[\"Dog\"] is \"Canidae\"\r\n * animalMap.Cat === \"Felidae\"; // true with typeof animalMap.Cat is \"Felidae\"\r\n * animalMap[1] === \"Felidae\"; // true with typeof animalMap[1] is \"Felidae\"\r\n * animalMap[\"Cat\"] === \"Felidae\"; // true with typeof animalMap[\"Cat\"] is \"Felidae\"\r\n *\r\n * or using an interface to define the direct string mappings\r\n *\r\n * interface IAnimalFamilyMap {\r\n * Dog: \"Canidae\",\r\n * Cat: \"Felidae\",\r\n * Butterfly: \"Papilionidae\",\r\n * Bear: \"Ursidae\"\r\n * }\r\n *\r\n * // Create a strongly types map\r\n * const animalFamilyMap = createTypeMap({\r\n * Dog: [ Animal.Dog, \"Canidae\"],\r\n * Cat: [ Animal.Cat, \"Felidae\"],\r\n * Butterfly: [ Animal.Butterfly, \"Papilionidae\"],\r\n * Bear: [ Animal.Bear, \"Ursidae\"]\r\n * });\r\n *\r\n * // You also end up with a strongly types result for each value\r\n * animalMap.Dog === \"Canidae\"; // true with typeof animalMap.Dog is (const) \"Canidae\"\r\n * animalMap[0] === \"Canidae\"; // true with typeof animalMap[0] is \"Canidae\"\r\n * animalMap[\"Dog\"] === \"Canidae\"; // true with typeof animalMap[\"Dog\"] is \"Canidae\"\r\n * animalMap.Cat === \"Felidae\"; // true with typeof animalMap.Cat is \"Felidae\"\r\n * animalMap[1] === \"Felidae\"; // true with typeof animalMap[1] is \"Felidae\"\r\n * animalMap[\"Cat\"] === \"Felidae\"; // true with typeof animalMap[\"Cat\"] is \"Felidae\"\r\n * ```\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the enum type\r\n * @typeParam T - Identifies the return type that is being created via the mapping.\r\n * @returns A new frozen (immutable) object which contains a property for each key and value that returns the defiend mapped value.\r\n */\r\nexport function createTypeMap(values) {\r\n return createSimpleMap(values);\r\n}\r\n//# sourceMappingURL=enum.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { createEnumKeyMap } from \"../helpers/enum\";\r\n/**\r\n * @ignore\r\n * @internal\r\n */\r\nexport var _wellKnownSymbolMap = createEnumKeyMap({\r\n asyncIterator: 0 /* WellKnownSymbols.asyncIterator */,\r\n hasInstance: 1 /* WellKnownSymbols.hasInstance */,\r\n isConcatSpreadable: 2 /* WellKnownSymbols.isConcatSpreadable */,\r\n iterator: 3 /* WellKnownSymbols.iterator */,\r\n match: 4 /* WellKnownSymbols.match */,\r\n matchAll: 5 /* WellKnownSymbols.matchAll */,\r\n replace: 6 /* WellKnownSymbols.replace */,\r\n search: 7 /* WellKnownSymbols.search */,\r\n species: 8 /* WellKnownSymbols.species */,\r\n split: 9 /* WellKnownSymbols.split */,\r\n toPrimitive: 10 /* WellKnownSymbols.toPrimitive */,\r\n toStringTag: 11 /* WellKnownSymbols.toStringTag */,\r\n unscopables: 12 /* WellKnownSymbols.unscopables */\r\n});\r\n//# sourceMappingURL=well_known.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { StrCls } from \"../internal/constants\";\r\n/**\r\n * The asString() method returns a string representing the value by\r\n * explicitly using `String(`value`)`.\r\n *\r\n * @since 0.4.3\r\n * @group String\r\n * @group Conversion\r\n * @group Value\r\n * @param value - The value to get a string representation of\r\n * @example\r\n * ```ts\r\n * const arr = [ 1, 2, 3];\r\n * asString(arr); // \"1,2,3\"\r\n * asString(null); // \"null\"\r\n * asString(undefined); // \"undefined\"\r\n * asString(42); // \"42\"\r\n * asString(Symbol.for(\"Hello\")); // \"Symbol(Hello)\"\r\n * ```\r\n */\r\nexport var asString = StrCls;\r\n//# sourceMappingURL=as_string.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { UNDEFINED } from \"./constants\";\r\nvar GLOBAL_CONFIG_KEY = \"__tsUtils$gblCfg\";\r\nvar _globalCfg;\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper to get the current global value\r\n * @returns\r\n */\r\nexport function _getGlobalValue() {\r\n var result;\r\n if (typeof globalThis !== UNDEFINED) {\r\n result = globalThis;\r\n }\r\n if (!result && typeof self !== UNDEFINED) {\r\n result = self;\r\n }\r\n if (!result && typeof window !== UNDEFINED) {\r\n result = window;\r\n }\r\n if (!result && typeof global !== UNDEFINED) {\r\n result = global;\r\n }\r\n return result;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Gets/Sets the named value from the global config store, this is used to share configuration across\r\n * multiple modules. Primarily used for poly symbol and test hooks.\r\n * @returns The globally registered value.\r\n */\r\nexport function _getGlobalConfig() {\r\n if (!_globalCfg) {\r\n var gbl = _getGlobalValue() || {};\r\n _globalCfg = gbl[GLOBAL_CONFIG_KEY] = gbl[GLOBAL_CONFIG_KEY] || {};\r\n }\r\n return _globalCfg;\r\n}\r\n//# sourceMappingURL=global.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { EMPTY, UNDEF_VALUE } from \"../internal/constants\";\r\nimport { isError, isNumber, objToString } from \"./base\";\r\n/**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n * @group Error\r\n * @group Diagnostic\r\n * @param object - The object to be converted to a diagnostic string value\r\n * @param format - Identifies whether the JSON value should be formated\r\n * - `true` - Format with 4 spaces\r\n * - 'number' - The number of spaces to format with\r\n * - `false` (or not Truthy) - Do not format\r\n */\r\nexport function dumpObj(object, format) {\r\n var propertyValueDump = EMPTY;\r\n if (isError(object)) {\r\n propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object.name + \"'\";\r\n }\r\n else {\r\n try {\r\n propertyValueDump = JSON.stringify(object, null, format ? (isNumber(format) ? format : 4) : UNDEF_VALUE);\r\n }\r\n catch (e) {\r\n // Unable to convert object (probably circular)\r\n propertyValueDump = \" - \" + dumpObj(e, format);\r\n }\r\n }\r\n return objToString(object) + \": \" + propertyValueDump;\r\n}\r\n//# sourceMappingURL=diagnostics.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { asString } from \"../string/as_string\";\r\nimport { ArrProto, SLICE } from \"./constants\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper to convert an expanded function back into an instance `this` function call\r\n * @param funcName - The function name to call on the first argument passed to the wrapped function\r\n * @param clsProto - The Class or class prototype to fallback to if the instance doesn't have the function.\r\n * @param polyFunc - The function to call if not available on the thisArg, act like the polyfill\r\n * @returns A function which will call the funcName against the first passed argument and pass on the remaining arguments\r\n */\r\nexport function _unwrapFunction(funcName, target, polyFunc) {\r\n return function (thisArg) {\r\n var theFunc = (thisArg && thisArg[funcName]) || (target && target[funcName]);\r\n if (theFunc || polyFunc) {\r\n var theArgs = arguments;\r\n return (theFunc || polyFunc).apply(thisArg, theFunc ? ArrProto[SLICE].call(theArgs, 1) : theArgs);\r\n }\r\n throwTypeError(\"'\" + asString(funcName) + \"' not defined for \" + dumpObj(thisArg));\r\n };\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper to lookup and return the named property from the first argument (which becomes the this)\r\n *\r\n * @since 0.4.2\r\n * @typeParam T - The type of the object which contains the propName\r\n * @param propName - The property name\r\n * @returns The value of the property\r\n */\r\nexport function _unwrapProp(propName) {\r\n return function (thisArg) {\r\n return thisArg[propName];\r\n };\r\n}\r\n//# sourceMappingURL=unwrapFunction.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { MathCls } from \"../internal/constants\";\r\n/**\r\n * The mathMin() function returns the lowest-valued number passed into it, or NaN if any\r\n * parameter isn't a number and can't be converted into one.\r\n *\r\n * If no arguments are given, the result is Infinity.\r\n *\r\n * If at least one of arguments cannot be converted to a number, the result is NaN.\r\n *\r\n * @since 0.4.2\r\n * @group Math\r\n * @param values - Zero or more numbers among which the lowest value will be selected and returned.\r\n * @returns The smallest of the given numbers. If any one or more of the parameters cannot\r\n * be converted into a number, NaN is returned. The result is Infinity if no parameters are provided.\r\n * @example\r\n * ```ts\r\n * const x = 10, y = -20;\r\n * const z = Math.min(x, y); // -20\r\n * ```\r\n */\r\nexport var mathMin = MathCls.min;\r\n/**\r\n * The `mathMax()` function returns the largest of the zero or more numbers given as input\r\n * parameters, or NaN if any parameter isn't a number and can't be converted into one.\r\n *\r\n * If no arguments are given, the result is -Infinity.\r\n *\r\n * If at least one of arguments cannot be converted to a number, the result is NaN.\r\n *\r\n * @since 0.4.2\r\n * @group Math\r\n * @param values - Zero or more numbers among which the largest value will be selected and returned.\r\n * @returns The largest of the given numbers. If any one or more of the parameters cannot be\r\n * converted into a number, NaN is returned. The result is -Infinity if no parameters are provided.\r\n * @example\r\n * ```ts\r\n * mathMax(10, 20); // 20\r\n * mathMax(-10, -20); // -10\r\n * mathMax(-10, 20); // 20\r\n * ```\r\n */\r\nexport var mathMax = MathCls.max;\r\n//# sourceMappingURL=min_max.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { SLICE, StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n/**\r\n * The `strSlice()` method extracts a section of a string and returns it as a new string, without\r\n * modifying the original string.\r\n * `strSlice()` extracts the text from one string and returns a new string. Changes to the text in one\r\n * string do not affect the other string.\r\n * `strSlice()` extracts up to but not including endIndex. str.slice(1, 4) extracts the second character\r\n * through the fourth character (characters indexed 1, 2, and 3).\r\n * As an example, strSlice(2, -1) extracts the third character through the second to last character\r\n * in the string.\r\n * @group String\r\n * @param value - The value to haveextract a number\r\n * @param beginIndex - The zero-based index at which to begin extraction.\r\n * If `beginIndex` is negative, `strSlice()` begins extraction from `value.length + beginIndex`.\r\n * (E.g. `strSlice(\"test\", -2)` returns \"st\")\r\n * If `beginIndex` is omitted, undefined, or cannot be converted to a number (using Number(`beginIndex`)),\r\n * strSlice() begins extraction from the beginning of the string. (E.g. `strSlice(\"test\")` returns \"test\")\r\n * If `beginIndex` is greater than or equal to `value.length`, an empty string is returned.\r\n * (E.g. `strSlice(\"test\", 4)` returns \"\")\r\n * @param endIndex - The index of the first character to exclude from the returned substring.\r\n * If `endIndex` is omitted, undefined, or cannot be converted to a number (using Number(`endIndex`))\r\n * strSlice() extracts to the end of the string. (E.g. `strSlice(\"test\", 2)` returns \"st\")\r\n * If `endIndex` is greater than `value.length`, strSlice() also extracts to the end of the string.\r\n * (E.g. strSlice(\"test\", 2, 10)` returns \"st\")\r\n * If `endIndex` is negative, `strSlice()` treats it as `value.length + endIndex`. (E.g, if `endIndex`\r\n * is -2, it is treated as `value.length - 2` and `strSlice(\"test\", 1, -2)` returns \"e\") .\r\n * If `endIndex` represents a position that is before the one represented by startIndex, `strSlice()`\r\n * returns \"\". (E.g `strSlice(\"test\", 2, -10)`, strSlice(\"test\", -1, -2)` or `strSlice(\"test\", 3, 2)`).\r\n * @returns A new string containing the extracted section of the string.\r\n */\r\nexport var strSlice = _unwrapFunction(SLICE, StrProto);\r\n//# sourceMappingURL=slice.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { isNullOrUndefined, isUndefined } from \"../helpers/base\";\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { EMPTY, LENGTH, StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\nimport { mathMax } from \"../math/min_max\";\r\nimport { strSlice } from \"./slice\";\r\n/**\r\n * The `strSubstring()` method returns the part of the string between the start and end indexes, or to the end of the string.\r\n *\r\n * `strSubstring()` extracts characters from indexStart up to but not including indexEnd. In particular:\r\n * - If `indexEnd` is omitted, strSubstring() extracts characters to the end of the string.\r\n * - If `indexStart` is equal to indexEnd, strSubstring() returns an empty string.\r\n * - If `indexStart` is greater than indexEnd, then the effect of strSubstring() is as if the two arguments were swapped; see example below.\r\n *\r\n * Any argument value that is less than 0 or greater than `value.length` is treated as if it were 0 and `value.length`, respectively.\r\n *\r\n * Any argument value that is NaN is treated as if it were 0.\r\n * @group String\r\n * @param value - The string value to return the substring from.\r\n * @param indexStart - The index of the first character to include in the returned substring.\r\n * @param indexEnd - The index of the first character to exclude from the returned substring.\r\n * @return A new string containing the specified part of the given string\r\n * @example\r\n * ```ts\r\n * const anyString = 'Nevware21';\r\n * // Displays 'N'\r\n * console.log(strSubstring(anyString, 0, 1));\r\n * console.log(strSubstring(anyString, 1, 0));\r\n *\r\n * // Displays 'Nevwar'\r\n * console.log(strSubstring(anyString, 0, 6));\r\n *\r\n * // Displays 'are21'\r\n * console.log(strSubstring(anyString, 4));\r\n *\r\n * // Displays 'are'\r\n * console.log(strSubstring(anyString, 4, 7));\r\n *\r\n * // Displays '21'\r\n * console.log(strSubstring(anyString, 7, 4));\r\n *\r\n * // Displays 'Nevware'\r\n * console.log(strSubstring(anyString, 0, 7));\r\n *\r\n * // Displays 'Nevware21'\r\n * console.log(strSubstring(anyString, 0, 10));\r\n * ```\r\n */\r\nexport var strSubstring = _unwrapFunction(\"substring\", StrProto);\r\n/**\r\n * The strSubstr() method returns a portion of the string, starting at the specified index and extending for a given\r\n * number of characters afterwards.\r\n *\r\n * @since 0.4.2\r\n * @group String\r\n * @param value - The string value to return the substring from.\r\n * @param start - The index of the first character to include in the returned substring.\r\n * @param length - The number of characters to extract.\r\n * @returns A new string containing the specified part of the given string.\r\n */\r\nexport var strSubstr = _unwrapFunction(\"substr\", StrProto, polyStrSubstr);\r\n/**\r\n * The polyStrSubstr() method returns a portion of the string, starting at the specified index and extending for a given\r\n * number of characters afterwards.\r\n *\r\n * @since 0.4.2\r\n * @group String\r\n * @group Polyfill\r\n * @param value - The string value to return the substring from.\r\n * @param start - The index of the first character to include in the returned substring.\r\n * @param length - The number of characters to extract.\r\n * @returns A new string containing the specified part of the given string.\r\n */\r\nexport function polyStrSubstr(value, start, length) {\r\n if (isNullOrUndefined(value)) {\r\n throwTypeError(\"'polyStrSubstr called with invalid \" + dumpObj(value));\r\n }\r\n if (length < 0) {\r\n return EMPTY;\r\n }\r\n // If start is omitted or undefined, its treated as zero\r\n start = start || 0;\r\n if (start < 0) {\r\n start = mathMax(start + value[LENGTH], 0);\r\n }\r\n if (isUndefined(length)) {\r\n return strSlice(value, start);\r\n }\r\n return strSlice(value, start, start + length);\r\n}\r\n/**\r\n * Returns a substring of the string starting from the left.\r\n *\r\n * `strLeft()` extracts the number of characters from left of the string up to the count. In particular:\r\n * - If `count` is less than zero, strLeft() returns an empty string.\r\n * - If `count` is less than `value.length', strLeft() returns a new string with the `count` number of characters from the left of the string.\r\n * - If `count` is greater than `value.length`, then the value original value is returned.\r\n *\r\n * Any argument value that is NaN is treated as if it were 0.\r\n *\r\n * @since 0.4.2\r\n * @group String\r\n * @param value - The string value to return the substring from.\r\n * @param count - The number of characters to extract\r\n * @returns The substring based on the count number of characters from the right\r\n * @example\r\n * ```ts\r\n * strLeft(\"Nevware21\", -1); // \"\"\r\n * strLeft(\"Nevware21\", 0); // \"\"\r\n * strLeft(\"Nevware21\", 1); // \"N\"\r\n * strLeft(\"Nevware21\", 3); // \"Nev\"\r\n * strLeft(\"Nevware21\", 21); // \"Nevware21\"\r\n * ```\r\n */\r\nexport function strLeft(value, count) {\r\n return strSubstring(value, 0, count);\r\n}\r\n/**\r\n * Returns a substring of the string starting from the right.\r\n *\r\n * `strRight()` extracts the number of characters from right of the string up to the count. In particular:\r\n * - If `count` is less than zero, strRight() returns an empty string.\r\n * - If `count` is less than `value.length', strRight() returns a new string with the `count` number of characters from the right of the string.\r\n * - If `count` is greater than `value.length`, then the value original value is returned.\r\n *\r\n * Any argument value that is NaN is treated as if it were 0.\r\n *\r\n * @since 0.4.2\r\n * @group String\r\n * @param value - The string value to return the substring from.\r\n * @param count - The number of characters to extract\r\n * @returns The substring based on the count number of characters from the right\r\n * @example\r\n * ```ts\r\n * strRight(\"Nevware21\", -1); // \"\"\r\n * strRight(\"Nevware21\", 0); // \"\"\r\n * strRight(\"Nevware21\", 1); // \"1\"\r\n * strRight(\"Nevware21\", 3); // \"e21\"\r\n * strRight(\"Nevware21\", 21); // \"Nevware21\"\r\n * ```\r\n */\r\nexport function strRight(value, count) {\r\n var len = value[LENGTH];\r\n if (count <= 0) {\r\n return EMPTY;\r\n }\r\n return len > count ? strSubstring(value, len - count) : value;\r\n}\r\n//# sourceMappingURL=substring.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { _wellKnownSymbolMap } from \"../symbol/well_known\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { POLYFILL_TAG, SYMBOL } from \"../internal/constants\";\r\nimport { objHasOwn } from \"../object/has_own\";\r\nimport { asString } from \"../string/as_string\";\r\nimport { _getGlobalConfig } from \"../internal/global\";\r\nimport { strStartsWith } from \"../string/starts_with\";\r\nvar _polySymbols;\r\nfunction _globalSymbolRegistry() {\r\n if (!_polySymbols) {\r\n var gblCfg = _getGlobalConfig();\r\n _polySymbols = gblCfg.gblSym = gblCfg.gblSym || { k: {}, s: {} };\r\n }\r\n return _polySymbols;\r\n}\r\nvar _wellKnownSymbolCache = {};\r\n/**\r\n * Returns a new (polyfill) Symbol object for the provided description that's guaranteed to be unique.\r\n * Symbols are often used to add unique property keys to an object that won't collide with keys any\r\n * other code might add to the object, and which are hidden from any mechanisms other code will\r\n * typically use to access the object. That enables a form of weak encapsulation, or a weak form of\r\n * information hiding.\r\n * @group Polyfill\r\n * @group Symbol\r\n * @param description - The description of the symbol\r\n * @returns A new polyfill version of a Symbol object\r\n */\r\nexport function polyNewSymbol(description) {\r\n var theSymbol = {\r\n description: asString(description),\r\n toString: function () { return SYMBOL + \"(\" + description + \")\"; }\r\n };\r\n // Tag the symbol so we know it a polyfill\r\n theSymbol[POLYFILL_TAG] = true;\r\n return theSymbol;\r\n}\r\n/**\r\n * Returns a Symbol object from the global symbol registry matching the given key if found.\r\n * Otherwise, returns a new symbol with this key.\r\n * @group Polyfill\r\n * @group Symbol\r\n * @param key key to search for.\r\n */\r\nexport function polySymbolFor(key) {\r\n var registry = _globalSymbolRegistry();\r\n if (!objHasOwn(registry, key)) {\r\n var newSymbol = polyNewSymbol(key);\r\n registry.k[key] = newSymbol;\r\n registry.s[newSymbol] = asString(key);\r\n }\r\n return registry.k[key];\r\n}\r\n/**\r\n * Returns a key from the global symbol registry matching the given Symbol if found.\r\n * Otherwise, returns a undefined.\r\n * @group Polyfill\r\n * @group Symbol\r\n * @param sym Symbol to find the key for.\r\n */\r\nexport function polySymbolKeyFor(sym) {\r\n if (!sym || !sym.toString || !strStartsWith(sym.toString(), SYMBOL)) {\r\n throwTypeError(sym + \" is not a symbol\");\r\n }\r\n return _globalSymbolRegistry().s[sym];\r\n}\r\n/**\r\n * Returns the polyfill version of a well-known global symbol, this will only return\r\n * known values.\r\n * @example\r\n * ```ts\r\n * // Always returns the polyfill version, even if Symbols are supported in the runtime\r\n * polyGetKnownSymbol(\"toStringTag\") === polyGetKnownSymbol(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(WellKnownSymbols.toStringTag) === polyGetKnownSymbol(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(\"toStringTag\") !== Symbol.toStringTag; // true\r\n * polyGetKnownSymbol(WellKnownSymbols.toStringTag) !== Symbol.toStringTag; // true\r\n * polyGetKnownSymbol(\"toStringTag\") !== polySymbolFor(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(WellKnownSymbols.toStringTag) !== polySymbolFor(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(\"toStringTag\") !== polyNewSymbol(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(WellKnownSymbols.toStringTag) !== polyNewSymbol(\"toStringTag\"); // true\r\n * ```\r\n * @group Polyfill\r\n * @group Symbol\r\n * @param name - The property name to return (if it exists) for Symbol\r\n * @returns The value of the property if present\r\n */\r\nexport function polyGetKnownSymbol(name) {\r\n var result;\r\n var knownName = _wellKnownSymbolMap[name];\r\n if (knownName) {\r\n result = _wellKnownSymbolCache[knownName] = _wellKnownSymbolCache[knownName] || polyNewSymbol(SYMBOL + \".\" + knownName);\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=symbol.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ObjClass, VALUE } from \"../internal/constants\";\r\nimport { isFunction, isUndefined } from \"../helpers/base\";\r\nimport { objForEachKey } from \"./for_each_key\";\r\nimport { objGetOwnPropertyDescriptor } from \"./get_own_prop_desc\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * Mapping from ObjDefinePropDescriptor key to PropertyDescriptor key\r\n */\r\nvar propMap = {\r\n e: \"enumerable\",\r\n c: \"configurable\",\r\n v: VALUE,\r\n w: \"writable\",\r\n g: \"get\",\r\n s: \"set\"\r\n};\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper to convert ObjDefinePropDescriptor into PropertyDescriptor\r\n * @param value - The prop descriptor to convert\r\n * @returns\r\n */\r\nfunction _createProp(value) {\r\n var prop = {};\r\n prop[propMap[\"c\"]] = true;\r\n prop[propMap[\"e\"]] = true;\r\n if (value.l) {\r\n // Asign a getter function to return the value when requested\r\n prop.get = function () { return value.l.v; };\r\n // If it has a setter then expose it as well\r\n var desc = objGetOwnPropertyDescriptor(value.l, \"v\");\r\n if (desc && desc.set) {\r\n prop.set = function (newValue) {\r\n value.l.v = newValue;\r\n };\r\n }\r\n }\r\n objForEachKey(value, function (key, value) {\r\n prop[propMap[key]] = isUndefined(value) ? prop[propMap[key]] : value;\r\n });\r\n return prop;\r\n}\r\n/**\r\n * Defines a new property directly on an object, or modifies an existing property on an object, and returns the object.\r\n * This is a wrapper for [Object.defineProperty](https://developer.mozilla.org/en-US/docs/web/javascript/reference/global_objects/object/defineproperty)\r\n *\r\n * This method allows a precise addition to or modification of a property on an object. Normal property addition through\r\n * assignment creates properties which show up during property enumeration (for...in loop or objKeys method), whose\r\n * values may be changed, and which may be deleted. This method allows these extra details to be changed from their\r\n * defaults. By default, properties added using objDefineProp() are not writable, not enumerable, and not configurable.\r\n *\r\n * Property descriptors present in objects come in two main flavors: data descriptors and accessor descriptors. A data\r\n * descriptor is a property that has a value, which may or may not be writable. An accessor descriptor is a property\r\n * described by a getter-setter pair of functions. A descriptor must be one of these two flavors; it cannot be both.\r\n *\r\n * This is an alias for Object.defineProperty\r\n * @group Object\r\n * @param target - The object on which to define the property.\r\n * @param key - The name or Symbol of the property to be defined or modified.\r\n * @param descriptor - The descriptor for the property being defined or modified.\r\n */\r\nexport var objDefineProp = ObjClass[\"defineProperty\"];\r\n/**\r\n * The objDefineProperties() method defines new or modifies existing properties directly on an object, returning the object.\r\n * This is a wrapper for [Object.defineProperties](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties)\r\n * @since 0.6.0\r\n * @group Object\r\n * @param target - The object on which to define or modify properties.\r\n * @param props - An object whose keys represent the names of properties to be defined or modified and whose values are\r\n * objects describing those properties. Each value in props must be either a data descriptor or an accessor descriptor;\r\n * it cannot be both (see {@link ObjDefinePropDescriptorMap} for more details).\r\n * @returns\r\n */\r\nexport var objDefineProperties = ObjClass[\"defineProperties\"];\r\n/**\r\n * Try to define a get object property accessor for the target object, if a function is past as the value this will\r\n * be assumed to be a getter function and NOT the value.\r\n * @deprecated It is recommended that you use {@link objDefine} instead {@link objDefineGet} or {@link objDefineAccessors}\r\n * as it provides a deterministic way for identifying whether the value is a value or a function rather than wrapping any\r\n * function value in another function.\r\n * @group Object\r\n * @param target - The object on which to define the property.\r\n * @param key - The name of the property to be defined or modified\r\n * @param value - The value or a function that returns the value\r\n * @param configurable - Can the value be changed, defaults to true.\r\n * @param enumerable - Should this get property be enumerable, defaults to true.\r\n * @returns The object that was passed to the function\r\n */\r\nexport function objDefineGet(target, key, value, configurable, enumerable) {\r\n var _a;\r\n return objDefineProp(target, key, _createProp((_a = {\r\n e: enumerable,\r\n c: configurable\r\n },\r\n _a[isFunction(value) ? \"g\" : \"v\"] = value,\r\n _a)));\r\n}\r\n/**\r\n * Try to define get/set object property accessors for the target object/prototype, this will provide compatibility with\r\n * existing API definition when run within an ES5+ container that supports accessors but still enable the code to be loaded\r\n * and executed in an ES3 container, providing basic IE8 compatibility.\r\n * @deprecated It is recommended that you use {@link objDefine} instead {@link objDefineAccessors} as this internally creates\r\n * the {@link ObjDefinePropDescriptor} definition based on your provided arguments. And only using a minimum set of functions\r\n * reduces your overall bundle size.\r\n * @group Object\r\n * @param target - The object on which to define the property.\r\n * @param prop - The name of the property to be defined or modified.\r\n * @param getProp - The getter function to wire against the getter.\r\n * @param setProp - The setter function to wire against the setter.\r\n * @param configurable - Can the value be changed, defaults to true\r\n * @param enumerable - Should this get property be enumerable, defaults to true.\r\n * @returns The object that was passed to the function\r\n */\r\nexport function objDefineAccessors(target, prop, getProp, setProp, configurable, enumerable) {\r\n var desc = {\r\n e: enumerable,\r\n c: configurable\r\n };\r\n if (getProp) {\r\n desc.g = getProp;\r\n }\r\n if (setProp) {\r\n desc.s = setProp;\r\n }\r\n return objDefineProp(target, prop, _createProp(desc));\r\n}\r\n/**\r\n * The objDefine() method defines a new or modifies an existing single property accessors for the target object based\r\n * on the configuration defined for the propDesc argument of type {@link ObjDefinePropDescriptor}. This will call\r\n * {@link objDefineProp} after creating the required PropertyDescriptor populating defaults for the propDesc values.\r\n * Note, the default values (true) for `configurable` and `enumerable` are different from the defaults provided by objDefineProp.\r\n * @since 0.6.0\r\n * @group Object\r\n * @param target - The object on which to define the property.\r\n * @param key - The name of the property to be defined or modified\r\n * @param propDesc - An object which defines the Property Descriptor mappings for the mapping.\r\n * @returns The target object.\r\n */\r\nexport function objDefine(target, key, propDesc) {\r\n return objDefineProp(target, key, _createProp(propDesc));\r\n}\r\n/**\r\n * The objDefineProps() method defines new or modifies existing properties directly for the target object using the keys\r\n * and configuration from the propDescMap argument. This will call {@link objDefineProperties} after creating the required\r\n * PropertyDescriptorMap from the propDescMap values.\r\n * Note, the default values (true) for `configurable` and `enumerable` are different from the defaults provided by objDefineProperties.\r\n * @since 0.6.0\r\n * @group Object\r\n * @param target - The object on which to define or modify properties.\r\n * @param propDescMap - An object whose keys represent the names of properties to be defined or modified and whose values are\r\n * objects describing those properties. Each value in props must be either a data descriptor or an accessor descriptor;\r\n * it cannot be both (see {@link ObjDefinePropDescriptorMap} for more details).\r\n * @returns The target object.\r\n */\r\nexport function objDefineProps(target, propDescMap) {\r\n var props = {};\r\n objForEachKey(propDescMap, function (key, value) {\r\n props[key] = _createProp(value);\r\n });\r\n return objDefineProperties(target, props);\r\n}\r\n//# sourceMappingURL=define.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { _getGlobalConfig } from \"../internal/global\";\r\nimport { objDefineProp } from \"../object/define\";\r\n/**\r\n * @internal\r\n * Internal flag which is set by the public {@link setBypassLazyCache}, should not be externally exported\r\n */\r\nexport var _globalLazyTestHooks;\r\nvar _fetchLazyTestHooks = function () {\r\n _globalLazyTestHooks = _getGlobalConfig();\r\n _fetchLazyTestHooks = null;\r\n};\r\n/**\r\n * Create and return an readonly {@link ILazyValue} instance which will cache and return the value returned\r\n * by the callback function. The callback function will only be called once, multiple access of the value\r\n * does not cause re-execution of the callback as the result from the first call is cached internally.\r\n * @since 0.4.5\r\n * @group Lazy\r\n * @param cb - The callback function to fetch the value to be lazily evaluated and cached\r\n * @returns A new readonly {@link ILazyValue} instance which wraps the callback and will be used to cache\r\n * the result of the callback\r\n * @example\r\n * ```ts\r\n * // This does not cause the evaluation to occur\r\n * let cachedValue = getLazy(() => callSomeExpensiveFunction());\r\n * let theValue;\r\n *\r\n * // Just checking if there is an object still does not cause the evaluation\r\n * if (cachedValue) {\r\n * // This will cause the evaluation to occur and the result will be cached\r\n * theValue = cachedValue.v;\r\n * }\r\n *\r\n * // Accessing the value again will not cause the re-evaluation to occur, it will just return the same\r\n * // result value again.\r\n * theValue === cachedValue.v; // true\r\n *\r\n * ```\r\n */\r\nexport function getLazy(cb) {\r\n var lazyValue = {};\r\n _fetchLazyTestHooks && _fetchLazyTestHooks();\r\n lazyValue.b = _globalLazyTestHooks.lzy;\r\n objDefineProp(lazyValue, \"v\", {\r\n configurable: true,\r\n get: function () {\r\n var result = cb();\r\n if (!_globalLazyTestHooks.lzy) {\r\n // Just replace the value\r\n objDefineProp(lazyValue, \"v\", {\r\n value: result\r\n });\r\n if (lazyValue.b) {\r\n delete lazyValue.b;\r\n }\r\n }\r\n if (_globalLazyTestHooks.lzy && lazyValue.b !== _globalLazyTestHooks.lzy) {\r\n lazyValue.b = _globalLazyTestHooks.lzy;\r\n }\r\n return result;\r\n }\r\n });\r\n return lazyValue;\r\n}\r\n/**\r\n * Test Hook function used to cause the internal caching of objects to be bypassed, this should never\r\n * be enabled for production as it has additional performance impact caused by the repetitive creation\r\n * of the lazy wrappers.\r\n * @group Lazy\r\n * @since 0.5.0\r\n * @param newValue - When `true` will cause all new lazy implementations to bypass the cached lookup.\r\n */\r\nexport function setBypassLazyCache(newValue) {\r\n _fetchLazyTestHooks && _fetchLazyTestHooks();\r\n _globalLazyTestHooks.lzy = newValue;\r\n}\r\n/**\r\n * Create and return a writable {@link ILazyValue} instance which will cache and return the value returned\r\n * by the callback function. The callback function will only be called once, multiple access of the value\r\n * does not cause re-execution of the callback as the result from the first call is cached internally. The\r\n * value may be set as many times as required, if the callback has not been called when you set the value\r\n * it will never get called.\r\n * @since 0.9.4\r\n * @group Lazy\r\n * @param cb - The callback function to fetch the value to be lazily evaluated and cached\r\n * @returns A new writable {@link ILazyValue} instance which wraps the callback and will be used to cache\r\n * the result of the callback\r\n * @example\r\n * ```ts\r\n * // This does not cause the evaluation to occur\r\n * let cachedValue = getWritableLazy(() => callSomeExpensiveFunction());\r\n * let theValue;\r\n *\r\n * // Just checking if there is an object still does not cause the evaluation\r\n * if (cachedValue) {\r\n * // This will cause the evaluation to occur and the result will be cached\r\n * theValue = cachedValue.v;\r\n * }\r\n *\r\n * // Accessing the value again will not cause the re-evaluation to occur, it will just return the same\r\n * // result value again.\r\n * theValue === cachedValue.v; // true\r\n *\r\n * // Setting the value\r\n * let cachedValue = getWritableLazy(() => callSomeExpensiveFunction());\r\n * let theValue = \"new Value\";\r\n *\r\n * // Just checking if there is an object still does not cause the evaluation\r\n * if (cachedValue) {\r\n * // This will set the value to be set explicitly and the callback\r\n * // will now never occur and the result will be cached\r\n * cachedValue.v = theValue;\r\n * }\r\n *\r\n * // Accessing the value again will cause the previously set value to be returned.\r\n * theValue === cachedValue.v; // true\r\n * ```\r\n */\r\nexport function getWritableLazy(cb) {\r\n var lazyValue = {};\r\n _fetchLazyTestHooks && _fetchLazyTestHooks();\r\n lazyValue.b = _globalLazyTestHooks.lzy;\r\n var _setValue = function (newValue) {\r\n // Just replace the value\r\n objDefineProp(lazyValue, \"v\", {\r\n value: newValue,\r\n writable: true\r\n });\r\n if (lazyValue.b) {\r\n delete lazyValue.b;\r\n }\r\n };\r\n objDefineProp(lazyValue, \"v\", {\r\n configurable: true,\r\n get: function () {\r\n var result = cb();\r\n if (!_globalLazyTestHooks.lzy) {\r\n // Just replace the value\r\n _setValue(result);\r\n }\r\n if (_globalLazyTestHooks.lzy && lazyValue.b !== _globalLazyTestHooks.lzy) {\r\n lazyValue.b = _globalLazyTestHooks.lzy;\r\n }\r\n return result;\r\n },\r\n set: _setValue\r\n });\r\n return lazyValue;\r\n}\r\n//# sourceMappingURL=lazy.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { getLazy } from \"./lazy\";\r\nimport { safeGet } from \"./safe_get\";\r\n/**\r\n * Create and return an readonly {@link ILazyValue} instance which will cache and return the value returned\r\n * by the callback function. The callback function will only be called once, multiple access of the value\r\n * does not cause re-execution of the callback as the result from the first call is cached internally.\r\n * If the callback throws the default value will be returned.\r\n * @since 0.9.5\r\n * @group Lazy\r\n * @group Safe\r\n * @param cb - The callback function to fetch the value to be lazily evaluated and cached\r\n * @param defValue - The default value to return when an exception is thrown\r\n * @returns A new readonly {@link ILazyValue} instance which wraps the callback and will be used to cache\r\n * the result of the callback\r\n * @example\r\n * ```ts\r\n * // This does not cause the evaluation to occur\r\n * let cachedValue = safeGetLazy(() => callSomeExpensiveFunctionWhichMightThrow(), \"someDefaultValue\");\r\n * let theValue;\r\n *\r\n * // Just checking if there is an object still does not cause the evaluation\r\n * if (cachedValue) {\r\n * // This will cause the evaluation to occur and the result will be cached\r\n * theValue = cachedValue.v;\r\n * }\r\n *\r\n * // Accessing the value again will not cause the re-evaluation to occur, it will just return the same\r\n * // result value again.\r\n * theValue === cachedValue.v; // true\r\n *\r\n * ```\r\n */\r\nexport function safeGetLazy(cb, defValue) {\r\n return getLazy(function () { return safeGet(cb, defValue); });\r\n}\r\n//# sourceMappingURL=safe_lazy.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { UNDEF_VALUE } from \"../internal/constants\";\r\nimport { _getGlobalValue } from \"../internal/global\";\r\nimport { safeGetLazy } from \"./safe_lazy\";\r\nimport { _globalLazyTestHooks } from \"./lazy\";\r\nvar WINDOW = \"window\";\r\nvar _cachedGlobal;\r\nvar _cachedWindow;\r\nvar _cachedDocument;\r\nvar _cachedNavigator;\r\nvar _cachedHistory;\r\nvar _isWebWorker;\r\nvar _isNode;\r\n/**\r\n * Create and return an readonly {@link ILazyValue} instance which will cache and return the named global\r\n * value if available, will return `null` if the named global object is not available or if the runtime\r\n * throws an exception when attempting to access the global object.\r\n * Unlike {@link getInst} the value is cached after the first access, so if the global value changes after\r\n * the initial fetch the original cached value is still returned.\r\n * @since 0.9.5\r\n * @group Environment\r\n * @group Lazy\r\n * @group Safe\r\n * @param name The name of the global object to get.\r\n * @returns A new readonly {@link ILazyValue} instance which will lazily attempt to return the globally\r\n * available named instance.\r\n * @example\r\n * ```ts\r\n * // This does not cause the evaluation to occur\r\n * window.myGlobal = \"Hello\";\r\n * let cachedValue = lazySafeGetInst(\"myGlobal\");\r\n * // cachedValue.v === \"Hello\"\r\n *\r\n * window.myGlobal = \"Darkness\";\r\n * // cachedValue.v === \"Hello\"\r\n *\r\n * let promiseCls = lazySafeGetInst(\"Promise\");\r\n * // null if Promise is not supported in the runtime\r\n * // otherwise the Promise class.\r\n * ```\r\n */\r\nexport function lazySafeGetInst(name) {\r\n return safeGetLazy(function () { return getInst(name) || UNDEF_VALUE; }, UNDEF_VALUE);\r\n}\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal\r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions. And this caches the lookup of the global as in some environments\r\n * this can be an expensive operation.\r\n * @group Environment\r\n * @param useCached - [Optional] used for testing to bypass the cached lookup, when `true` this will\r\n * cause the cached global to be reset.\r\n */\r\nexport function getGlobal(useCached) {\r\n (!_cachedGlobal || useCached === false || (_globalLazyTestHooks.lzy && !_cachedGlobal.b)) && (_cachedGlobal = safeGetLazy(_getGlobalValue, null));\r\n return _cachedGlobal.v;\r\n}\r\n/**\r\n * Return the named global object if available, will return null if the object is not available.\r\n * @group Environment\r\n * @param name The globally named object\r\n * @param useCached - [Optional] used for testing to bypass the cached lookup, when `true` this will\r\n * cause the cached global to be reset.\r\n * @example\r\n * ```ts\r\n * // This does not cause the evaluation to occur\r\n * window.myGlobal = \"Hello\";\r\n * let cachedValue = getInst(\"myGlobal\");\r\n * // cachedValue === \"Hello\"\r\n *\r\n * window.myGlobal = \"Darkness\";\r\n * // getInst(\"myGlobal\") === \"Darkness\"\r\n *\r\n * let promiseCls = getInst(\"Promise\");\r\n * // May throw if the global is not supported by the runtime\r\n * // otherwise the Promise class.\r\n * ```\r\n */\r\nexport function getInst(name, useCached) {\r\n var gbl = getGlobal(useCached);\r\n if (gbl && gbl[name]) {\r\n return gbl[name];\r\n }\r\n // Test workaround, for environments where .window (when global == window) doesn't return the base window\r\n if (name === WINDOW && _cachedWindow) {\r\n // tslint:disable-next-line: no-angle-bracket-type-assertion\r\n return _cachedWindow.v;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Identify whether the runtime contains a `document` object\r\n * @group Environment\r\n * @returns - True if a `document` exists\r\n */\r\nexport function hasDocument() {\r\n return !!getDocument();\r\n}\r\n/**\r\n * Return the global `document` instance.\r\n * @group Environment\r\n * @returns\r\n */\r\nexport function getDocument() {\r\n (!_cachedDocument || (_globalLazyTestHooks.lzy && !_cachedDocument.b)) && (_cachedDocument = lazySafeGetInst(\"document\"));\r\n return _cachedDocument.v;\r\n}\r\n/**\r\n * Identify whether the runtime contains a `window` object\r\n * @group Environment\r\n * @returns\r\n */\r\nexport function hasWindow() {\r\n return !!getWindow();\r\n}\r\n/**\r\n * Return the global `window` instance.\r\n * @group Environment\r\n * @returns\r\n */\r\nexport function getWindow() {\r\n (!_cachedWindow || (_globalLazyTestHooks.lzy && !_cachedWindow.b)) && (_cachedWindow = lazySafeGetInst(WINDOW));\r\n return _cachedWindow.v;\r\n}\r\n/**\r\n * Identify whether the runtimne contains a `navigator` object\r\n * @group Environment\r\n * @returns\r\n */\r\nexport function hasNavigator() {\r\n return !!getNavigator();\r\n}\r\n/**\r\n * Returns the global `navigator` instance\r\n * @group Environment\r\n * @returns\r\n */\r\nexport function getNavigator() {\r\n (!_cachedNavigator || (_globalLazyTestHooks.lzy && !_cachedNavigator.b)) && (_cachedNavigator = lazySafeGetInst(\"navigator\"));\r\n return _cachedNavigator.v;\r\n}\r\n/**\r\n * Identifies whether the runtime contains a `history` object\r\n * @group Environment\r\n * @returns\r\n */\r\nexport function hasHistory() {\r\n return !!getHistory();\r\n}\r\n/**\r\n * Returns the global `history` instance\r\n * @group Environment\r\n * @returns\r\n */\r\nexport function getHistory() {\r\n (!_cachedHistory || (_globalLazyTestHooks.lzy && !_cachedHistory.b)) && (_cachedHistory = lazySafeGetInst(\"history\"));\r\n return _cachedHistory.v;\r\n}\r\n/**\r\n * Simple method to determine if we are running in a node environment\r\n * @group Environment\r\n * @returns True if you are\r\n */\r\nexport function isNode() {\r\n !_isNode && (_isNode = safeGetLazy(function () { return !!(process && (process.versions || {}).node); }, false));\r\n return _isNode.v;\r\n}\r\n/**\r\n * Helper to identify if you are running as a Dedicated, Shared or Service worker\r\n * @group Environment\r\n * @returns True if the environment you are in looks like a Web Worker\r\n */\r\nexport function isWebWorker() {\r\n !_isWebWorker && (_isWebWorker = safeGetLazy(function () { return !!(self && self instanceof WorkerGlobalScope); }, false));\r\n return _isWebWorker.v;\r\n}\r\n//# sourceMappingURL=environment.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { SYMBOL, UNDEF_VALUE } from \"../internal/constants\";\r\nimport { polyGetKnownSymbol, polyNewSymbol, polySymbolFor, polySymbolKeyFor } from \"../polyfills/symbol\";\r\nimport { _wellKnownSymbolMap } from \"./well_known\";\r\nimport { _createIs } from \"../helpers/base\";\r\nimport { _globalLazyTestHooks } from \"../helpers/lazy\";\r\nimport { safeGetLazy } from \"../helpers/safe_lazy\";\r\nimport { lazySafeGetInst } from \"../helpers/environment\";\r\nvar _symbol;\r\nvar _symbolFor;\r\nvar _symbolKeyFor;\r\nfunction _getSymbolValue(name) {\r\n return safeGetLazy(function () {\r\n return (_symbol.v ? _symbol[name] : UNDEF_VALUE);\r\n }, UNDEF_VALUE);\r\n}\r\n/**\r\n * Checks if the type of value is a symbol.\r\n * @group Symbol\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a symbol, false otherwise.\r\n */\r\nexport var isSymbol = _createIs(\"symbol\");\r\n/**\r\n * Helper to identify whether the runtime support the Symbols either via native or an installed polyfill\r\n * @group Symbol\r\n * @returns true if Symbol's are support otherwise false\r\n */\r\nexport function hasSymbol() {\r\n return !!getSymbol();\r\n}\r\n/**\r\n * If Symbols are supported then attempt to return the named Symbol\r\n * @group Symbol\r\n * @returns The value of the named Symbol (if available)\r\n */\r\nexport function getSymbol() {\r\n var resetCache = !_symbol || (_globalLazyTestHooks && _globalLazyTestHooks.lzy && !_symbol.b);\r\n resetCache && (_symbol = lazySafeGetInst(SYMBOL));\r\n (!_symbolFor || resetCache) && (_symbolFor = _getSymbolValue(\"for\"));\r\n (!_symbolKeyFor || resetCache) && (_symbolKeyFor = _getSymbolValue(\"keyFor\"));\r\n return _symbol.v;\r\n}\r\n/**\r\n * If Symbols are supported then get the property of the global Symbol, if Symbol's are\r\n * not supported and noPoly is true it returns null. Used to access the well known symbols.\r\n * @group Symbol\r\n * @param name - The property name to return (if it exists) for Symbol\r\n * @param noPoly - Flag indicating whether to return a polyfill if symbols are not supported.\r\n * @returns The value of the property if present\r\n * @example\r\n * ```ts\r\n * // If Symbol is supported in the runtime\r\n * getKnownSymbol(\"toStringTag\") === Symbol.toStringTag; // true\r\n * getKnownSymbol(WellKnownSymbols.toStringTag) === Symbol.toStringTag; // true\r\n * ```\r\n */\r\nexport function getKnownSymbol(name, noPoly) {\r\n var knownName = _wellKnownSymbolMap[name];\r\n // Cause lazy symbol to get initialized\r\n (!_symbol || (_globalLazyTestHooks.lzy && !_symbol.b)) && getSymbol();\r\n return _symbol.v ? _symbol.v[knownName || name] : (!noPoly ? polyGetKnownSymbol(name) : UNDEF_VALUE);\r\n}\r\n/**\r\n * Returns a new unique Symbol value. If noPoly is true and symbols are not supported\r\n * then this will return null.\r\n * @group Symbol\r\n * @param description Description of the new Symbol object.\r\n * @param noPoly - Flag indicating whether to return a polyfil if symbols are not supported.\r\n * @returns The new symbol\r\n */\r\nexport function newSymbol(description, noPoly) {\r\n // Cause lazy _symbol to get initialized\r\n (!_symbol || (_globalLazyTestHooks.lzy && !_symbol.b)) && getSymbol();\r\n return _symbol.v ? _symbol.v(description) : (!noPoly ? polyNewSymbol(description) : null);\r\n}\r\n/**\r\n * Returns a Symbol object from the global symbol registry matching the given key if found.\r\n * Otherwise, returns a new symbol with this key. This will always return a polyfill if symbols\r\n * are not supported.\r\n * @group Symbol\r\n * @param key key to search for.\r\n */\r\nexport function symbolFor(key) {\r\n // Cause lazy symbol to get initialized\r\n (!_symbolFor || (_globalLazyTestHooks.lzy && !_symbol.b)) && getSymbol();\r\n return (_symbolFor.v || polySymbolFor)(key);\r\n}\r\n/**\r\n * Returns a key from the global symbol registry matching the given Symbol if found.\r\n * Otherwise, returns a undefined. This will always attempt to lookup the polyfill\r\n * implementation if symbols are not supported\r\n * @group Symbol\r\n * @param sym Symbol to find the key for.\r\n */\r\nexport function symbolKeyFor(sym) {\r\n // Cause lazy symbol to get initialized\r\n (!_symbolKeyFor || (_globalLazyTestHooks.lzy && !_symbol.b)) && getSymbol();\r\n return (_symbolKeyFor.v || polySymbolKeyFor)(sym);\r\n}\r\n//# sourceMappingURL=symbol.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { getKnownSymbol } from \"../symbol/symbol\";\r\nimport { isFunction, isStrictNullOrUndefined } from \"../helpers/base\";\r\n/**\r\n * Checks if the type of value looks like an iterator instance (contains a next function).\r\n *\r\n * @since 0.4.0\r\n * @group Type Identity\r\n * @group Iterator\r\n * @typeParam T - Identifies the return type of the iterator defaults to any\r\n * @param value - The value to be checked\r\n * @returns {boolean} True if the value is an Iterator, otherwise false\r\n * @example\r\n * ```ts\r\n * isIterator(null); // false\r\n * isIterator(undefined); // false\r\n * isIterator(\"null\"); // false (Strings are iterable but not iterators)\r\n * isIterator([]); // false (Arrays are iterable but not iterators)\r\n * isIterator({\r\n * next: function() { return true }\r\n * }); // true, iterators must contain a \"next\" function\r\n * ```\r\n */\r\nexport function isIterator(value) {\r\n return !!value && isFunction(value.next);\r\n}\r\n/**\r\n * Checks if the value looks like it is iterable, contains a [symbol.iterator].\r\n *\r\n * @since 0.4.0\r\n * @group Type Identity\r\n * @group Iterator\r\n * @typeParam T - Identifies the return type of the iterator\r\n * @param value - The value to be checked\r\n * @returns {boolean} True if the value is an Iterable, otherwise false\r\n * @example\r\n * ```ts\r\n * isIterable(null); // false\r\n * isIterable(undefined); // false\r\n * isIterable(\"null\"); // true (Strings are iterable)\r\n * isIterable([]); // true (Arrays are iterable)\r\n * ```\r\n */\r\nexport function isIterable(value) {\r\n return !isStrictNullOrUndefined(value) && isFunction(value[getKnownSymbol(3 /* WellKnownSymbols.iterator */)]);\r\n}\r\n//# sourceMappingURL=iterator.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { DONE, VALUE } from \"../internal/constants\";\r\nimport { getKnownSymbol } from \"../symbol/symbol\";\r\nimport { isIterator } from \"./iterator\";\r\n/**\r\n * Calls the provided `callbackFn` function once for each element in the iterator or iterator returned by\r\n * the iterable and processed in the same order as returned by the iterator. As with the {@link arrForEach}\r\n * you CAN stop / break the iteration by returning -1 from the`callbackFn` function.\r\n *\r\n * The order of processing is not reset if you add or remove elements to the iterator, the actual behavior\r\n * will depend on the iterator imeplementation.\r\n *\r\n * If the passed `iter` is both an Iterable and Iterator the Iterator interface takes preceedence.\r\n * @remarks\r\n * If Symbols are NOT supported then the iterable MUST be using the same polyFill for the well know symbols,\r\n * if you are targetting a mixed environment you SHOULD either\r\n * - only use the polyfill Symbol's provided by this library\r\n * - ensure that you add any symbol polyfills BEFORE these utilities\r\n * iterForOf expects a `synchronous` function.\r\n * iterForOf does not wait for promises. Make sure you are aware of the implications while using\r\n * promises (or async functions) as forEach callback.\r\n *\r\n * @since 0.4.2\r\n * @group Iterator\r\n * @typeParam T - Identifies the element type of the iterator\r\n * @param callbackfn A `synchronous` function that accepts up to three arguments. iterForOf calls the\r\n * callbackfn function one time for each element returned by the iterator.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is\r\n * omitted, null or undefined the iterator will be used as the this value.\r\n * @example\r\n * ```ts\r\n * const items = {\r\n * 'item1': 'value1',\r\n * 'item2': 'value2',\r\n * 'item3': 'value3\r\n * };\r\n * const copyItems = [];\r\n *\r\n * iterForOf(items, (item) => {\r\n * copyItems.push(item);\r\n * // May return -1 to abort the iteration\r\n * });\r\n * ```\r\n */\r\nexport function iterForOf(iter, callbackfn, thisArg) {\r\n if (iter) {\r\n if (!isIterator(iter)) {\r\n var itSymbol = getKnownSymbol(3 /* WellKnownSymbols.iterator */);\r\n iter = iter[itSymbol] ? iter[itSymbol]() : null;\r\n }\r\n if (isIterator(iter)) {\r\n try {\r\n var count = 0;\r\n var value = iter.next();\r\n while (!value[DONE]) {\r\n if (callbackfn.call(thisArg || iter, value[VALUE], count, iter) === -1) {\r\n break;\r\n }\r\n count++;\r\n value = iter.next();\r\n }\r\n iter.return && iter.return(value);\r\n }\r\n catch (e) {\r\n iter.throw && iter.throw(e);\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=forOf.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { isArray, isUndefined } from \"../helpers/base\";\r\nimport { isIterable, isIterator } from \"../iterator/iterator\";\r\nimport { iterForOf } from \"../iterator/forOf\";\r\n/**\r\n * Appends the `elms` to the `target` where the elms may be an array, a single object\r\n * or an iterator object\r\n * @group Array\r\n * @group Iterator\r\n * @example\r\n * ```ts\r\n * let theArray = arrAppend([], 1);\r\n * arrAppend(theArray, [ 2, 3, 4 ]);\r\n * arrAppend(theArray, [ \"a\", \"b\", \"c\" ]);\r\n * // theArray is now [ 1, 2, 3, 4, \"a\", \"b\", \"c\" ]\r\n * ```\r\n * @param target - The target array\r\n * @param elms - The item, array of items an iterable or iterator object of items to add to the target\r\n * @returns The passed in target array\r\n * @example\r\n * ```ts\r\n * // Adding a single value\r\n * arrAppend([], undefined); // []\r\n * arrAppend([], 0); // [ 0 ]\r\n * arrAppend([1], undefined); // [ 1 ]\r\n * arrAppend([1], 2); // [ 1, 2 ]\r\n *\r\n * // Adding an array\r\n * arrAppend([], [] as number[]); // []\r\n * arrAppend([], [0]); // [ 0 ]\r\n * arrAppend([1], []); // [ 1 ]\r\n * arrAppend([1], [2]); // [ 1, 2 ]\r\n *\r\n * // Adding with an iterator\r\n * arrAppend([], ([] as number[]).values()); // []\r\n * arrAppend([], [0].values()); // [ 0 ]\r\n * arrAppend([1], [].keys()); // [ 1 ]\r\n * arrAppend([1], [2].values()); // [ 1, 2 ]\r\n * arrAppend([1], [2].keys()); // [ 1, 0 ] - 0 is from the index from the first element\r\n * ```\r\n */\r\nexport function arrAppend(target, elms) {\r\n if (!isUndefined(elms) && target) {\r\n if (isArray(elms)) {\r\n // This is not just \"target.push(elms)\" but becomes effectively \"target.push(elms[0], elms[1], ...)\"\r\n target.push.apply(target, elms);\r\n }\r\n else if (isIterator(elms) || isIterable(elms)) {\r\n iterForOf(elms, function (elm) {\r\n target.push(elm);\r\n });\r\n }\r\n else {\r\n target.push(elms);\r\n }\r\n }\r\n return target;\r\n}\r\n//# sourceMappingURL=append.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { LENGTH } from \"../internal/constants\";\r\n/**\r\n * Calls the provided `callbackFn` function once for each element in an array in ascending index order. It is not invoked for index properties\r\n * that have been deleted or are uninitialized. And unlike the ES6 forEach() you CAN stop or break the iteration by returning -1 from the\r\n * `callbackFn` function.\r\n *\r\n * The range (number of elements) processed by arrForEach() is set before the first call to the `callbackFn`. Any elements added beyond the range\r\n * or elements which as assigned to indexes already processed will not be visited by the `callbackFn`.\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the element type of the array\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param callbackfn A `synchronous` function that accepts up to three arguments. arrForEach calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, null or undefined\r\n * the array will be used as the this value.\r\n * @remarks\r\n * arrForEach expects a `synchronous` function.\r\n * arrForEach does not wait for promises. Make sure you are aware of the implications while using promises (or async functions) as forEach callback.\r\n * @example\r\n * ```ts\r\n * const items = ['item1', 'item2', 'item3'];\r\n * const copyItems = [];\r\n *\r\n * // before using for loop\r\n * for (let i = 0; i < items.length; i++) {\r\n * copyItems.push(items[i]);\r\n * }\r\n *\r\n * // before using forEach()\r\n * items.forEach((item) => {\r\n * copyItems.push(item);\r\n * });\r\n *\r\n * // after\r\n * arrForEach(items, (item) => {\r\n * copyItems.push(item);\r\n * // May return -1 to abort the iteration\r\n * });\r\n *\r\n * // Also supports input as an array like object\r\n * const items = { length: 3, 0: 'item1', 1: 'item2', 2: 'item3' };\r\n * ```\r\n */\r\nexport function arrForEach(theArray, callbackfn, thisArg) {\r\n if (theArray) {\r\n var len = theArray[LENGTH] >>> 0;\r\n for (var idx = 0; idx < len; idx++) {\r\n if (idx in theArray) {\r\n if (callbackfn.call(thisArg || theArray, theArray[idx], idx, theArray) === -1) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=forEach.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ArrProto, INDEX_OF, LAST_INDEX_OF } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n/**\r\n * The arrIndexOf() method returns the first index at which a given element can be found in the array,\r\n * or -1 if it is not present.\r\n * `arrIndexOf()` compares searchElement to elements of the Array using strict equality (the same\r\n * method used by the === or triple-equals operator).\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the type of array elements\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param searchElement - The element to locate in the array.\r\n * @param fromIndex - The index to start the search at. If the index is greater than or equal to\r\n * the array's length, -1 is returned, which means the array will not be searched. If the provided\r\n * index value is a negative number, it is taken as the offset from the end of the array.\r\n * Note: if the provided index is negative, the array is still searched from front to back. If the\r\n * provided index is 0, then the whole array will be searched. Default: 0 (entire array is searched).\r\n * @return The first index of the element in the array; -1 if not found.\r\n * @example\r\n * ```ts\r\n * const array = [2, 9, 9];\r\n * arrIndexOf(array, 2); // 0\r\n * arrIndexOf(array, 7); // -1\r\n * arrIndexOf(array, 9, 2); // 2\r\n * arrIndexOf(array, 2, -1); // -1\r\n * arrIndexOf(array, 2, -3); // 0\r\n *\r\n * let indices: number[] = [];\r\n * const array = ['a', 'b', 'a', 'c', 'a', 'd'];\r\n * const element = 'a';\r\n * let idx = arrIndexOf(array, element);\r\n * while (idx !== -1) {\r\n * indices.push(idx);\r\n * idx = arrIndexOf(array, element, idx + 1);\r\n * }\r\n * console.log(indices);\r\n * // [0, 2, 4]\r\n *\r\n * function updateVegetablesCollection (veggies, veggie) {\r\n * if (arrIndexOf(veggies, veggie) === -1) {\r\n * veggies.push(veggie);\r\n * console.log('New veggies collection is : ' + veggies);\r\n * } else {\r\n * console.log(veggie + ' already exists in the veggies collection.');\r\n * }\r\n * }\r\n *\r\n * let veggies = ['potato', 'tomato', 'chillies', 'green-pepper'];\r\n *\r\n * updateVegetablesCollection(veggies, 'spinach');\r\n * // New veggies collection is : potato,tomato,chillies,green-pepper,spinach\r\n * updateVegetablesCollection(veggies, 'spinach');\r\n * // spinach already exists in the veggies collection.\r\n *\r\n * // Array Like\r\n * let arrayLike = {\r\n * length: 3,\r\n * 0: \"potato\",\r\n * 1: \"tomato\",\r\n * 2: \"chillies\",\r\n * 3: \"green-pepper\" // Not checked as index is > length\r\n * };\r\n *\r\n * arrIndexOf(arrayLike, \"potato\"); // 0\r\n * arrIndexOf(arrayLike, \"tomato\"); // 1\r\n * arrIndexOf(arrayLike, \"chillies\"); 2\r\n * arrIndexOf(arrayLike, \"green-pepper\"); // -1\r\n * ```\r\n */\r\nexport var arrIndexOf = _unwrapFunction(INDEX_OF, ArrProto);\r\n/**\r\n * The arrLastIndexOf() method returns the last index at which a given element can be found in the array,\r\n * or -1 if it is not present.\r\n * `arrLastIndexOf()` compares searchElement to elements of the Array using strict equality (the same\r\n * method used by the === or triple-equals operator). [NaN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN)\r\n * values are never compared as equal, so arrLastIndexOf() always returns -1 when searchElement is NaN.\r\n *\r\n * The arrLastIndexOf() method skips empty slots in sparse arrays.\r\n *\r\n * The arrLastIndexOf() method is generic. It only expects the this value to have a length property and integer-keyed properties.\r\n *\r\n * @since 0.8.0\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the type of array elements\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param searchElement - The element to locate in the array.\r\n * @param fromIndex - Zero-based index at which to start searching backwards, converted to an integer.\r\n * - Negative index counts back from the end of the array — if fromIndex < 0, fromIndex + array.length is used.\r\n * - If fromIndex < -array.length, the array is not searched and -1 is returned. You can think of it conceptually\r\n * as starting at a nonexistent position before the beginning of the array and going backwards from there. There\r\n * are no array elements on the way, so searchElement is never found.\r\n * - If fromIndex >= array.length or fromIndex is omitted, array.length - 1 is used, causing the entire array to\r\n * be searched. You can think of it conceptually as starting at a nonexistent position beyond the end of the array and going backwards from there. It eventually reaches the real end position of the array, at which point it starts searching backwards through the actual array elements.\r\n * @return The first index of the element in the array; -1 if not found.\r\n * @example\r\n * ```ts\r\n * const numbers = [2, 5, 9, 2];\r\n * arrLastIndexOf(numbers, 2); // 3\r\n * arrLastIndexOf(numbers, 7); // -1\r\n * arrLastIndexOf(numbers, 2, 3); // 3\r\n * arrLastIndexOf(numbers, 2, 2); // 0\r\n * arrLastIndexOf(numbers, 2, -2); // 0\r\n * arrLastIndexOf(numbers, 2, -1); // 3\r\n *\r\n * let indices: number[] = [];\r\n * const array = [\"a\", \"b\", \"a\", \"c\", \"a\", \"d\"];\r\n * const element = \"a\";\r\n * let idx = arrLastIndexOf(array, element);\r\n * while (idx !== -1) {\r\n * indices.push(idx);\r\n * idx = arrLastIndexOf(array, element, idx ? idx - 1 : -(array.length + 1));\r\n * }\r\n * console.log(indices);\r\n * // [4, 2, 0]\r\n *\r\n * function updateVegetablesCollection (veggies, veggie) {\r\n * if (arrLastIndexOf(veggies, veggie) === -1) {\r\n * veggies.push(veggie);\r\n * console.log('New veggies collection is : ' + veggies);\r\n * } else {\r\n * console.log(veggie + ' already exists in the veggies collection.');\r\n * }\r\n * }\r\n *\r\n * let veggies = ['potato', 'tomato', 'chillies', 'green-pepper'];\r\n *\r\n * updateVegetablesCollection(veggies, 'spinach');\r\n * // New veggies collection is : potato,tomato,chillies,green-pepper,spinach\r\n * updateVegetablesCollection(veggies, 'spinach');\r\n * // spinach already exists in the veggies collection.\r\n *\r\n * // Array Like\r\n * let arrayLike = {\r\n * length: 3,\r\n * 0: \"potato\",\r\n * 1: \"tomato\",\r\n * 2: \"chillies\",\r\n * 3: \"green-pepper\" // Not checked as index is > length\r\n * };\r\n *\r\n * arrLastIndexOf(arrayLike, \"potato\"); // 0\r\n * arrLastIndexOf(arrayLike, \"tomato\"); // 1\r\n * arrLastIndexOf(arrayLike, \"chillies\"); 2\r\n * arrLastIndexOf(arrayLike, \"green-pepper\"); // -1\r\n * ```\r\n */\r\nexport var arrLastIndexOf = _unwrapFunction(LAST_INDEX_OF, ArrProto);\r\n//# sourceMappingURL=indexOf.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ArrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n/**\r\n * The arrMap() method creates a new array populated with the results of calling a provided function on every\r\n * element in the calling array.\r\n *\r\n * `arrMap` calls a provided callbackFn function once for each element in an array, in order, and constructs\r\n * a new array from the results. callbackFn is invoked only for indexes of the array which have assigned\r\n * values (including undefined).\r\n *\r\n * It is not called for missing elements of the array; that is:\r\n * - indexes that have never been set;\r\n * - indexes which have been deleted.\r\n *\r\n * @since 0.3.3\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the type of the array elements\r\n * @typeParam R - Identifies the type of the elements returned by the callback function, defaults to T.\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param callbackFn - The function that is called for evetn element of `theArray`.\r\n * @param thisArg - The value to use as the `this` when executing the `callbackFn`.\r\n * @example\r\n * ```ts\r\n * const numbers = [1, 4, 9];\r\n * const roots = arrMap(numbers, (num) => Math.sqrt(num));\r\n *\r\n * // roots is now [1, 2, 3]\r\n * // numbers is still [1, 4, 9]\r\n *\r\n * const kvArray = [{ key: 1, value: 10 },\r\n * { key: 2, value: 20 },\r\n * { key: 3, value: 30 }];\r\n *\r\n * const reformattedArray = arrMap(kvArray, ({ key, value}) => ({ [key]: value }));\r\n *\r\n * // reformattedArray is now [{1: 10}, {2: 20}, {3: 30}],\r\n *\r\n * // kvArray is still:\r\n * // [{key: 1, value: 10},\r\n * // {key: 2, value: 20},\r\n * // {key: 3, value: 30}]\r\n *\r\n * // Also supports Array Like objects with same output\r\n * const kvArray = {\r\n * length: 3,\r\n * 0: { key: 1, value: 10 },\r\n * 1: { key: 2, value: 20 },\r\n * 2: { key: 3, value: 30 }\r\n * };\r\n * ```\r\n */\r\nexport var arrMap = _unwrapFunction(\"map\", ArrProto);\r\n//# sourceMappingURL=map.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ArrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n/**\r\n * The arrReduce() method executes a user-supplied \"reducer\" callback function on each element of the array,\r\n * in order, passing in the return value from the calculation on the preceding element. The final result of\r\n * running the reducer across all elements of the array is a single value.\r\n *\r\n * The first time that the callback is run there is no \"return value of the previous calculation\". If supplied,\r\n * an initial value may be used in its place. Otherwise the array element at index 0 is used as the initial\r\n * value and iteration starts from the next element (index 1 instead of index 0).\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the type of array elements\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n * @returns The value that results from running the \"reducer\" callback function to completion over the entire array.\r\n * @example\r\n * ```ts\r\n * const getMax = (a: number, b: number) => Math.max(a, b);\r\n *\r\n * // callback is invoked for each element in the array starting at index 0\r\n * arrReduce([1, 100], getMax, 50); // 100\r\n * arrReduce([ 50], getMax, 10); // 50\r\n *\r\n * // callback is invoked once for element at index 1\r\n * arrReduce([1, 100], getMax); // 100\r\n *\r\n * // callback is not invoked\r\n * arrReduce([ 50], getMax); // 50\r\n * arrReduce([ ], getMax, 1); // 1\r\n *\r\n * arrReduce([ ], getMax); // throws TypeError\r\n *\r\n * // Also supports Array like objects\r\n * arrReduce({ length: 2, 0: 1, 1: 100 }, getMax, 50); // 100\r\n * arrReduce({ length: 1, 0: 50 }, getMax, 10); // 50\r\n *\r\n * // callback is invoked once for element at index 1\r\n * arrReduce({ length: 2, 0: 1, 1: 100 }, getMax); // 100\r\n *\r\n * // callback is not invoked\r\n * arrReduce({ length: 1, 0: 50 }, getMax); // 50\r\n * arrReduce({ length: 0 }, getMax, 1); // 1\r\n * ```\r\n */\r\nexport var arrReduce = _unwrapFunction(\"reduce\", ArrProto);\r\n//# sourceMappingURL=reduce.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ArrProto, SLICE } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n/**\r\n * The arrSlice() method returns a shallow copy of a portion of an array into a new array object\r\n * selected from start to end (end not included) where start and end represent the index of items\r\n * in that array. The original array will not be modified.\r\n *\r\n * The `arrSlice()` method is a copying method. It does not alter this but instead returns a shallow\r\n * copy that contains some of the same elements as the ones from the original array.\r\n *\r\n * The `arrSlice()` method preserves empty slots. If the sliced portion is sparse, the returned arra\r\n * is sparse as well.\r\n *\r\n * The `arrSlice()` method is generic. It only expects the this value to have a length property and\r\n * integer-keyed properties.\r\n *\r\n * For both start and end, a negative index can be used to indicate an offset from the end of the array.\r\n * For example, -2 refers to the second to last element of the array.\r\n * @since 0.9.3\r\n * @group Array\r\n * @group ArrayLike\r\n * @param start Zero-based index at which to start extraction, converted to an integer.\r\n * - Negative index counts back from the end of the array — if start < 0, start + array.length is used.\r\n * - If start < -array.length or start is omitted, 0 is used.\r\n * - If start >= array.length, nothing is extracted.\r\n * @param end Zero-based index at which to end extraction, converted to an integer. slice() extracts\r\n * up to but not including end.\r\n * - Negative index counts back from the end of the array — if end < 0, end + array.length is used.\r\n * - If end < -array.length, 0 is used.\r\n * - If end >= array.length or end is omitted, array.length is used, causing all elements until the\r\n * end to be extracted.\r\n * - If end is positioned before or at start after normalization, nothing is extracted.\r\n * @example\r\n * ```ts\r\n * const lyrics = [\"Hello\", \"Darkness\", \"my\", \"old\", \"friend.\", \"I've\", \"come\", \"to\", \"talk\" ];\r\n *\r\n * arrSlice(lyrics); // [ \"Hello\", \"Darkness\", \"my\", \"old\", \"friend.\", \"I've\", \"come\", \"to\", \"talk\" ]\r\n * arrSlice(lyrics, 1, 3); // [ \"Darkness\", \"my\" ]\r\n * arrSlicw(lyrics, 2); // [ \"my\", \"old\", \"friend.\", \"I've\", \"come\", \"to\", \"talk\" ]\r\n * arrSlice(lyrics, 2, 4); // [ \"my\", \"old\" ]\r\n * arrSlice(lyrics, 1, 5); // [ \"Darkness\", \"my\", \"old\", \"friend.\" ]\r\n * arrSlice(lyrics, -2); // [ \"to\", \"talk\" ]\r\n * arrSlice(lyrics, 2, -1); // [ \"my\", \"old\", \"friend.\", \"I've\", \"come\", \"to\" ]\r\n * ```\r\n */\r\nexport var arrSlice = _unwrapFunction(SLICE, ArrProto);\r\n//# sourceMappingURL=slice.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ObjClass } from \"../internal/constants\";\r\nimport { objForEachKey } from \"./for_each_key\";\r\n/**\r\n * The objSetPrototypeOf() method sets the prototype (i.e., the internal [Prototype] property) of a specified\r\n * object to another object or null.\r\n * @group Object\r\n * @param obj - The object which is to have it's prototype set.\r\n * @param proto - The object's new prototype (an object or null)\r\n * @returns The specified object.\r\n */\r\nexport function objSetPrototypeOf(obj, proto) {\r\n var fn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d, b) {\r\n d.__proto__ = b;\r\n }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d, b) {\r\n objForEachKey(b, function (key, value) { return d[key] = value; });\r\n };\r\n return fn(obj, proto);\r\n}\r\n//# sourceMappingURL=set_proto.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { NAME, PROTOTYPE } from \"../internal/constants\";\r\nimport { objSetPrototypeOf } from \"../object/set_proto\";\r\n/**\r\n * @internal\r\n * @ignore\r\n */\r\nfunction _createCustomError(name, d, baseClass) {\r\n objSetPrototypeOf(d, baseClass);\r\n function __() {\r\n this.constructor = d;\r\n this[NAME] = name;\r\n }\r\n __[PROTOTYPE] = baseClass[PROTOTYPE];\r\n d[PROTOTYPE] = new __();\r\n return d;\r\n}\r\nvar _safeSetName = function (baseClass, name) {\r\n try {\r\n baseClass[PROTOTYPE][NAME] = name;\r\n }\r\n catch (e) {\r\n // Do nothing\r\n }\r\n};\r\n/**\r\n * Create a Custom Error class which may be used to throw custom errors.\r\n * @group Error\r\n * @param name - The name of the Custom Error\r\n * @param constructCb - [Optional] An optional callback function to call when a\r\n * new Customer Error instance is being created.\r\n * @returns A new Error `class`\r\n * @example\r\n * ```ts\r\n * import { createCustomError, isError } from \"@nevware21/ts-utils\";\r\n *\r\n * // For an error that just contains a message\r\n * let myCustomErrorError = createCustomError(\"MessageError\");\r\n *\r\n * try {\r\n * throw new myCustomErrorError(\"Error Message!\");\r\n * } catch(e) {\r\n * // e.name === MessageError\r\n * // isError(e) === true;\r\n * // Object.prototype.toString.call(e) === \"[object Error]\";\r\n * }\r\n *\r\n * // Or a more complex error object\r\n * interface MyCriticalError extends CustomErrorConstructor {\r\n * new(message: string, file: string, line: number, col: number): Error;\r\n * (message: string, file: string, line: number, col: number): Error;\r\n *\r\n * readonly errorId: number;\r\n * readonly args: any[]; // Holds all of the arguments passed during construction\r\n * }\r\n *\r\n * let _totalErrors = 0;\r\n * let myCustomError = createCustomError(\"CriticalError\", (self, args) => {\r\n * _totalErrors++;\r\n * self.errorId = _totalErrors;\r\n * self.args = args;\r\n * });\r\n *\r\n * try {\r\n * throw new myCustomError(\"Not Again!\");\r\n * } catch(e) {\r\n * // e.name === CriticalError\r\n * // isError(e) === true;\r\n * // Object.prototype.toString.call(e) === \"[object Error]\";\r\n * }\r\n * ```\r\n */\r\nexport function createCustomError(name, constructCb) {\r\n var baseClass = Error;\r\n var orgName = baseClass[PROTOTYPE][NAME];\r\n var customError = _createCustomError(name, function () {\r\n var _this = this;\r\n try {\r\n // Set the baseClass (Error) prototype name so that any reported\r\n // error by the Error constructor is reported with this name\r\n _safeSetName(baseClass, name);\r\n _this = baseClass.apply(_this, arguments) || _this;\r\n _this[NAME] = name;\r\n constructCb && constructCb(_this, arguments);\r\n }\r\n finally {\r\n // Always restore the baseClass (Error) original name\r\n _safeSetName(baseClass, orgName);\r\n }\r\n return _this;\r\n }, baseClass);\r\n return customError;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n */\r\nvar _unsupportedError;\r\n/**\r\n * Throw a custom `UnsupportedError` Error instance with the given message.\r\n * @group Error\r\n * @param message - The message to include in the exception\r\n * @example\r\n * ```ts\r\n * import { throwUnsupported } from \"@nevware21/ts-utils\";\r\n *\r\n * if (!window) {\r\n * throwUnsupported(\"A window is needed for this operation\");\r\n * }\r\n * ```\r\n */\r\nexport function throwUnsupported(message) {\r\n if (!_unsupportedError) {\r\n // Lazily create the class\r\n _unsupportedError = createCustomError(\"UnsupportedError\");\r\n }\r\n throw new _unsupportedError(message);\r\n}\r\n//# sourceMappingURL=customError.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\n/**\r\n * Return the number of milliseconds that have elapsed since January 1, 1970 00:00:00 UTC.\r\n *\r\n * To offer protection against timing attacks and fingerprinting, the precision of dateNow()\r\n * might get rounded depending on browser settings. In Firefox, the privacy.reduceTimerPrecision\r\n * preference is enabled by default and defaults to 20µs in Firefox 59; in 60 it will be 2ms.\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n *\r\n * @returns A Number representing the milliseconds elapsed since the UNIX epoch.\r\n * @example\r\n * ```ts\r\n * let now = utcNow();\r\n * ```\r\n */\r\nexport function utcNow() {\r\n return (Date.now || polyUtcNow)();\r\n}\r\n/**\r\n * Polyfill fallback to return the number of milliseconds that have elapsed since January 1, 1970 00:00:00 UTC.\r\n *\r\n * To offer protection against timing attacks and fingerprinting, the precision of dateNow()\r\n * might get rounded depending on browser settings. In Firefox, the privacy.reduceTimerPrecision\r\n * preference is enabled by default and defaults to 20µs in Firefox 59; in 60 it will be 2ms.\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n * @group Polyfill\r\n *\r\n * @returns A Number representing the milliseconds elapsed since the UNIX epoch.\r\n * @example\r\n * ```ts\r\n * let now = polyUtcNow();\r\n * ```\r\n*/\r\nexport function polyUtcNow() {\r\n return new Date().getTime();\r\n}\r\n//# sourceMappingURL=date.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { isNullOrUndefined } from \"../helpers/base\";\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { EMPTY } from \"../internal/constants\";\r\nfunction _createTrimFn(exp) {\r\n return function _doTrim(value) {\r\n if (isNullOrUndefined(value)) {\r\n throwTypeError(\"strTrim called [\" + dumpObj(value) + \"]\");\r\n }\r\n if (value && value.replace) {\r\n value = value.replace(exp, EMPTY);\r\n }\r\n return value;\r\n };\r\n}\r\n/**\r\n * The trim() method removes whitespace from both ends of a string and returns a new string,\r\n * without modifying the original string. Whitespace in this context is all the whitespace\r\n * characters (space, tab, no-break space, etc.) and all the line terminator characters\r\n * (LF, CR, etc.).\r\n * @group Polyfill\r\n * @group String\r\n * @param value - The string value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from both its beginning and end.\r\n * If neither the beginning or end of str has any whitespace, a new string is still returned (essentially\r\n * a copy of str), with no exception being thrown.\r\n * To return a new string with whitespace trimmed from just one end, use `strTrimStart()` or `strTrimEnd()`.\r\n */\r\nexport var polyStrTrim = _createTrimFn(/^\\s+|(?=\\s)\\s+$/g);\r\n/**\r\n * The `polyStrTrimStart()` method removes whitespace from the beginning of a string.\r\n * @group Polyfill\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its beginning (left side).\r\n * If the beginning of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport var polyStrTrimStart = _createTrimFn(/^\\s+/g);\r\n/**\r\n * The `polyStrTrimEnd()` method removes whitespace from the end of a string.\r\n * @group Polyfill\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its end (right side).\r\n * If the end of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport var polyStrTrimEnd = _createTrimFn(/(?=\\s)\\s+$/g);\r\n//# sourceMappingURL=trim.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\nimport { polyStrTrim, polyStrTrimEnd, polyStrTrimStart } from \"../polyfills/trim\";\r\n/**\r\n * The trim() method removes whitespace from both ends of a string and returns a new string,\r\n * without modifying the original string. Whitespace in this context is all the whitespace\r\n * characters (space, tab, no-break space, etc.) and all the line terminator characters\r\n * (LF, CR, etc.).\r\n * @group String\r\n * @param value - The string value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from both its beginning and end.\r\n * If neither the beginning or end of str has any whitespace, a new string is still returned (essentially\r\n * a copy of str), with no exception being thrown.\r\n * To return a new string with whitespace trimmed from just one end, use `strTrimStart()` or `strTrimEnd()`.\r\n */\r\nexport var strTrim = _unwrapFunction(\"trim\", StrProto, polyStrTrim);\r\n/**\r\n * The `strTrimStart()` method removes whitespace from the beginning of a string.\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its beginning (left side).\r\n * If the beginning of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport var strTrimStart = _unwrapFunction(\"trimStart\", StrProto, polyStrTrimStart);\r\n/**\r\n * Alias for `strTrimStart()` method removes whitespace from the beginning of a string.\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its beginning (left side).\r\n * If the beginning of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport var strTrimLeft = strTrimStart;\r\n/**\r\n * The `strTrimEnd()` method removes whitespace from the end of a string.\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its end (right side).\r\n * If the end of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport var strTrimEnd = _unwrapFunction(\"trimEnd\", StrProto, polyStrTrimEnd);\r\n/**\r\n * Alias for `strTrimEnd()` method removes whitespace from the end of a string.\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its end (right side).\r\n * If the end of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport var strTrimRight = strTrimEnd;\r\n//# sourceMappingURL=trim.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { getWindow, hasWindow } from \"../helpers/environment\";\r\nimport { CONSTRUCTOR, FUNCTION, ObjClass, OBJECT, PROTOTYPE } from \"../internal/constants\";\r\nimport { objHasOwnProperty } from \"./has_own_prop\";\r\nimport { objGetPrototypeOf } from \"./object\";\r\n// Use to cache the result of Object.cont\r\nvar _fnToString;\r\nvar _objCtrFnString;\r\nvar _gblWindow;\r\n/**\r\n * Checks to see if the past value is a plain object (not a class/array) value.\r\n * Object are considered to be \"plain\" if they are created with no prototype `Object.create(null)`\r\n * or by using the Object global (native) function, all other \"objects\" ar\r\n * @since 0.4.4\r\n * @group Type Identity\r\n * @group Object\r\n * @param value - The value to check\r\n * @returns true if `value` is a normal plain object\r\n * @example\r\n * ```ts\r\n * console.log(isPlainObject({ 0: 'a', 1: 'b', 2: 'c' })); // true\r\n * console.log(isPlainObject({ 100: 'a', 2: 'b', 7: 'c' })); // true\r\n * console.log(isPlainObject(objCreate(null))); // true\r\n *\r\n * const myObj = objCreate({}, {\r\n * getFoo: {\r\n * value() { return this.foo; }\r\n * }\r\n * });\r\n * myObj.foo = 1;\r\n * console.log(isPlainObject(myObj)); // true\r\n *\r\n * console.log(isPlainObject(['a', 'b', 'c'])); // false\r\n * console.log(isPlainObject(new Date())); // false\r\n * console.log(isPlainObject(new Error(\"An Error\"))); // false\r\n * console.log(isPlainObject(null)); // false\r\n * console.log(isPlainObject(undefined)); // false\r\n * console.log(isPlainObject(\"null\")); // false\r\n * console.log(isPlainObject(\"undefined\")); // false\r\n * console.log(isPlainObject(\"1\")); // false\r\n * console.log(isPlainObject(\"aa\")); // false\r\n * ```\r\n */\r\nexport function isPlainObject(value) {\r\n if (!value || typeof value !== OBJECT) {\r\n return false;\r\n }\r\n if (!_gblWindow) {\r\n // Lazily cache the current global window value and default it to \"true\" (so we bypass this check in the future)\r\n _gblWindow = hasWindow() ? getWindow() : true;\r\n }\r\n var result = false;\r\n if (value !== _gblWindow) {\r\n if (!_objCtrFnString) {\r\n // Lazily caching what the runtime reports as the object function constructor (as a string)\r\n // Using an current function lookup to find what this runtime calls a \"native\" function\r\n _fnToString = Function[PROTOTYPE].toString;\r\n _objCtrFnString = _fnToString.call(ObjClass);\r\n }\r\n try {\r\n var proto = objGetPrototypeOf(value);\r\n // No prototype so looks like an object created with Object.create(null)\r\n result = !proto;\r\n if (!result) {\r\n if (objHasOwnProperty(proto, CONSTRUCTOR)) {\r\n proto = proto[CONSTRUCTOR];\r\n }\r\n result = proto && typeof proto === FUNCTION && _fnToString.call(proto) === _objCtrFnString;\r\n }\r\n }\r\n catch (ex) {\r\n // Something went wrong, so it's not an object we are playing with\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=is_plain_object.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { arrForEach } from \"../array/forEach\";\r\nimport { isArray, isDate, isNullOrUndefined, isPrimitive } from \"../helpers/base\";\r\nimport { FUNCTION } from \"../internal/constants\";\r\nimport { objDefine } from \"./define\";\r\nimport { isPlainObject } from \"./is_plain_object\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * Generic Object deep copy handler which creates a new plain object and copies enumerable properties from\r\n * the source to the new target plain object. The source object does not have to be a plain object.\r\n * @param details - The details object for the current property being copied\r\n * @returns true if the handler processed the field.\r\n */\r\nfunction _defaultDeepCopyHandler(details) {\r\n var target = details.result = {};\r\n details.copyTo(target, details.value);\r\n return true;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * The ordered default deep copy handlers\r\n */\r\nvar defaultDeepCopyHandlers = [\r\n arrayDeepCopyHandler,\r\n plainObjDeepCopyHandler,\r\n functionDeepCopyHandler,\r\n dateDeepCopyHandler\r\n];\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper function used for detecting and handling recursive properties\r\n * @param visitMap - The current map of objects that have been visited\r\n * @param source - The value (object) to be copied\r\n * @param newPath - The new access path from the origin to the current property\r\n * @param cb - The callback function to call if the current object has not already been processed.\r\n * @returns The new deep copied property, may be incomplete as the object is recursive and is still in the process of being copied\r\n */\r\nfunction _getSetVisited(visitMap, source, newPath, cb) {\r\n var theEntry;\r\n arrForEach(visitMap, function (entry) {\r\n if (entry.k === source) {\r\n theEntry = entry;\r\n return -1;\r\n }\r\n });\r\n if (!theEntry) {\r\n // Add the target to the visit map so that deep nested objects refer to the single instance\r\n // Even if we have not finished processing it yet.\r\n theEntry = { k: source, v: source };\r\n visitMap.push(theEntry);\r\n // Now call the copy callback so that it populates the target\r\n cb(theEntry);\r\n }\r\n return theEntry.v;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper which performs the recursive deep copy\r\n * @param visitMap - The current map of objects that have been visited\r\n * @param value - The value being copied\r\n * @param ctx - The current copy context\r\n * @param key - [Optional] the current `key` for the value from the source object\r\n * @returns The new deep copied instance of the value.\r\n */\r\nfunction _deepCopy(visitMap, value, ctx, key) {\r\n var userHandler = ctx.handler;\r\n var newPath = ctx.path ? (key ? ctx.path.concat(key) : ctx.path) : [];\r\n var newCtx = {\r\n handler: ctx.handler,\r\n src: ctx.src,\r\n path: newPath\r\n };\r\n var details = {\r\n type: typeof value,\r\n isPrim: isPrimitive(value),\r\n value: value,\r\n result: value,\r\n path: newPath,\r\n origin: ctx.src,\r\n copy: function (source, newKey) {\r\n return _deepCopy(visitMap, source, newKey ? newCtx : ctx, newKey);\r\n },\r\n copyTo: function (target, source) {\r\n return _copyProps(visitMap, target, source, newCtx);\r\n }\r\n };\r\n if (!details.isPrim) {\r\n return _getSetVisited(visitMap, value, newPath, function (newEntry) {\r\n // Use an accessor to set the new value onto the new entry\r\n objDefine(details, \"result\", {\r\n g: function () {\r\n return newEntry.v;\r\n },\r\n s: function (newValue) {\r\n newEntry.v = newValue;\r\n }\r\n });\r\n var idx = 0;\r\n var handler = userHandler;\r\n while (!(handler || (idx < defaultDeepCopyHandlers.length ? defaultDeepCopyHandlers[idx++] : _defaultDeepCopyHandler)).call(ctx, details)) {\r\n handler = null;\r\n }\r\n });\r\n }\r\n // Allow the user handler to override the provided value\r\n if (userHandler && userHandler.call(ctx, details)) {\r\n return details.result;\r\n }\r\n return value;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper to copy all of the enumerable properties from the source object to the new target object\r\n * @param visitMap - The current map of objects that have been visited\r\n * @param target - The target object to copy the properties to.\r\n * @param source - The source object to copy the properties from.\r\n * @param ctx - The current deep copy context\r\n * @returns The populated target object\r\n */\r\nfunction _copyProps(visitMap, target, source, ctx) {\r\n if (!isNullOrUndefined(source)) {\r\n // Copy all properties (not just own properties)\r\n for (var key in source) {\r\n // Perform a deep copy of the object\r\n target[key] = _deepCopy(visitMap, source[key], ctx, key);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Object helper to copy all of the enumerable properties from the source object to the target, the\r\n * properties are copied via {@link objDeepCopy}. Automatic handling of recursive properties was added in v0.4.4\r\n * @group Object\r\n * @param target - The target object to populated\r\n * @param source - The source object to copy the properties from\r\n * @param handler - An optional callback that lets you provide / overide the deep cloning (Since 0.4.4)\r\n * @returns The target object\r\n * @example\r\n * ```ts\r\n * let a: any = { a: 1 };\r\n * let b: any = { b: 2, d: new Date(), e: new TestClass(\"Hello Darkness\") };\r\n * a.b = b; // { a: 1, b: { b: 2} }\r\n * b.a = a; // { a: 1, b: { b: 2, a: { a: 1, { b: 2, a: ... }}}}\r\n *\r\n * function copyHandler(details: IObjDeepCopyHandlerDetails) {\r\n * // details.origin === a\r\n * // details.path[] is the path to the current value\r\n * if (details.value && isDate(details.value)) {\r\n * // So for the date path === [ \"b\", \"d\" ] which represents\r\n * // details.origin[\"b\"][\"d\"] === The Date\r\n *\r\n * // Create a clone the Date object and set as the \"newValue\"\r\n * details.value = new Date(details.value.getTime());\r\n *\r\n * // Return true to indicate that we have \"handled\" the conversion\r\n * // See objDeepCopy example for just reusing the original value (just don't replace details.value)\r\n * return true;\r\n * }\r\n *\r\n * return false;\r\n * }\r\n *\r\n * let c: any = objCopyProps({}, a, copyHandler);\r\n *\r\n * assert.notEqual(a, c, \"check a and c are not the same\");\r\n * assert.ok(c !== c.b.a, \"The root object won't be the same for the target reference as are are copying properties to our target\");\r\n * assert.ok(c.b === c.b.a.b, \"Check that the 2 'b' references are the same object\");\r\n * assert.ok(c.b.a === c.b.a.b.a, \"Check that the 2 'a' references are the same object\");\r\n * assert.ok(c.b.d === c.b.a.b.d, \"Check that the 2 'd' references are the same object\");\r\n * assert.ok(isDate(c.b.d), \"The copied date is still real 'Date' instance\");\r\n * assert.notEqual(c.b.d, a.b.d, \"And the copied date is not the same as the original\");\r\n * assert.equal(c.b.d.getTime(), a.b.d.getTime(), \"But the dates are the same\");\r\n *\r\n * assert.ok(isObject(c.b.d), \"The copied date is now an object\");\r\n * ```\r\n */\r\nexport function objCopyProps(target, source, handler) {\r\n var ctx = {\r\n handler: handler,\r\n src: source,\r\n path: []\r\n };\r\n return _copyProps([], target, source, ctx);\r\n}\r\n/**\r\n * Performs a deep copy of the source object, this is designed to work with base objects, arrays and primitives\r\n * if the source object contains class objects they should be considered non-operational after performing a deep\r\n * copy. ie. This is performing a deep copy of the objects properties so that altering the copy will not mutate\r\n * the source object hierarchy. Automatic handling of recursive properties was added in v0.4.4.\r\n * @group Object\r\n * @group Object - Deep Copy\r\n * @param source - The source object to be copied\r\n * @param handler - An optional callback that lets you provide / overide the deep cloning (Since 0.4.4)\r\n * @return A new object which contains a deep copy of the source properties\r\n * @example\r\n * ```ts\r\n * let a: any = { a: 1 };\r\n * let b: any = { b: 2, d: new Date(), e: new TestClass(\"Hello Darkness\") };\r\n * a.b = b; // { a: 1, b: { b: 2} }\r\n * b.a = a; // { a: 1, b: { b: 2, a: { a: 1, { b: 2, a: ... }}}}\r\n *\r\n * function copyHandler(details: IObjDeepCopyHandlerDetails) {\r\n * // details.origin === a\r\n * // details.path[] is the path to the current value\r\n * if (details.value && isDate(details.value)) {\r\n * // So for the date path === [ \"b\", \"d\" ] which represents\r\n * // details.origin[\"b\"][\"d\"] === The Date\r\n *\r\n * // Return true to indicate that we have \"handled\" the conversion\r\n * // Which in this case will reuse the existing instance (as we didn't replace details.value)\r\n * // See objCopyProps example for replacing the Date instance\r\n * return true;\r\n * }\r\n *\r\n * return false;\r\n * }\r\n *\r\n * let c: any = objDeepCopy(a, copyHandler);\r\n *\r\n * assert.notEqual(a, c, \"check a and c are not the same\");\r\n * assert.ok(c === c.b.a, \"The root object won't be the same for the target reference\");\r\n * assert.ok(c.b === c.b.a.b, \"Check that the 2 'b' references are the same object\");\r\n * assert.ok(c.b.a === c.b.a.b.a, \"Check that the 2 'a' references are the same object\");\r\n * assert.ok(c.b.d === c.b.a.b.d, \"Check that the 2 'd' references are the same object\");\r\n * assert.ok(isDate(c.b.d), \"The copied date is still real 'Date' instance\");\r\n * assert.equal(c.b.d, a.b.d, \"And the copied date is the original date\");\r\n * assert.equal(c.b.d.getTime(), a.b.d.getTime(), \"But the dates are the same\");\r\n * assert.ok(isObject(c.b.d), \"The copied date is now an object\");\r\n * assert.ok(!isError(c.b.e), \"The copied error is no longer a real 'Error' instance\");\r\n * assert.ok(isObject(c.b.e), \"The copied error is now an object\");\r\n * assert.equal(42, c.b.e.value, \"Expect that the local property was copied\");\r\n * ```\r\n */\r\nexport function objDeepCopy(source, handler) {\r\n var ctx = {\r\n handler: handler,\r\n src: source\r\n };\r\n return _deepCopy([], source, ctx);\r\n}\r\n/**\r\n * Deep copy handler to identify and copy arrays.\r\n * @since 0.4.4\r\n * @group Object - Deep Copy\r\n * @param details - The details object for the current property being copied\r\n * @returns `true` if the current value is a function otherwise `false`\r\n */\r\nexport function arrayDeepCopyHandler(details) {\r\n var value = details.value;\r\n if (isArray(value)) {\r\n // Assign the \"result\" value before performing any additional deep Copying, so any recursive object get a reference to this instance\r\n var target = details.result = [];\r\n target.length = value.length;\r\n // Copying all properties as arrays can contain non-indexed based properties\r\n details.copyTo(target, value);\r\n return true;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Deep copy handler to identify and copy Date instances.\r\n * @since 0.4.4\r\n * @group Object - Deep Copy\r\n * @param details - The details object for the current property being copied\r\n * @returns `true` if the current value is a function otherwise `false`\r\n */\r\nexport function dateDeepCopyHandler(details) {\r\n var value = details.value;\r\n if (isDate(value)) {\r\n details.result = new Date(value.getTime());\r\n return true;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Deep copy handler to identify and copy functions. This handler just returns the original\r\n * function so the original function will be assigned to any new deep copied instance.\r\n * @since 0.4.4\r\n * @group Object - Deep Copy\r\n * @param details - The details object for the current property being copied\r\n * @returns `true` if the current value is a function otherwise `false`\r\n */\r\nexport function functionDeepCopyHandler(details) {\r\n if (details.type === FUNCTION) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Deep copy handler to identify and copy plain objects.\r\n * @since 0.4.4\r\n * @group Object - Deep Copy\r\n * @param details - The details object for the current property being copied\r\n * @returns `true` if the current value is a function otherwise `false`\r\n */\r\nexport function plainObjDeepCopyHandler(details) {\r\n var value = details.value;\r\n if (isPlainObject(value)) {\r\n // Assign the \"result\" value before performing any additional deep Copying, so any recursive object get a reference to this instance\r\n var target = details.result = {};\r\n details.copyTo(target, value);\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=copy.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { arrForEach } from \"../array/forEach\";\r\nimport { arrSlice } from \"../array/slice\";\r\nimport { objCopyProps, objDeepCopy } from \"../object/copy\";\r\n/**\r\n * @internal\r\n * @ignore\r\n */\r\nfunction _doExtend(target, theArgs) {\r\n arrForEach(theArgs, function (theArg) {\r\n objCopyProps(target, theArg);\r\n });\r\n return target;\r\n}\r\nexport function deepExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {\r\n return _doExtend(objDeepCopy(target) || {}, arrSlice(arguments));\r\n}\r\nexport function objExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {\r\n return _doExtend(target || {}, arrSlice(arguments));\r\n}\r\n//# sourceMappingURL=extend.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { LENGTH } from \"../internal/constants\";\r\nimport { _unwrapProp } from \"../internal/unwrapFunction\";\r\n/**\r\n * Helper to return the length value of an object, this will return the value\r\n * of the \"length\" property. Generally used to return the length of a string or array.\r\n *\r\n * @since 0.4.2\r\n * @group Array\r\n * @group String\r\n * @group String\r\n * @group Array\r\n * @group Object\r\n * @param value - The value to return the length property from, must contain a `length` property\r\n * @example\r\n * ```ts\r\n * getLength(\"\"); // returns 0\r\n * getLength(\"Hello World\"); // returns 11\r\n * getLength([]); // returns 0;\r\n * getLength([0, 1, 2, 3]); // returns 4;\r\n * getLength({ length: 42}); // returns 42\r\n * getLength({ length: () => 53; }); // returns the function that if called would return 53\r\n * ```\r\n */\r\nexport var getLength = _unwrapProp(LENGTH);\r\n//# sourceMappingURL=length.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { utcNow } from \"./date\";\r\nimport { lazySafeGetInst } from \"./environment\";\r\nimport { _globalLazyTestHooks } from \"./lazy\";\r\nvar _perf;\r\n/**\r\n * Identify whether the runtimne contains a `performance` object\r\n *\r\n * @since 0.4.4\r\n * @group Environment\r\n * @returns\r\n */\r\nexport function hasPerformance() {\r\n return !!getPerformance();\r\n}\r\n/**\r\n * Returns the global `performance` Object if available, which can be used to\r\n * gather performance information about the current document. It serves as the\r\n * point of exposure for the Performance Timeline API, the High Resolution Time\r\n * API, the Navigation Timing API, the User Timing API, and the Resource Timing API.\r\n *\r\n * @since 0.4.4\r\n * @group Environment\r\n * @returns The global performance object if available.\r\n */\r\nexport function getPerformance() {\r\n (!_perf || (_globalLazyTestHooks.lzy && !_perf.b)) && (_perf = lazySafeGetInst(\"performance\"));\r\n return _perf.v;\r\n}\r\n/**\r\n * Returns the number of milliseconds that has elapsed since the time origin, if\r\n * the runtime does not support the `performance` API it will fallback to return\r\n * the number of milliseconds since the unix epoch.\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n *\r\n * @returns The number of milliseconds as a `DOMHighResTimeStamp` double value or\r\n * an integer depending on the runtime.\r\n * @example\r\n * ```ts\r\n * let now = perfNow();\r\n * ```\r\n */\r\nexport function perfNow() {\r\n var perf = getPerformance();\r\n if (perf && perf.now) {\r\n return perf.now();\r\n }\r\n return utcNow();\r\n}\r\n/**\r\n * Return the number of milliseconds that have elapsed since the provided `startTime`\r\n * the `startTime` MUST be obtained from {@link perfNow} to ensure the correct elapsed\r\n * value is returned.\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n *\r\n * @param startTime - The startTime obtained from `perfNow`\r\n * @returns The number of milliseconds that have elapsed since the startTime.\r\n * @example\r\n * ```ts\r\n * let start = perfNow();\r\n * // Do some work\r\n * let totalTime = elapsedTime(start);\r\n * ```\r\n */\r\nexport function elapsedTime(startTime) {\r\n return perfNow() - startTime;\r\n}\r\n//# sourceMappingURL=perf.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { FUNCTION, ObjClass, OBJECT, PROTOTYPE } from \"../internal/constants\";\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nvar _objCreate = ObjClass[\"create\"];\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @group Object\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\nexport var objCreate = _objCreate || polyObjCreate;\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @group Polyfill\r\n * @group Object\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\nexport function polyObjCreate(obj) {\r\n if (!obj) {\r\n return {};\r\n }\r\n var type = typeof obj;\r\n if (type !== OBJECT && type !== FUNCTION) {\r\n throw new TypeError(\"Prototype must be an Object or function: \" + dumpObj(obj));\r\n }\r\n function tempFunc() { }\r\n tempFunc[PROTOTYPE] = obj;\r\n return new tempFunc();\r\n}\r\n//# sourceMappingURL=create.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { isString, isUndefined } from \"../helpers/base\";\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { LENGTH, StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\nimport { asString } from \"./as_string\";\r\nimport { strSubstring } from \"./substring\";\r\n/**\r\n * This method lets you determine whether or not a string ends with another string. This method is case-sensitive.\r\n * @group String\r\n * @param value - The value to be checked\r\n * @param searchString - The characters to be searched for at the end of `value` string.\r\n * @param length - If provided, it is used as the length of `value`. Defaults to value.length.\r\n */\r\nexport var strEndsWith = _unwrapFunction(\"endsWith\", StrProto, polyStrEndsWith);\r\n/**\r\n * This method lets you determine whether or not a string ends with another string. This method is case-sensitive.\r\n * @group Polyfill\r\n * @group String\r\n * @param value - The value to be checked\r\n * @param searchString - The characters to be searched for at the end of `value` string.\r\n * @param length - If provided, it is used as the length of `value`. Defaults to value.length.\r\n */\r\nexport function polyStrEndsWith(value, searchString, length) {\r\n if (!isString(value)) {\r\n throwTypeError(\"'\" + dumpObj(value) + \"' is not a string\");\r\n }\r\n var searchValue = isString(searchString) ? searchString : asString(searchString);\r\n var chkLen = searchValue[LENGTH];\r\n var len = value[LENGTH];\r\n var end = !isUndefined(length) && length < len ? length : len;\r\n return strSubstring(value, end - chkLen, end) === searchValue;\r\n}\r\n//# sourceMappingURL=ends_with.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { INDEX_OF, LAST_INDEX_OF, StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n/**\r\n * The `strIndexOf()` method, given two arguments: the string and a substring to search for, searches\r\n * the entire calling string, and returns the index of the first occurrence of the specified substring.\r\n * Given a thrid argument: a number, the method returns the first occurrence of the specified substring\r\n * at an index greater than or equal to the specified number.\r\n * @group String\r\n * @param value - The value to be checked for the seeach string\r\n * @param searchString - The substring to search for in the value\r\n * @param position - The starting position to search from\r\n * @example\r\n * ```ts\r\n * strIndexOf('hello world', '') // returns 0\r\n * strIndexOf('hello world', '', 0) // returns 0\r\n * strIndexOf('hello world', '', 3) // returns 3\r\n * strIndexOf('hello world', '', 8) // returns 8\r\n *\r\n * // However, if the thrid argument is greater than the length of the string\r\n * strIndexOf('hello world', '', 11) // returns 11\r\n * strIndexOf('hello world', '', 13) // returns 11\r\n * strIndexOf('hello world', '', 22) // returns 11\r\n *\r\n * strIndexOf('Blue Whale', 'Blue') // returns 0\r\n * strIndexOf('Blue Whale', 'Blute') // returns -1\r\n * strIndexOf('Blue Whale', 'Whale', 0) // returns 5\r\n * strIndexOf('Blue Whale', 'Whale', 5) // returns 5\r\n * strIndexOf('Blue Whale', 'Whale', 7) // returns -1\r\n * strIndexOf('Blue Whale', '') // returns 0\r\n * strIndexOf('Blue Whale', '', 9) // returns 9\r\n * strIndexOf('Blue Whale', '', 10) // returns 10\r\n * strIndexOf('Blue Whale', '', 11) // returns 10\r\n * ```\r\n */\r\nexport var strIndexOf = _unwrapFunction(INDEX_OF, StrProto);\r\n/**\r\n * The `strLastIndexOf()` method, given two arguments: the string and a substring to search for, searches\r\n * the entire calling string, and returns the index of the last occurrence of the specified substring.\r\n * Given a third argument: a number, the method returns the last occurrence of the specified substring\r\n * at an index less than or equal to the specified number.\r\n * @group String\r\n * @param value - The value to be checked for the seeach string\r\n * @param searchString - The substring to search for in the value\r\n * @param position - The starting position to search from\r\n * @example\r\n * ```ts\r\n * strLastIndexOf('canal', 'a'); // returns 3\r\n * strLastIndexOf('canal', 'a', 2); // returns 1\r\n * strLastIndexOf('canal', 'a', 0); // returns -1\r\n * strLastIndexOf('canal', 'x'); // returns -1\r\n * strLastIndexOf('canal', 'c', -5); // returns 0\r\n * strLastIndexOf('canal', 'c', 0); // returns 0\r\n * strLastIndexOf('canal', ''); // returns 5\r\n * strLastIndexOf('canal', '', 2); // returns 2\r\n * ```\r\n */\r\nexport var strLastIndexOf = _unwrapFunction(LAST_INDEX_OF, StrProto);\r\n//# sourceMappingURL=index_of.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { objDefineProp } from \"../object/define\";\r\nvar REF = \"ref\";\r\nvar UNREF = \"un\" + REF;\r\nvar HAS_REF = \"hasRef\";\r\nvar ENABLED = \"enabled\";\r\n/**\r\n * @ignore\r\n * @internal\r\n * Internal function to create and manage an ITimerHandler implementation, the object returned from this function\r\n * it directly used / returned by the pulic functions used to create timers (idle, interval and timeout)\r\n * @param startTimer - Should the timer be started as part of creating the handler\r\n * @param refreshFn - The function used to create/start or refresh the timer\r\n * @param cancelFn - The function used to cancel the timer.\r\n * @returns The new ITimerHandler instance\r\n */\r\nexport function _createTimerHandler(startTimer, refreshFn, cancelFn) {\r\n var _a;\r\n var ref = true;\r\n var timerId = startTimer ? refreshFn(null) : null;\r\n var theTimerHandler;\r\n var _unref = function () {\r\n ref = false;\r\n timerId && timerId[UNREF] && timerId[UNREF]();\r\n return theTimerHandler;\r\n };\r\n var _ref = function () {\r\n ref = true;\r\n timerId && timerId[REF] && timerId[REF]();\r\n return theTimerHandler;\r\n };\r\n var _hasRef = function () {\r\n if (timerId && timerId[HAS_REF]) {\r\n return timerId[HAS_REF]();\r\n }\r\n return ref;\r\n };\r\n var _refresh = function () {\r\n timerId = refreshFn(timerId);\r\n if (!ref) {\r\n _unref();\r\n }\r\n return theTimerHandler;\r\n };\r\n var _cancel = function () {\r\n timerId && cancelFn(timerId);\r\n timerId = null;\r\n };\r\n var _setEnabled = function (value) {\r\n !value && timerId && _cancel();\r\n value && !timerId && _refresh();\r\n };\r\n theTimerHandler = (_a = {\r\n cancel: _cancel,\r\n refresh: _refresh\r\n },\r\n _a[HAS_REF] = _hasRef,\r\n _a[REF] = _ref,\r\n _a[UNREF] = _unref,\r\n _a[ENABLED] = false,\r\n _a);\r\n objDefineProp(theTimerHandler, ENABLED, {\r\n get: function () { return !!timerId; },\r\n set: _setEnabled\r\n });\r\n return {\r\n h: theTimerHandler,\r\n dn: function () {\r\n timerId = null;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=handler.js.map","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { arrSlice } from \"../array/slice\";\r\nimport { isArray } from \"../helpers/base\";\r\nimport { UNDEF_VALUE } from \"../internal/constants\";\r\nimport { _createTimerHandler } from \"./handler\";\r\nfunction _createTimeoutWith(self, startTimer, overrideFn, theArgs) {\r\n var isArr = isArray(overrideFn);\r\n var len = isArr ? overrideFn.length : 0;\r\n var setFn = (len > 0 ? overrideFn[0] : (!isArr ? overrideFn : UNDEF_VALUE)) || setTimeout;\r\n var clearFn = (len > 1 ? overrideFn[1] : UNDEF_VALUE) || clearTimeout;\r\n var timerFn = theArgs[0];\r\n theArgs[0] = function () {\r\n handler.dn();\r\n timerFn.apply(self, arguments);\r\n };\r\n var handler = _createTimerHandler(startTimer, function (timerId) {\r\n if (timerId) {\r\n if (timerId.refresh) {\r\n timerId.refresh();\r\n return timerId;\r\n }\r\n clearFn.call(self, timerId);\r\n }\r\n return setFn.apply(self, theArgs);\r\n }, function (timerId) {\r\n clearFn.call(self, timerId);\r\n });\r\n return handler.h;\r\n}\r\nexport function scheduleTimeout(callback, timeout) {\r\n return _createTimeoutWith(this, true, UNDEF_VALUE, arrSlice(arguments));\r\n}\r\nexport function scheduleTimeoutWith(overrideFn, callback, timeout) {\r\n return _createTimeoutWith(this, true, overrideFn, arrSlice(arguments, 1));\r\n}\r\nexport function createTimeout(callback, timeout) {\r\n return _createTimeoutWith(this, false, UNDEF_VALUE, arrSlice(arguments));\r\n}\r\nexport function createTimeoutWith(overrideFn, callback, timeout) {\r\n return _createTimeoutWith(this, false, overrideFn, arrSlice(arguments, 1));\r\n}\r\n//# sourceMappingURL=timeout.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar _a;\r\nimport { getGlobal, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\n;\r\nvar UNDEFINED = \"undefined\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * The polyfill version of __proto__ so that it doesn't cause issues for anyone not expecting it to exist\r\n */\r\nvar DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n/**\r\n * Runtime Global holder for dynamicProto settings\r\n */\r\nvar DynProtoGlobalSettings = \"__dynProto$Gbl\";\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nvar DynProtoCurrent = \"_dynInstProto\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nvar _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n// Since 1.1.7 moving these to the runtime global to work around mixed version and module issues\r\n// See Issue https://github.com/microsoft/DynamicProto-JS/issues/57 for details\r\nvar _gbl = getGlobal();\r\nvar _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {\r\n o: (_a = {},\r\n _a[strSetInstFuncs] = true,\r\n _a[strUseBaseInst] = true,\r\n _a),\r\n n: 1000 // Start new global index @ 1000 so we \"fix\" some cases when mixed with 1.1.6 or earlier\r\n});\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n var newProto;\r\n if (target) {\r\n // This method doesn't exist in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n // Using the pre-calculated value as IE8 doesn't support looking up the prototype of a prototype and thus fails for more than 1 base class\r\n newProto = target[DynProtoBaseProto] || curProto;\r\n if (!objHasOwnProperty(target, DynProtoBaseProto)) {\r\n // As this prototype doesn't have this property then this is from an inherited class so newProto is the base to return so save it\r\n // so we can look it up value (which for a multiple hierarchy dynamicProto will be the base class)\r\n delete target[DynProtoCurrent]; // Delete any current value allocated to this instance so we pick up the value from prototype hierarchy\r\n newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];\r\n target[DynProtoCurrent] = curProto;\r\n }\r\n }\r\n return newProto;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n if (_objGetOwnProps) {\r\n props = _objGetOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && objHasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || objHasOwnProperty(target, funcName)));\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throwTypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = {};\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = {};\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && objHasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !objHasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n // eslint-disable-next-line prefer-rest-params\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {}); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!objHasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n return false;\r\n }\r\n // If objGetPrototypeOf doesn't exist then just assume everything is ok.\r\n return true;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (objHasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!objHasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] not in hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (objHasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _gblInst.n;\r\n _gblInst.n++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\ndynamicProto[DynProtoDefaultOptions] = _gblInst.o;\r\n//# sourceMappingURL=DynamicProto.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var strShimFunction = \"function\";\r\nexport var strShimObject = \"object\";\r\nexport var strShimUndefined = \"undefined\";\r\nexport var strShimPrototype = \"prototype\";\r\nexport var strDefault = \"default\";\r\nexport var ObjClass = Object;\r\nexport var ObjProto = ObjClass[strShimPrototype];\r\n//# sourceMappingURL=Constants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getGlobal, objAssign, objCreate, objDefineProp, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { ObjClass, ObjProto, strDefault, strShimFunction, strShimPrototype } from \"./Constants\";\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES5 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\nexport var SymbolObj = (getGlobal() || {})[\"Symbol\"];\r\nexport var ReflectObj = (getGlobal() || {})[\"Reflect\"];\r\nexport var __hasReflect = !!ReflectObj;\r\nvar strDecorate = \"decorate\";\r\nvar strMetadata = \"metadata\";\r\nvar strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nvar strIterator = \"iterator\";\r\nvar strHasOwnProperty = \"hasOwnProperty\";\r\nexport var __objAssignFnImpl = function (t) {\r\n // tslint:disable-next-line: ban-comma-operator\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (ObjProto[strHasOwnProperty].call(s, p)) {\r\n t[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\nexport var __assignFn = objAssign || __objAssignFnImpl;\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function (d, b) {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d, b) {\r\n d.__proto__ = b;\r\n }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d, b) {\r\n for (var p in b) {\r\n if (b[strHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\nexport function __extendsFn(d, b) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n }\r\n extendStaticsFn(d, b);\r\n function __() {\r\n this.constructor = d;\r\n }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreate(b) : (__[strShimPrototype] = b[strShimPrototype], new __());\r\n}\r\nexport function __restFn(s, e) {\r\n var t = {};\r\n for (var k in s) {\r\n if (objHasOwnProperty(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\nexport function __decorateFn(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n }\r\n else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // eslint-disable-next-line no-cond-assign\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && objDefineProp(target, key, r), r;\r\n}\r\nexport function __paramFn(paramIndex, decorator) {\r\n return function (target, key) {\r\n decorator(target, key, paramIndex);\r\n };\r\n}\r\nexport function __metadataFn(metadataKey, metadataValue) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\nexport function __exportStarFn(m, o) {\r\n for (var p in m) {\r\n if (p !== strDefault && !objHasOwnProperty(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\nexport function __createBindingFn(o, m, k, k2) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n if (!!objDefineProp) {\r\n objDefineProp(o, k2, {\r\n enumerable: true,\r\n get: function () {\r\n return m[k];\r\n }\r\n });\r\n }\r\n else {\r\n o[k2] = m[k];\r\n }\r\n}\r\nexport function __valuesFn(o) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\nexport function __readFn(o, n) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n ar.push(r.value);\r\n }\r\n }\r\n catch (error) {\r\n e = {\r\n error: error\r\n };\r\n }\r\n finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n }\r\n finally {\r\n if (e) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw e.error;\r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n return r;\r\n}\r\nexport function __spreadArrayFn(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n return to;\r\n}\r\nexport function __makeTemplateObjectFn(cooked, raw) {\r\n if (objDefineProp) {\r\n objDefineProp(cooked, \"raw\", { value: raw });\r\n }\r\n else {\r\n cooked.raw = raw;\r\n }\r\n return cooked;\r\n}\r\nexport function __importStarFn(mod) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n // Set default module\r\n if (!!objDefineProp) {\r\n objDefineProp(result, strDefault, { enumerable: true, value: mod });\r\n }\r\n else {\r\n result[strDefault] = mod;\r\n }\r\n return result;\r\n}\r\nexport function __importDefaultFn(mod) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n//# sourceMappingURL=TsLibShims.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnum, createTypeMap } from \"@nevware21/ts-utils\";\r\n/**\r\n * Create an enum style object which has both the key => value and value => key mappings\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createEnumStyle = createEnum;\r\n/**\r\n * Create a 2 index map that maps an enum's key and value to the defined map value, X[\"key\"] => mapValue and X[0] => mapValue.\r\n * Generic values\r\n * - E = the const enum type (typeof eRequestHeaders);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createValueMap = createTypeMap;\r\n//# sourceMappingURL=EnumHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 9\r\nexport var _DYN_BLK_VAL = \"blkVal\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 42\r\nexport var _DYN_RD_ONLY = \"rdOnly\"; // Count: 4\r\nexport var _DYN_NOTIFY = \"notify\"; // Count: 4\r\nexport var _DYN_WARN_TO_CONSOLE = \"warnToConsole\"; // Count: 4\r\nexport var _DYN_THROW_INTERNAL = \"throwInternal\"; // Count: 5\r\nexport var _DYN_SET_DF = \"setDf\"; // Count: 6\r\nexport var _DYN_WATCH = \"watch\"; // Count: 9\r\nexport var _DYN_LOGGER = \"logger\"; // Count: 21\r\nexport var _DYN_APPLY = \"apply\"; // Count: 7\r\nexport var _DYN_PUSH = \"push\"; // Count: 31\r\nexport var _DYN_SPLICE = \"splice\"; // Count: 8\r\nexport var _DYN_HDLR = \"hdlr\"; // Count: 6\r\nexport var _DYN_CANCEL = \"cancel\"; // Count: 5\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 4\r\nexport var _DYN_IDENTIFIER = \"identifier\"; // Count: 8\r\nexport var _DYN_IS_INITIALIZED = \"isInitialized\"; // Count: 10\r\nexport var _DYN_GET_PLUGIN = \"getPlugin\"; // Count: 6\r\nexport var _DYN_POLL_INTERNAL_LOGS = \"pollInternalLogs\"; // Count: 2\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_TIME = \"time\"; // Count: 6\r\nexport var _DYN_PROCESS_NEXT = \"processNext\"; // Count: 15\r\nexport var _DYN_GET_PROCESS_TEL_CONT0 = \"getProcessTelContext\"; // Count: 2\r\nexport var _DYN_GET_NOTIFY_MGR = \"getNotifyMgr\"; // Count: 5\r\nexport var _DYN_ADD_NOTIFICATION_LIS1 = \"addNotificationListener\"; // Count: 4\r\nexport var _DYN_REMOVE_NOTIFICATION_2 = \"removeNotificationListener\"; // Count: 4\r\nexport var _DYN_ENABLED = \"enabled\"; // Count: 6\r\nexport var _DYN_STOP_POLLING_INTERNA3 = \"stopPollingInternalLogs\"; // Count: 2\r\nexport var _DYN_UNLOAD = \"unload\"; // Count: 9\r\nexport var _DYN_ON_COMPLETE = \"onComplete\"; // Count: 5\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_LOGGING_LEVEL_CONSOL4 = \"loggingLevelConsole\"; // Count: 2\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 7\r\nexport var _DYN_TEARDOWN = \"teardown\"; // Count: 9\r\nexport var _DYN_MESSAGE_ID = \"messageId\"; // Count: 4\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 6\r\nexport var _DYN_IS_ASYNC = \"isAsync\"; // Count: 6\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 10\r\nexport var _DYN__DO_TEARDOWN = \"_doTeardown\"; // Count: 4\r\nexport var _DYN_UPDATE = \"update\"; // Count: 6\r\nexport var _DYN_GET_NEXT = \"getNext\"; // Count: 12\r\nexport var _DYN_SET_NEXT_PLUGIN = \"setNextPlugin\"; // Count: 5\r\nexport var _DYN_USER_AGENT = \"userAgent\"; // Count: 5\r\nexport var _DYN_SPLIT = \"split\"; // Count: 5\r\nexport var _DYN_NODE_TYPE = \"nodeType\"; // Count: 3\r\nexport var _DYN_REPLACE = \"replace\"; // Count: 8\r\nexport var _DYN_LOG_INTERNAL_MESSAGE = \"logInternalMessage\"; // Count: 2\r\nexport var _DYN_TYPE = \"type\"; // Count: 14\r\nexport var _DYN_HANDLER = \"handler\"; // Count: 5\r\nexport var _DYN_IS_CHILD_EVT = \"isChildEvt\"; // Count: 3\r\nexport var _DYN_GET_CTX = \"getCtx\"; // Count: 6\r\nexport var _DYN_SET_CTX = \"setCtx\"; // Count: 10\r\nexport var _DYN_COMPLETE = \"complete\"; // Count: 3\r\nexport var _DYN_TRACE_ID = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID = \"spanId\"; // Count: 5\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 6\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, createCustomError, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nvar aggregationErrorType;\r\n/**\r\n * Throws an Aggregation Error which includes all of the errors that led to this error occurring\r\n * @param message - The message describing the aggregation error (the sourceError details are added to this)\r\n * @param sourceErrors - An array of the errors that caused this situation\r\n */\r\nexport function throwAggregationError(message, sourceErrors) {\r\n if (!aggregationErrorType) {\r\n aggregationErrorType = createCustomError(\"AggregationError\", function (self, args) {\r\n if (args[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n // Save the provided errors\r\n self.errors = args[1];\r\n }\r\n });\r\n }\r\n var theMessage = message || \"One or more errors occurred.\";\r\n arrForEach(sourceErrors, function (srcError, idx) {\r\n theMessage += \"\\n\".concat(idx, \" > \").concat(dumpObj(srcError));\r\n });\r\n throw new aggregationErrorType(theMessage, sourceErrors || []);\r\n}\r\n//# sourceMappingURL=AggregationError.js.map","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { isPromiseLike } from \"@nevware21/ts-utils\";\r\nexport function doAwaitResponse(value, cb) {\r\n return doAwait(value, function (value) {\r\n cb && cb({\r\n value: value,\r\n rejected: false\r\n });\r\n }, function (reason) {\r\n cb && cb({\r\n rejected: true,\r\n reason: reason\r\n });\r\n });\r\n}\r\n/**\r\n * Wait for the promise to resolve or reject, if resolved the callback function will be called with it's value and if\r\n * rejected the rejectFn will be called with the reason. If the passed promise argument is not a promise the callback\r\n * will be called synchronously with the value.\r\n * @group Await Helper\r\n * @param value - The value or promise like value to wait for\r\n * @param resolveFn - The callback to call on the promise successful resolving.\r\n * @param rejectFn - The callback to call when the promise rejects\r\n * @returns The passed value, if it is a promise and there is either a resolve or reject handler\r\n * then it will return a chained promise with the value from the resolve or reject handler (depending\r\n * whether it resolve or rejects)\r\n * @example\r\n * ```ts\r\n * let promise = createPromise((resolve, reject) => {\r\n * resolve(42);\r\n * });\r\n *\r\n * // Handle via a chained promise\r\n * let chainedPromise = promise.then((value) => {\r\n * // Do something with the value\r\n * });\r\n *\r\n * // Handle via doAwait\r\n * doAwait(promise, (value) => {\r\n * // Do something with the value\r\n * });\r\n *\r\n * // It can also handle the raw value, so you could process the result of either a\r\n * // synchrounous return of the value or a Promise\r\n * doAwait(42, (value) => {\r\n * // Do something with the value\r\n * });\r\n * ```\r\n */\r\nexport function doAwait(value, resolveFn, rejectFn, finallyFn) {\r\n var result = value;\r\n if (isPromiseLike(value)) {\r\n if (resolveFn || rejectFn) {\r\n result = value.then(resolveFn, rejectFn);\r\n }\r\n }\r\n else {\r\n resolveFn && resolveFn(value);\r\n }\r\n if (finallyFn) {\r\n result = doFinally(result, finallyFn);\r\n }\r\n return result;\r\n}\r\n/**\r\n * Wait for the promise to resolve or reject and then call the finallyFn. If the passed promise argument is not a promise the callback\r\n * will be called synchronously with the value. If the passed promise doesn't implement finally then a finally implementation will be\r\n * simulated using then(..., ...).\r\n * @group Await Helper\r\n * @param value - The value or promise like value to wait for\r\n * @param finallyFn - The finally function to call once the promise has resolved or rejected\r\n */\r\nexport function doFinally(value, finallyFn) {\r\n var result = value;\r\n if (finallyFn) {\r\n if (isPromiseLike(value)) {\r\n if (value.finally) {\r\n result = value.finally(finallyFn);\r\n }\r\n else {\r\n // Simulate finally if not available\r\n result = value.then(function (value) {\r\n finallyFn();\r\n return value;\r\n }, function (reason) {\r\n finallyFn();\r\n throw reason;\r\n });\r\n }\r\n }\r\n else {\r\n finallyFn();\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=await.js.map","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\n/**\r\n * @ignore -- Don't include in the generated documentation\r\n * @internal\r\n */\r\nexport var STRING_STATES = [\r\n \"pending\", \"resolving\", \"resolved\", \"rejected\"\r\n];\r\n//# sourceMappingURL=state.js.map","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { dumpObj, getDocument, safeGetLazy, getInst } from \"@nevware21/ts-utils\";\r\nvar DISPATCH_EVENT = \"dispatchEvent\";\r\nvar _hasInitEvent;\r\n/**\r\n * @internal\r\n * @ignore\r\n * @param target\r\n * @param evtName\r\n * @param populateEvent\r\n * @param useNewEvent\r\n */\r\nexport function emitEvent(target, evtName, populateEvent, useNewEvent) {\r\n var doc = getDocument();\r\n !_hasInitEvent && (_hasInitEvent = safeGetLazy(function () {\r\n var evt;\r\n if (doc && doc.createEvent) {\r\n evt = doc.createEvent(\"Event\");\r\n }\r\n return (!!evt && evt.initEvent);\r\n }, null));\r\n var theEvt = _hasInitEvent.v ? doc.createEvent(\"Event\") : (useNewEvent ? new Event(evtName) : {});\r\n populateEvent && populateEvent(theEvt);\r\n if (_hasInitEvent.v) {\r\n theEvt.initEvent(evtName, false, true);\r\n }\r\n if (theEvt && target[DISPATCH_EVENT]) {\r\n target[DISPATCH_EVENT](theEvt);\r\n }\r\n else {\r\n var handler = target[\"on\" + evtName];\r\n if (handler) {\r\n handler(theEvt);\r\n }\r\n else {\r\n var theConsole = getInst(\"console\");\r\n theConsole && (theConsole[\"error\"] || theConsole[\"log\"])(evtName, dumpObj(theEvt));\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=event.js.map","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2023 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nexport var STR_PROMISE = \"Promise\";\r\n//# sourceMappingURL=constants.js.map","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { arrForEach, arrSlice, dumpObj, getKnownSymbol, hasSymbol, isFunction, isPromiseLike, isUndefined, throwTypeError, objToString, scheduleTimeout, getWindow, isNode, getGlobal, objDefine, objDefineProp, lazySafeGetInst } from \"@nevware21/ts-utils\";\r\nimport { doAwait } from \"./await\";\r\nimport { _addDebugState, _debugLog, _promiseDebugEnabled } from \"./debug\";\r\nimport { STRING_STATES } from \"../internal/state\";\r\nimport { emitEvent } from \"./event\";\r\nimport { STR_PROMISE } from \"../internal/constants\";\r\nvar NODE_UNHANDLED_REJECTION = \"unhandledRejection\";\r\nvar UNHANDLED_REJECTION = NODE_UNHANDLED_REJECTION.toLowerCase();\r\nvar _currentPromiseId = [];\r\nvar _uniquePromiseId = 0;\r\nvar _unhandledRejectionTimeout = 10;\r\nvar _hasPromiseRejectionEvent;\r\nfunction dumpFnObj(value) {\r\n if (isFunction(value)) {\r\n return value.toString();\r\n }\r\n return dumpObj(value);\r\n}\r\nexport function _createPromise(newPromise, processor, executor) {\r\n var additionalArgs = arrSlice(arguments, 3);\r\n var _state = 0 /* ePromiseState.Pending */;\r\n var _hasResolved = false;\r\n var _settledValue;\r\n var _queue = [];\r\n var _id = _uniquePromiseId++;\r\n var _parentId = _currentPromiseId.length > 0 ? _currentPromiseId[_currentPromiseId.length - 1] : undefined;\r\n var _handled = false;\r\n var _unHandledRejectionHandler = null;\r\n var _thePromise;\r\n !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = lazySafeGetInst(STR_PROMISE + \"RejectionEvent\"));\r\n // https://tc39.es/ecma262/#sec-promise.prototype.then\r\n var _then = function (onResolved, onRejected) {\r\n try {\r\n _currentPromiseId.push(_id);\r\n _handled = true;\r\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\r\n _unHandledRejectionHandler = null;\r\n _debugLog(_toString(), \"then(\" + dumpFnObj(onResolved) + \", \" + dumpFnObj(onResolved) + \")\");\r\n var thenPromise = newPromise(function (resolve, reject) {\r\n // Queue the new promise returned to be resolved or rejected\r\n // when this promise settles.\r\n _queue.push(function () {\r\n // https://tc39.es/ecma262/#sec-newpromisereactionjob\r\n //let value: any;\r\n try {\r\n // First call the onFulfilled or onRejected handler, on the settled value\r\n // of this promise. If the corresponding `handler` does not exist, simply\r\n // pass through the settled value.\r\n _debugLog(_toString(), \"Handling settled value \" + dumpFnObj(_settledValue));\r\n var handler = _state === 2 /* ePromiseState.Resolved */ ? onResolved : onRejected;\r\n var value = isUndefined(handler) ? _settledValue : (isFunction(handler) ? handler(_settledValue) : handler);\r\n _debugLog(_toString(), \"Handling Result \" + dumpFnObj(value));\r\n if (isPromiseLike(value)) {\r\n // The called handlers returned a new promise, so the chained promise\r\n // will follow the state of this promise.\r\n value.then(resolve, reject);\r\n }\r\n else if (handler) {\r\n // If we have a handler then chained promises are always \"resolved\" with the result returned\r\n resolve(value);\r\n }\r\n else if (_state === 3 /* ePromiseState.Rejected */) {\r\n // If this promise is rejected then the chained promise should be rejected\r\n // with either the settled value of this promise or the return value of the handler.\r\n reject(value);\r\n }\r\n else {\r\n // If this promise is fulfilled, then the chained promise is also fulfilled\r\n // with either the settled value of this promise or the return value of the handler.\r\n resolve(value);\r\n }\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n });\r\n _debugLog(_toString(), \"Added to Queue \" + _queue.length);\r\n // If this promise is already settled, then immediately process the callback we\r\n // just added to the queue.\r\n if (_hasResolved) {\r\n _processQueue();\r\n }\r\n }, additionalArgs);\r\n _debugLog(_toString(), \"Created -> \" + thenPromise.toString());\r\n return thenPromise;\r\n }\r\n finally {\r\n _currentPromiseId.pop();\r\n }\r\n };\r\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\r\n var _catch = function (onRejected) {\r\n // Reuse then onRejected to support rejection\r\n return _then(undefined, onRejected);\r\n };\r\n // https://tc39.es/ecma262/#sec-promise.prototype.finally\r\n var _finally = function (onFinally) {\r\n var thenFinally = onFinally;\r\n var catchFinally = onFinally;\r\n if (isFunction(onFinally)) {\r\n thenFinally = function (value) {\r\n onFinally && onFinally();\r\n return value;\r\n };\r\n catchFinally = function (reason) {\r\n onFinally && onFinally();\r\n throw reason;\r\n };\r\n }\r\n return _then(thenFinally, catchFinally);\r\n };\r\n var _strState = function () {\r\n return STRING_STATES[_state];\r\n };\r\n var _processQueue = function () {\r\n if (_queue.length > 0) {\r\n // The onFulfilled and onRejected handlers must be called asynchronously. Thus,\r\n // we make a copy of the queue and work on it once the current call stack unwinds.\r\n var pending = _queue.slice();\r\n _queue = [];\r\n _debugLog(_toString(), \"Processing queue \" + pending.length);\r\n _handled = true;\r\n processor(pending);\r\n _debugLog(_toString(), \"Processing done\");\r\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\r\n _unHandledRejectionHandler = null;\r\n }\r\n else {\r\n _debugLog(_toString(), \"Empty Processing queue \");\r\n }\r\n };\r\n var _createSettleIfFn = function (newState, allowState) {\r\n return function (theValue) {\r\n if (_state === allowState) {\r\n if (newState === 2 /* ePromiseState.Resolved */ && isPromiseLike(theValue)) {\r\n _state = 1 /* ePromiseState.Resolving */;\r\n _debugLog(_toString(), \"Resolving\");\r\n theValue.then(_createSettleIfFn(2 /* ePromiseState.Resolved */, 1 /* ePromiseState.Resolving */), _createSettleIfFn(3 /* ePromiseState.Rejected */, 1 /* ePromiseState.Resolving */));\r\n return;\r\n }\r\n _state = newState;\r\n _hasResolved = true;\r\n _settledValue = theValue;\r\n _debugLog(_toString(), _strState());\r\n _processQueue();\r\n if (!_handled && newState === 3 /* ePromiseState.Rejected */ && !_unHandledRejectionHandler) {\r\n _unHandledRejectionHandler = scheduleTimeout(_notifyUnhandledRejection, _unhandledRejectionTimeout);\r\n }\r\n }\r\n else {\r\n _debugLog(_toString(), \"Already \" + _strState());\r\n }\r\n };\r\n };\r\n var _notifyUnhandledRejection = function () {\r\n if (!_handled) {\r\n if (isNode()) {\r\n _debugLog(_toString(), \"Emitting \" + NODE_UNHANDLED_REJECTION);\r\n process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise);\r\n }\r\n else {\r\n var gbl = getWindow() || getGlobal();\r\n _debugLog(_toString(), \"Emitting \" + UNHANDLED_REJECTION);\r\n emitEvent(gbl, UNHANDLED_REJECTION, function (theEvt) {\r\n objDefine(theEvt, \"promise\", { g: function () { return _thePromise; } });\r\n theEvt.reason = _settledValue;\r\n return theEvt;\r\n }, !!_hasPromiseRejectionEvent.v);\r\n }\r\n }\r\n };\r\n _thePromise = {\r\n then: _then,\r\n \"catch\": _catch,\r\n finally: _finally\r\n };\r\n objDefineProp(_thePromise, \"state\", {\r\n get: _strState\r\n });\r\n if (_promiseDebugEnabled) {\r\n // eslint-disable-next-line brace-style\r\n _addDebugState(_thePromise, _strState, function () { return objToString(_settledValue); }, function () { return _handled; });\r\n }\r\n if (hasSymbol()) {\r\n _thePromise[getKnownSymbol(11 /* WellKnownSymbols.toStringTag */)] = \"IPromise\";\r\n }\r\n var _toString = function () {\r\n return \"IPromise\" + (_promiseDebugEnabled ? \"[\" + _id + (!isUndefined(_parentId) ? (\":\" + _parentId) : \"\") + \"]\" : \"\") + \" \" + _strState() + (_hasResolved ? (\" - \" + dumpFnObj(_settledValue)) : \"\");\r\n };\r\n _thePromise.toString = _toString;\r\n (function _initialize() {\r\n if (!isFunction(executor)) {\r\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpFnObj(executor));\r\n }\r\n var _rejectFn = _createSettleIfFn(3 /* ePromiseState.Rejected */, 0 /* ePromiseState.Pending */);\r\n try {\r\n _debugLog(_toString(), \"Executing\");\r\n executor.call(_thePromise, _createSettleIfFn(2 /* ePromiseState.Resolved */, 0 /* ePromiseState.Pending */), _rejectFn);\r\n }\r\n catch (e) {\r\n _rejectFn(e);\r\n }\r\n })();\r\n _debugLog(_toString(), \"Returning\");\r\n return _thePromise;\r\n}\r\n/**\r\n * @ignore\r\n * @internal\r\n * Returns a function which when called will return a new Promise object that resolves to an array of the\r\n * results from the input promises. The returned promise will resolve when all of the inputs' promises have\r\n * resolved, or if the input contains no promises. It rejects immediately upon any of the input promises\r\n * rejected or non-promises throwing an error, and will reject with this first rejection message / error.\r\n * @param newPromise - The delegate function used to create a new promise object the new promise instance.\r\n * @returns A function to create a promise that will be resolved when all arguments are resolved.\r\n */\r\nexport function _createAllPromise(newPromise) {\r\n return function (input) {\r\n var additionalArgs = arrSlice(arguments, 1);\r\n return newPromise(function (resolve, reject) {\r\n try {\r\n var values_1 = [];\r\n var pending_1 = 1; // Prefix to 1 so we finish iterating over all of the input promises first\r\n arrForEach(input, function (item, idx) {\r\n if (item) {\r\n pending_1++;\r\n doAwait(item, function (value) {\r\n // Set the result values\r\n values_1[idx] = value;\r\n if (--pending_1 === 0) {\r\n resolve(values_1);\r\n }\r\n }, reject);\r\n }\r\n });\r\n // Now decrement the pending so that we finish correctly\r\n pending_1--;\r\n if (pending_1 === 0) {\r\n // All promises were either resolved or where not a promise\r\n resolve(values_1);\r\n }\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n }, additionalArgs);\r\n };\r\n}\r\n/**\r\n * @ignore\r\n * @internal\r\n * The createResolvedPromise returns a PromiseLike object that is resolved with a given value. If the value is\r\n * PromiseLike (i.e. has a \"then\" method), the returned promise will \"follow\" that thenable, adopting its eventual\r\n * state; otherwise the returned promise will be fulfilled with the value. This function flattens nested layers\r\n * of promise-like objects (e.g. a promise that resolves to a promise that resolves to something) into a single layer.\r\n * @param newPromise - The delegate function used to create a new promise object\r\n * @param value Argument to be resolved by this Promise. Can also be a Promise or a thenable to resolve.\r\n * @param additionalArgs - Any additional arguments that should be passed to the delegate to assist with the creation of\r\n * the new promise instance.\r\n */\r\nexport function _createResolvedPromise(newPromise) {\r\n return function (value) {\r\n var additionalArgs = arrSlice(arguments, 1);\r\n if (isPromiseLike(value)) {\r\n return value;\r\n }\r\n return newPromise(function (resolve) {\r\n resolve(value);\r\n }, additionalArgs);\r\n };\r\n}\r\n/**\r\n * @ignore\r\n * @internal\r\n * Return a promise like object that is rejected with the given reason.\r\n * @param newPromise - The delegate function used to create a new promise object\r\n * @param reason - The rejection reason\r\n * @param additionalArgs - Any additional arguments that should be passed to the delegate to assist with the creation of\r\n * the new promise instance.\r\n */\r\nexport function _createRejectedPromise(newPromise) {\r\n return function (reason) {\r\n var additionalArgs = arrSlice(arguments, 1);\r\n return newPromise(function (_resolve, reject) {\r\n reject(reason);\r\n }, additionalArgs);\r\n };\r\n}\r\n//# sourceMappingURL=base.js.map","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { arrForEach, isNumber, scheduleIdleCallback, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nvar _processPendingItems = function (pending) {\r\n arrForEach(pending, function (fn) {\r\n try {\r\n fn();\r\n }\r\n catch (e) {\r\n // Don't let 1 failing handler break all others\r\n // TODO: Add some form of error reporting (i.e. Call any registered JS error handler so the error is reported)\r\n }\r\n });\r\n};\r\n/**\r\n * @internal\r\n * @ignore\r\n * Return an item processor that processes all of the pending items synchronously\r\n * @return An item processor\r\n */\r\nexport function syncItemProcessor() {\r\n return _processPendingItems;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Return an item processor that processes all of the pending items asynchronously using the optional timeout.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n * @return An item processor\r\n */\r\nexport function timeoutItemProcessor(timeout) {\r\n var callbackTimeout = isNumber(timeout) ? timeout : 0;\r\n return function (pending) {\r\n scheduleTimeout(function () {\r\n _processPendingItems(pending);\r\n }, callbackTimeout);\r\n };\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Return an item processor that processes all of the pending items using an idle callback (if available) or based on\r\n * a timeout (when `requestIdenCallback` is not supported) using the optional timeout.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n * @return An item processor\r\n */\r\nexport function idleItemProcessor(timeout) {\r\n var options;\r\n if (timeout >= 0) {\r\n options = {\r\n timeout: +timeout\r\n };\r\n }\r\n return function (pending) {\r\n scheduleIdleCallback(function (deadline) {\r\n _processPendingItems(pending);\r\n }, options);\r\n };\r\n}\r\n//# sourceMappingURL=itemProcessor.js.map","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { _createAllPromise, _createPromise, _createRejectedPromise, _createResolvedPromise } from \"./base\";\r\nimport { timeoutItemProcessor } from \"./itemProcessor\";\r\n/**\r\n * Creates an asynchronous Promise instance that when resolved or rejected will execute it's pending chained operations\r\n * __asynchronously__ using the optional provided timeout value to schedule when the chained items will be ececuted.\r\n * @group Async\r\n * @group Promise\r\n * @param executor - The function to be executed during the creation of the promise. Any errors thrown in the executor will\r\n * cause the promise to be rejected. The return value of the executor is always ignored\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport function createAsyncPromise(executor, timeout) {\r\n return _createPromise(createAsyncPromise, timeoutItemProcessor(timeout), executor, timeout);\r\n}\r\n/**\r\n * Returns a single asynchronous Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations __asynchronously__ using the optional\r\n * provided timeout value to schedule when the chained items will be executed, or if the input contains no promises.\r\n * It rejects immediately upon any of the input promises rejected or non-promises throwing an error,\r\n * and will reject with this first rejection message / error.\r\n * When resolved or rejected any additional chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedul when the chained item will be executed (eg. `then()`; `catch()`; `finally()`).\r\n * @group Async\r\n * @group All\r\n * @param input - The array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout\r\n * @returns\r\n *
    \r\n *
  • An already resolved `Promise`, if the input passed is empty.\r\n *
  • A pending `Promise` in all other cases. This returned promise is then resolved/rejected __synchronously__\r\n * (as soon as the pending items is empty) when all the promises in the given input have resolved, or if any of the\r\n * promises reject.\r\n *
\r\n */\r\nexport var createAsyncAllPromise = _createAllPromise(createAsyncPromise);\r\n// /**\r\n// * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\r\n// * or rejected.\r\n// * @param values An array of Promises.\r\n// * @returns A new Promise.\r\n// */\r\n// race(values: T): Promise>;\r\n//export const createAsyncRacePromise: (values: T): IPromise;\r\n/**\r\n * Returns a single asynchronous Promise instance that is already resolved with the given value. If the value passed is\r\n * a promise then that promise is returned instead of creating a new asynchronous promise instance.\r\n * If a new instance is returned then any chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedule when the chained items will be executed.(eg. `then()`; `finally()`).\r\n * @group Async\r\n * @group Resolved\r\n * @param value - The value to be used by this `Promise`. Can also be a `Promise` or a thenable to resolve.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport var createAsyncResolvedPromise = _createResolvedPromise(createAsyncPromise);\r\n/**\r\n * Returns a single asynchronous Promise instance that is already rejected with the given reason.\r\n * Any chained operations will execute __asynchronously__ using the optional timeout value to schedule\r\n * when then chained items will be executed. (eg. `catch()`; `finally()`).\r\n * @group Async\r\n * @group Rejected\r\n * @param reason - The rejection reason\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport var createAsyncRejectedPromise = _createRejectedPromise(createAsyncPromise);\r\n//# sourceMappingURL=asyncPromise.js.map","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { createAsyncPromise } from \"./asyncPromise\";\r\nimport { _createAllPromise, _createRejectedPromise, _createResolvedPromise } from \"./base\";\r\nimport { STRING_STATES } from \"../internal/state\";\r\nimport { dumpObj, lazySafeGetInst, isFunction, objDefineProp, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { STR_PROMISE } from \"../internal/constants\";\r\nvar _isPromiseSupported;\r\n/**\r\n * Creates a Promise instance that when resolved or rejected will execute it's pending chained operations using the\r\n * available native Promise implementation.\r\n * If runtime does not support native `Promise` class (or no polyfill is available) this function will fallback to using\r\n * `createAsyncPromise` which will resolve them __asynchronously__ using the optional provided timeout value to\r\n * schedule when the chained items will be executed.\r\n * @group Alias\r\n * @group Promise\r\n * @group Native\r\n * @param executor - The function to be executed during the creation of the promise. Any errors thrown in the executor will\r\n * cause the promise to be rejected. The return value of the executor is always ignored\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport function createNativePromise(executor, timeout) {\r\n !_isPromiseSupported && (_isPromiseSupported = lazySafeGetInst(STR_PROMISE));\r\n var PrmCls = _isPromiseSupported.v;\r\n if (!PrmCls) {\r\n return createAsyncPromise(executor);\r\n }\r\n if (!isFunction(executor)) {\r\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpObj(executor));\r\n }\r\n var _state = 0 /* ePromiseState.Pending */;\r\n function _strState() {\r\n return STRING_STATES[_state];\r\n }\r\n var thePromise = new PrmCls(function (resolve, reject) {\r\n function _resolve(value) {\r\n _state = 2 /* ePromiseState.Resolved */;\r\n resolve(value);\r\n }\r\n function _reject(reason) {\r\n _state = 3 /* ePromiseState.Rejected */;\r\n reject(reason);\r\n }\r\n executor(_resolve, _reject);\r\n });\r\n objDefineProp(thePromise, \"state\", {\r\n get: _strState\r\n });\r\n return thePromise;\r\n}\r\n/**\r\n * Returns a single asynchronous Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations __asynchronously__ using the optional\r\n * provided timeout value to schedule when the chained items will be executed, or if the input contains no promises.\r\n * It rejects immediately upon any of the input promises rejected or non-promises throwing an error,\r\n * and will reject with this first rejection message / error.\r\n * If the runtime doesn't support the Promise.all it will fallback back to an asynchronous Promise implementation.\r\n * @group Alias\r\n * @group All\r\n * @group Native\r\n * @param input - The array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout\r\n * @returns\r\n *
    \r\n *
  • An already resolved `Promise`, if the input passed is empty.\r\n *
  • A pending `Promise` in all other cases. This returned promise is then resolved/rejected __synchronously__\r\n * (as soon as the pending items is empty) when all the promises in the given input have resolved, or if any of the\r\n * promises reject.\r\n *
\r\n */\r\nexport var createNativeAllPromise = _createAllPromise(createNativePromise);\r\n/**\r\n * Returns a single asynchronous Promise instance that is already resolved with the given value. If the value passed is\r\n * a promise then that promise is returned instead of creating a new asynchronous promise instance.\r\n * If a new instance is returned then any chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedule when the chained items will be executed.(eg. `then()`; `finally()`).\r\n * @group Alias\r\n * @group Resolved\r\n * @group Native\r\n * @param value - The value to be used by this `Promise`. Can also be a `Promise` or a thenable to resolve.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport var createNativeResolvedPromise = _createResolvedPromise(createNativePromise);\r\n/**\r\n * Returns a single asynchronous Promise instance that is already rejected with the given reason.\r\n * Any chained operations will execute __asynchronously__ using the optional timeout value to schedule\r\n * when then chained items will be executed. (eg. `catch()`; `finally()`).\r\n * @group Alias\r\n * @group Rejected\r\n * @group Native\r\n * @param reason - The rejection reason\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport var createNativeRejectedPromise = _createRejectedPromise(createNativePromise);\r\n//# sourceMappingURL=nativePromise.js.map","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { getLazy } from \"@nevware21/ts-utils\";\r\nimport { _createAllPromise, _createRejectedPromise, _createResolvedPromise } from \"./base\";\r\nimport { createNativePromise } from \"./nativePromise\";\r\nvar _promiseCreator;\r\n/**\r\n * Set the default promise implementation to use when calling `createPromise`; `createAllPromise`; `createResolvedPromise`\r\n * and `createRejectedPromise`. This is effective a global value and changing this will affect ALL callers of these\r\n * functions, as such these functions should only be used when switching implementations would have not unexpected\r\n * consequences like switching from a `createSyncPromise` to `createIdlePromise` where idle promises have a possibility\r\n * of never getting called during application shutdown or during an expected timeframe.\r\n * @group Alias\r\n * @group Promise\r\n * @param creator - The creator function to call when a new promise is required.\r\n */\r\nexport function setCreatePromiseImpl(creator) {\r\n _promiseCreator = creator ? getLazy(function () { return creator; }) : null;\r\n}\r\n/**\r\n * Creates a Promise instance using the current default promise creator that when resolved or rejected will execute\r\n * it's pending chained operations.\r\n * @group Alias\r\n * @group Promise\r\n * @param executor - The function to be executed during the creation of the promise. Any errors thrown in the executor will\r\n * cause the promise to be rejected. The return value of the executor is always ignored\r\n * @param timeout - [Optional] timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport function createPromise(executor, timeout) {\r\n !_promiseCreator && (_promiseCreator = getLazy(function () { return createNativePromise; }));\r\n return _promiseCreator.v.call(this, executor, timeout);\r\n}\r\n/**\r\n * Returns a single asynchronous Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations __asynchronously__ using the optional\r\n * provided timeout value to schedule when the chained items will be executed, or if the input contains no promises.\r\n * It rejects immediately upon any of the input promises rejected or non-promises throwing an error,\r\n * and will reject with this first rejection message / error.\r\n * If the runtime doesn't support the Promise.all it will fallback back to an asynchronous Promise implementation.\r\n * @group Alias\r\n * @group All\r\n * @param input - The array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout\r\n * @returns\r\n *
    \r\n *
  • An already resolved `Promise`, if the input passed is empty.\r\n *
  • A pending `Promise` in all other cases. This returned promise is then resolved/rejected __synchronously__\r\n * (as soon as the pending items is empty) when all the promises in the given input have resolved, or if any of the\r\n * promises reject.\r\n *
\r\n */\r\nexport var createAllPromise = _createAllPromise(createPromise);\r\n/**\r\n * Returns a single asynchronous Promise instance that is already resolved with the given value. If the value passed is\r\n * a promise then that promise is returned instead of creating a new asynchronous promise instance.\r\n * If a new instance is returned then any chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedule when the chained items will be executed.(eg. `then()`; `finally()`).\r\n * @group Alias\r\n * @group Resolved\r\n * @param value - The value to be used by this `Promise`. Can also be a `Promise` or a thenable to resolve.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport var createResolvedPromise = _createResolvedPromise(createPromise);\r\n/**\r\n * Returns a single asynchronous Promise instance that is already rejected with the given reason.\r\n * Any chained operations will execute __asynchronously__ using the optional timeout value to schedule\r\n * when then chained items will be executed. (eg. `catch()`; `finally()`).\r\n * @group Alias\r\n * @group Rejected\r\n * @param reason - The rejection reason\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport var createRejectedPromise = _createRejectedPromise(createPromise);\r\n//# sourceMappingURL=promise.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\nexport var UNDEFINED_VALUE = undefined;\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_CHANNELS = \"channels\";\r\nexport var STR_CORE = \"core\";\r\nexport var STR_CREATE_PERF_MGR = \"createPerfMgr\";\r\nexport var STR_DISABLED = \"disabled\";\r\nexport var STR_EXTENSION_CONFIG = \"extensionConfig\";\r\nexport var STR_EXTENSIONS = \"extensions\";\r\nexport var STR_PROCESS_TELEMETRY = \"processTelemetry\";\r\nexport var STR_PRIORITY = \"priority\";\r\nexport var STR_EVENTS_SENT = \"eventsSent\";\r\nexport var STR_EVENTS_DISCARDED = \"eventsDiscarded\";\r\nexport var STR_EVENTS_SEND_REQUEST = \"eventsSendRequest\";\r\nexport var STR_PERF_EVENT = \"perfEvent\";\r\nexport var STR_GET_PERF_MGR = \"getPerfMgr\";\r\nexport var STR_DOMAIN = \"domain\";\r\nexport var STR_PATH = \"path\";\r\nexport var STR_NOT_DYNAMIC_ERROR = \"Not dynamic - \";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ObjAssign, ObjClass } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, asString as asString21, isArray, isBoolean, isError, isFunction, isNullOrUndefined, isObject, isPlainObject, isString, isUndefined, objDeepFreeze, objDefine, objForEachKey, objHasOwn, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH, _DYN_NAME, _DYN_REPLACE } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minification\r\nvar strGetPrototypeOf = \"getPrototypeOf\";\r\nvar rCamelCase = /-([a-z])/g;\r\nvar rNormalizeInvalid = /([^\\w\\d_$])/g;\r\nvar rLeadingNumeric = /^(\\d+[\\w\\d_$])/;\r\nexport var _getObjProto = Object[strGetPrototypeOf];\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name - The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n if (value && isString(value)) {\r\n // CamelCase everything after the \"-\" and remove the dash\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rCamelCase, function (_all, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rNormalizeInvalid, \"_\");\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rLeadingNumeric, function (_all, match) {\r\n return \"_\" + match;\r\n });\r\n }\r\n return value;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return strIndexOf(value, search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n return date && date.toISOString() || \"\";\r\n}\r\nexport var deepFreeze = objDeepFreeze;\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object[_DYN_NAME /* @min:%2ename */];\r\n }\r\n return STR_EMPTY;\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\nfunction _createProxyFunction(source, funcName) {\r\n var srcFunc = null;\r\n var src = null;\r\n if (isFunction(source)) {\r\n srcFunc = source;\r\n }\r\n else {\r\n src = source;\r\n }\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n if (srcFunc) {\r\n src = srcFunc();\r\n }\r\n if (src) {\r\n return src[funcName][_DYN_APPLY /* @min:%2eapply */](src, originalArguments);\r\n }\r\n };\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = _createProxyFunction(source, field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (objHasOwn(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n objDefine(target, field, {\r\n g: function () {\r\n return source[field];\r\n },\r\n s: function (theValue) {\r\n source[field] = theValue;\r\n }\r\n });\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Creates a proxy function on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param name - The function name that will be added on the target\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param theFunc - The function name on the source that will be proxied on the target\r\n * @param overwriteTarget - If `false` this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {\r\n if (target && name && source) {\r\n if (overwriteTarget !== false || isUndefined(target[name])) {\r\n target[name] = _createProxyFunction(source, theFunc);\r\n }\r\n }\r\n}\r\n/**\r\n * Creates proxy functions on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param functionsToProxy - An array of function names that will be proxied on the target\r\n * @param overwriteTarget - If false this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctions(target, source, functionsToProxy, overwriteTarget) {\r\n if (target && source && isObject(target) && isArray(functionsToProxy)) {\r\n arrForEach(functionsToProxy, function (theFuncName) {\r\n if (isString(theFuncName)) {\r\n proxyFunctionAs(target, theFuncName, source, theFuncName, overwriteTarget);\r\n }\r\n });\r\n }\r\n return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults - Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject && ObjAssign) {\r\n theObject = ObjClass(ObjAssign({}, theObject));\r\n }\r\n return theObject;\r\n}\r\nexport function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {\r\n // Variables\r\n var theArgs = arguments;\r\n var extended = theArgs[0] || {};\r\n var argLen = theArgs[_DYN_LENGTH /* @min:%2elength */];\r\n var deep = false;\r\n var idx = 1;\r\n // Check for \"Deep\" flag\r\n if (argLen > 0 && isBoolean(extended)) {\r\n deep = extended;\r\n extended = theArgs[idx] || {};\r\n idx++;\r\n }\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if (!isObject(extended)) {\r\n extended = {};\r\n }\r\n // Loop through each remaining object and conduct a merge\r\n for (; idx < argLen; idx++) {\r\n var arg = theArgs[idx];\r\n var isArgArray = isArray(arg);\r\n var isArgObj = isObject(arg);\r\n for (var prop in arg) {\r\n var propOk = (isArgArray && (prop in arg)) || (isArgObj && objHasOwn(arg, prop));\r\n if (!propOk) {\r\n continue;\r\n }\r\n var newValue = arg[prop];\r\n var isNewArray = void 0;\r\n // If deep merge and property is an object, merge properties\r\n if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {\r\n // Grab the current value of the extended object\r\n var clone = extended[prop];\r\n if (isNewArray) {\r\n if (!isArray(clone)) {\r\n // We can't \"merge\" an array with a non-array so overwrite the original\r\n clone = [];\r\n }\r\n }\r\n else if (!isPlainObject(clone)) {\r\n // We can't \"merge\" an object with a non-object\r\n clone = {};\r\n }\r\n // Never move the original objects always clone them\r\n newValue = objExtend(deep, clone, newValue);\r\n }\r\n // Assign the new (or previous) value (unless undefined)\r\n if (newValue !== undefined) {\r\n extended[prop] = newValue;\r\n }\r\n }\r\n }\r\n return extended;\r\n}\r\nexport var asString = asString21;\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { strShimObject, strShimPrototype, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { getDocument, getInst, getNavigator, getPerformance, hasNavigator, isString, isUndefined, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_NAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { strContains } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strDocumentMode = \"documentMode\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strPerformance = \"performance\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar strXMLHttpRequest = \"XMLHttpRequest\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getInst(strConsole);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getInst(strJSON);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n return getInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n return getInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav[_DYN_USER_AGENT /* @min:%2euserAgent */] !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav[_DYN_USER_AGENT /* @min:%2euserAgent */];\r\n var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.\r\n if (strContains(ua, strMsie)) {\r\n var doc = getDocument() || {};\r\n return Math.max(parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strMsie)[1]), (doc[strDocumentMode] || 0));\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n return (strIndexOf(ua, \"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported() {\r\n if (_beaconsSupported === null) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n isSupported = !!getInst(\"fetch\");\r\n var request = getInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getInst(strXMLHttpRequest), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getInst(strXMLHttpRequest);\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nfunction _getNamedValue(values, name) {\r\n if (values) {\r\n for (var i = 0; i < values[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var value = values[i];\r\n if (value[_DYN_NAME /* @min:%2ename */]) {\r\n if (value[_DYN_NAME /* @min:%2ename */] === name) {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n return {};\r\n}\r\n/**\r\n * Helper function to fetch the named meta-tag from the page.\r\n * @param name\r\n */\r\nexport function findMetaTag(name) {\r\n var doc = getDocument();\r\n if (doc && name) {\r\n // Look for a meta-tag\r\n return _getNamedValue(doc.querySelectorAll(\"meta\"), name).content;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper function to fetch the named server timing value from the page response (first navigation event).\r\n * @param name\r\n */\r\nexport function findNamedServerTiming(name) {\r\n var value;\r\n var perf = getPerformance();\r\n if (perf) {\r\n // Try looking for a server-timing header\r\n var navPerf = perf.getEntriesByType(\"navigation\") || [];\r\n value = _getNamedValue((navPerf[_DYN_LENGTH /* @min:%2elength */] > 0 ? navPerf[0] : {}).serverTiming, name).description;\r\n }\r\n return value;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\nvar SEED1 = 123456789;\r\nvar SEED2 = 987654321;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = SEED1;\r\nvar _mwcZ = SEED2;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0;\r\n }\r\n _mwcW = (SEED1 + seedValue) & MaxUInt32;\r\n _mwcZ = (SEED2 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n try {\r\n var now = utcNow() & 0x7fffffff;\r\n _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n }\r\n catch (e) {\r\n // Don't crash if something goes wrong\r\n }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n var value = 0;\r\n var c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n }\r\n if (value === 0 && isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = mwcRandom32() & MaxUInt32;\r\n }\r\n if (value === 0) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n if (!value) {\r\n _autoSeedMwc();\r\n }\r\n else {\r\n _mwcSeed(value);\r\n }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n var number = random32() >>> 0; // Make sure it's a +ve number\r\n var chars = 0;\r\n var result = STR_EMPTY;\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < maxLength) {\r\n chars++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=RandomHelper.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_NODE_TYPE } from \"../__DynamicConstants\";\r\nimport { normalizeJsName } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { newId } from \"./RandomHelper\";\r\nvar version = '3.0.2';\r\nvar instanceName = \".\" + newId(6);\r\nvar _dataUid = 0;\r\n// Accepts only:\r\n// - Node\r\n// - Node.ELEMENT_NODE\r\n// - Node.DOCUMENT_NODE\r\n// - Object\r\n// - Any\r\nfunction _canAcceptData(target) {\r\n return target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 1 || target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 9 || !(+target[_DYN_NODE_TYPE /* @min:%2enodeType */]);\r\n}\r\nfunction _getCache(data, target) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n theCache = {};\r\n try {\r\n if (_canAcceptData(target)) {\r\n objDefine(target, data.id, {\r\n e: false,\r\n v: theCache\r\n });\r\n }\r\n }\r\n catch (e) {\r\n // Not all environments allow extending all objects, so just ignore the cache in those cases\r\n }\r\n }\r\n return theCache;\r\n}\r\nexport function createUniqueNamespace(name, includeVersion) {\r\n if (includeVersion === void 0) { includeVersion = false; }\r\n return normalizeJsName(name + (_dataUid++) + (includeVersion ? \".\" + version : STR_EMPTY) + instanceName);\r\n}\r\nexport function createElmNodeData(name) {\r\n var data = {\r\n id: createUniqueNamespace(\"_aiData-\" + (name || STR_EMPTY) + \".\" + version),\r\n accept: function (target) {\r\n return _canAcceptData(target);\r\n },\r\n get: function (target, name, defValue, addDefault) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n if (addDefault) {\r\n // Side effect is adds the cache\r\n theCache = _getCache(data, target);\r\n theCache[normalizeJsName(name)] = defValue;\r\n }\r\n return defValue;\r\n }\r\n return theCache[normalizeJsName(name)];\r\n },\r\n kill: function (target, name) {\r\n if (target && target[name]) {\r\n try {\r\n delete target[name];\r\n }\r\n catch (e) {\r\n // Just cleaning up, so if this fails -- ignore\r\n }\r\n }\r\n }\r\n };\r\n return data;\r\n}\r\n//# sourceMappingURL=DataCacheHelper.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isArray, isDefined, isNullOrUndefined, isObject, isPlainObject, isUndefined, objForEachKey, objHasOwn } from \"@nevware21/ts-utils\";\r\nimport { _DYN_BLK_VAL, _DYN_LENGTH, _DYN_RD_ONLY } from \"../__DynamicConstants\";\r\nfunction _isConfigDefaults(value) {\r\n return (value && isObject(value) && (value.isVal || value.fb || objHasOwn(value, \"v\") || objHasOwn(value, \"mrg\") || objHasOwn(value, \"ref\") || value.set));\r\n}\r\nfunction _getDefault(dynamicHandler, theConfig, cfgDefaults) {\r\n var defValue;\r\n var isDefaultValid = cfgDefaults.dfVal || isDefined;\r\n // There is a fallback config key so try and grab that first\r\n if (theConfig && cfgDefaults.fb) {\r\n var fallbacks = cfgDefaults.fb;\r\n if (!isArray(fallbacks)) {\r\n fallbacks = [fallbacks];\r\n }\r\n for (var lp = 0; lp < fallbacks[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var fallback = fallbacks[lp];\r\n var fbValue = theConfig[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n else if (dynamicHandler) {\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n fbValue = dynamicHandler.cfg[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n dynamicHandler.set(dynamicHandler.cfg, asString(fallback), fbValue);\r\n }\r\n if (isDefaultValid(defValue)) {\r\n // We have a valid default so break out of the look\r\n break;\r\n }\r\n }\r\n }\r\n // If the value is still not defined and we have a default value then use that\r\n if (!isDefaultValid(defValue) && isDefaultValid(cfgDefaults.v)) {\r\n defValue = cfgDefaults.v;\r\n }\r\n return defValue;\r\n}\r\n/**\r\n * Recursively resolve the default value\r\n * @param dynamicHandler\r\n * @param theConfig\r\n * @param cfgDefaults\r\n * @returns\r\n */\r\nfunction _resolveDefaultValue(dynamicHandler, theConfig, cfgDefaults) {\r\n var theValue = cfgDefaults;\r\n if (cfgDefaults && _isConfigDefaults(cfgDefaults)) {\r\n theValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n if (theValue) {\r\n if (_isConfigDefaults(theValue)) {\r\n theValue = _resolveDefaultValue(dynamicHandler, theConfig, theValue);\r\n }\r\n var newValue_1;\r\n if (isArray(theValue)) {\r\n newValue_1 = [];\r\n newValue_1[_DYN_LENGTH /* @min:%2elength */] = theValue[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(theValue)) {\r\n newValue_1 = {};\r\n }\r\n if (newValue_1) {\r\n objForEachKey(theValue, function (key, value) {\r\n if (value && _isConfigDefaults(value)) {\r\n value = _resolveDefaultValue(dynamicHandler, theConfig, value);\r\n }\r\n newValue_1[key] = value;\r\n });\r\n theValue = newValue_1;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Applies the default value on the config property and makes sure that it's dynamic\r\n * @param theConfig\r\n * @param name\r\n * @param defaultValue\r\n */\r\nexport function _applyDefaultValue(dynamicHandler, theConfig, name, defaultValue) {\r\n // Resolve the initial config value from the provided value or use the defined default\r\n var isValid;\r\n var setFn;\r\n var defValue;\r\n var cfgDefaults = defaultValue;\r\n var mergeDf;\r\n var reference;\r\n var readOnly;\r\n var blkDynamicValue;\r\n if (_isConfigDefaults(cfgDefaults)) {\r\n // looks like a IConfigDefault\r\n isValid = cfgDefaults.isVal;\r\n setFn = cfgDefaults.set;\r\n readOnly = cfgDefaults[_DYN_RD_ONLY /* @min:%2erdOnly */];\r\n blkDynamicValue = cfgDefaults[_DYN_BLK_VAL /* @min:%2eblkVal */];\r\n mergeDf = cfgDefaults.mrg;\r\n reference = cfgDefaults.ref;\r\n if (!reference && isUndefined(reference)) {\r\n reference = !!mergeDf;\r\n }\r\n defValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n else {\r\n defValue = defaultValue;\r\n }\r\n if (blkDynamicValue) {\r\n // Mark the property so that any value assigned will be blocked from conversion, we need to do this\r\n // before assigning or fetching the value to ensure it's not converted\r\n dynamicHandler[_DYN_BLK_VAL /* @min:%2eblkVal */](theConfig, name);\r\n }\r\n // Set the value to the default value;\r\n var theValue;\r\n var usingDefault = true;\r\n var cfgValue = theConfig[name];\r\n // try and get and user provided values\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n // Use the defined theConfig[name] value\r\n theValue = cfgValue;\r\n usingDefault = false;\r\n // The values are different and we have a special default value check, which is used to\r\n // override config values like empty strings to continue using the default\r\n if (isValid && theValue !== defValue && !isValid(theValue)) {\r\n theValue = defValue;\r\n usingDefault = true;\r\n }\r\n if (setFn) {\r\n theValue = setFn(theValue, defValue, theConfig);\r\n usingDefault = theValue === defValue;\r\n }\r\n }\r\n if (!usingDefault) {\r\n if (isPlainObject(theValue) || isArray(defValue)) {\r\n // we are using the user supplied value and it's an object\r\n if (mergeDf && defValue && (isPlainObject(defValue) || isArray(defValue))) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defValue, function (dfName, dfValue) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(dynamicHandler, theValue, dfName, dfValue);\r\n });\r\n }\r\n }\r\n }\r\n else if (defValue) {\r\n // Just resolve the default\r\n theValue = _resolveDefaultValue(dynamicHandler, theConfig, defValue);\r\n }\r\n else {\r\n theValue = defValue;\r\n }\r\n // if (theValue && usingDefault && (isPlainObject(theValue) || isArray(theValue))) {\r\n // theValue = _cfgDeepCopy(theValue);\r\n // }\r\n // Needed to ensure that the (potentially) new field is dynamic even if null/undefined\r\n dynamicHandler.set(theConfig, name, theValue);\r\n if (reference) {\r\n dynamicHandler.ref(theConfig, name);\r\n }\r\n if (readOnly) {\r\n dynamicHandler[_DYN_RD_ONLY /* @min:%2erdOnly */](theConfig, name);\r\n }\r\n}\r\n//# sourceMappingURL=ConfigDefaults.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isArray, isPlainObject, objForEachKey, symbolFor, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\n// Using Symbol.for so that if the same symbol was already created it would be returned\r\n// To handle multiple instances using potentially different versions we are not using\r\n// createUniqueNamespace()\r\nexport var CFG_HANDLER_LINK = symbolFor(\"[[ai_dynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects / arrays with if they should not be converted\r\n */\r\nvar BLOCK_DYNAMIC = symbolFor(\"[[ai_blkDynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects to indicate that when included into the configuration that\r\n * they should be converted into a trackable dynamic object.\r\n */\r\nvar FORCE_DYNAMIC = symbolFor(\"[[ai_frcDynCfg_1]]\");\r\nexport function _cfgDeepCopy(source) {\r\n if (source) {\r\n var target_1;\r\n if (isArray(source)) {\r\n target_1 = [];\r\n target_1[_DYN_LENGTH /* @min:%2elength */] = source[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(source)) {\r\n target_1 = {};\r\n }\r\n if (target_1) {\r\n // Copying index values by property name as the extensionConfig can be an array or object\r\n objForEachKey(source, function (key, value) {\r\n // Perform a deep copy of the object\r\n target_1[key] = _cfgDeepCopy(value);\r\n });\r\n return target_1;\r\n }\r\n }\r\n return source;\r\n}\r\n/**\r\n * @internal\r\n * Get the dynamic config handler if the value is already dynamic\r\n * @param value\r\n * @returns\r\n */\r\nexport function getDynamicConfigHandler(value) {\r\n if (value) {\r\n var handler = value[CFG_HANDLER_LINK] || value;\r\n if (handler.cfg && (handler.cfg === value || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Mark the provided value so that if it's included into the configuration it will NOT have\r\n * its properties converted into a dynamic (reactive) object. If the object is not a plain object\r\n * or an array (ie. a class) this function has not affect as only Objects and Arrays are converted\r\n * into dynamic objects in the dynamic configuration.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * You should only need to use this function, if you are creating dynamic \"classes\" from objects\r\n * which confirm to the require interface. A common case for this is during unit testing where it's\r\n * easier to create mock extensions.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed\r\n *\r\n * @example\r\n * ```ts\r\n * // This is a valid \"extension\", but it is technically an object\r\n * // So when included in the config.extensions it WILL be cloned and then\r\n * // converted into a dynamic object, where all of its properties will become\r\n * // get/set object properties and will be tracked. While this WILL still\r\n * // function, when attempt to use a mocking framework on top of this the\r\n * // functions are now technically get accessors which return a function\r\n * // and this can cause some mocking frameworks to fail.\r\n * let mockChannel = {\r\n * pause: () => { },\r\n* resume: () => { },\r\n* teardown: () => { },\r\n* flush: (async: any, callBack: any) => { },\r\n* processTelemetry: (env: any) => { },\r\n* setNextPlugin: (next: any) => { },\r\n* initialize: (config: any, core: any, extensions: any) => { },\r\n* identifier: \"testChannel\",\r\n* priority: 1003\r\n* };\r\n * ```\r\n * @param value - The object that you want to block from being converted into a\r\n * trackable dynamic object\r\n * @returns The original value\r\n */\r\nexport function blockDynamicConversion(value) {\r\n if (value && (isPlainObject(value) || isArray(value))) {\r\n try {\r\n value[BLOCK_DYNAMIC] = true;\r\n }\r\n catch (e) {\r\n // Don't throw for this case as it's an ask only\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * This is the reverse case of {@link blockDynamicConversion} in that this will tag an\r\n * object to indicate that it should always be converted into a dynamic trackable object\r\n * even when not an object or array. So all properties of this object will become\r\n * get / set accessor functions.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed.\r\n * @param value - The object that should be tagged and converted if included into a dynamic\r\n * configuration.\r\n * @returns The original value\r\n */\r\nexport function forceDynamicConversion(value) {\r\n if (value) {\r\n try {\r\n value[FORCE_DYNAMIC] = true;\r\n }\r\n catch (e) {\r\n // Don't throw for this case as it's an ask only\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper function to check whether an object can or should be converted into a dynamic\r\n * object.\r\n * @param value - The object to check whether it should be converted\r\n * @returns `true` if the value should be converted otherwise `false`.\r\n */\r\nexport function _canMakeDynamic(getFunc, state, value) {\r\n var result = false;\r\n // Object must exist and be truthy\r\n if (value && !getFunc[state.blkVal]) {\r\n // Tagged as always convert\r\n result = value[FORCE_DYNAMIC];\r\n // Check that it's not explicitly tagged as blocked\r\n if (!result && !value[BLOCK_DYNAMIC]) {\r\n // Only convert plain objects or arrays by default\r\n result = isPlainObject(value) || isArray(value);\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Throws an invalid access exception\r\n * @param message - The message to include in the exception\r\n */\r\nexport function throwInvalidAccess(message) {\r\n throwTypeError(\"InvalidAccess:\" + message);\r\n}\r\n//# sourceMappingURL=DynamicSupport.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, isArray, objDefine, objDefineProp, objForEachKey, objGetOwnPropertyDescriptor } from \"@nevware21/ts-utils\";\r\nimport { UNDEFINED_VALUE } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_APPLY, _DYN_HDLR, _DYN_LOGGER, _DYN_PUSH, _DYN_SPLICE, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nimport { CFG_HANDLER_LINK, _canMakeDynamic, blockDynamicConversion, throwInvalidAccess } from \"./DynamicSupport\";\r\nvar arrayMethodsToPatch = [\r\n \"push\",\r\n \"pop\",\r\n \"shift\",\r\n \"unshift\",\r\n \"splice\"\r\n];\r\nexport var _throwDynamicError = function (logger, name, desc, e) {\r\n logger && logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](3 /* eLoggingSeverity.DEBUG */, 108 /* _eInternalMessageId.DynamicConfigException */, \"\".concat(desc, \" [\").concat(name, \"] failed - \") + dumpObj(e));\r\n};\r\nfunction _patchArray(state, target, name) {\r\n if (isArray(target)) {\r\n // Monkey Patch the methods that might change the array\r\n arrForEach(arrayMethodsToPatch, function (method) {\r\n var orgMethod = target[method];\r\n target[method] = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var result = orgMethod[_DYN_APPLY /* @min:%2eapply */](this, args);\r\n // items may be added, removed or moved so need to make some new dynamic properties\r\n _makeDynamicObject(state, target, name, \"Patching\");\r\n return result;\r\n };\r\n });\r\n }\r\n}\r\nfunction _getOwnPropGetter(target, name) {\r\n var propDesc = objGetOwnPropertyDescriptor(target, name);\r\n return propDesc && propDesc.get;\r\n}\r\nfunction _createDynamicProperty(state, theConfig, name, value) {\r\n // Does not appear to be dynamic so lets make it so\r\n var detail = {\r\n n: name,\r\n h: [],\r\n trk: function (handler) {\r\n if (handler && handler.fn) {\r\n if (arrIndexOf(detail.h, handler) === -1) {\r\n // Add this handler to the collection that should be notified when the value changes\r\n detail.h[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n state.trk(handler, detail);\r\n }\r\n },\r\n clr: function (handler) {\r\n var idx = arrIndexOf(detail.h, handler);\r\n if (idx !== -1) {\r\n detail.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n };\r\n // Flag to optimize lookup response time by avoiding additional function calls\r\n var checkDynamic = true;\r\n var isObjectOrArray = false;\r\n function _getProperty() {\r\n if (checkDynamic) {\r\n isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n // Make sure that if it's an object that we make it dynamic\r\n if (value && !value[CFG_HANDLER_LINK] && isObjectOrArray) {\r\n // It doesn't look like it's already dynamic so lets make sure it's converted the object into a dynamic Config as well\r\n value = _makeDynamicObject(state, value, name, \"Converting\");\r\n }\r\n // If it needed to be converted it now has been\r\n checkDynamic = false;\r\n }\r\n // If there is an active handler then add it to the tracking set of handlers\r\n var activeHandler = state.act;\r\n if (activeHandler) {\r\n detail.trk(activeHandler);\r\n }\r\n return value;\r\n }\r\n // Tag this getter as our dynamic property and provide shortcut for notifying a change\r\n _getProperty[state.prop] = {\r\n chng: function () {\r\n state.add(detail);\r\n }\r\n };\r\n function _setProperty(newValue) {\r\n if (value !== newValue) {\r\n if (!!_getProperty[state.ro] && !state.upd) {\r\n // field is marked as readonly so return false\r\n throwInvalidAccess(\"[\" + name + \"] is read-only:\" + dumpObj(theConfig));\r\n }\r\n if (checkDynamic) {\r\n isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n checkDynamic = false;\r\n }\r\n // The value must be a plain object or an array to enforce the reference (in-place updates)\r\n var isReferenced = isObjectOrArray && _getProperty[state.rf];\r\n if (isObjectOrArray) {\r\n // We are about to replace a plain object or an array\r\n if (isReferenced) {\r\n // Reassign the properties from the current value to the same properties from the newValue\r\n // This will set properties not in the newValue to undefined\r\n objForEachKey(value, function (key) {\r\n value[key] = newValue ? newValue[key] : UNDEFINED_VALUE;\r\n });\r\n // Now assign / re-assign value with all of the keys from newValue\r\n try {\r\n objForEachKey(newValue, function (key, theValue) {\r\n _setDynamicProperty(state, value, key, theValue);\r\n });\r\n // Now drop newValue so when we assign value later it keeps the existing reference\r\n newValue = value;\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Assigning\", e);\r\n // Mark as not an object or array so we don't try and do this again\r\n isObjectOrArray = false;\r\n }\r\n }\r\n else if (value && value[CFG_HANDLER_LINK]) {\r\n // As we are replacing the value, if it's already dynamic then we need to notify the listeners\r\n // for every property it has already\r\n objForEachKey(value, function (key) {\r\n // Check if the value is dynamic\r\n var getter = _getOwnPropGetter(value, key);\r\n if (getter) {\r\n // And if it is tell it's listeners that the value has changed\r\n var valueState = getter[state.prop];\r\n valueState && valueState.chng();\r\n }\r\n });\r\n }\r\n }\r\n if (newValue !== value) {\r\n var newIsObjectOrArray = newValue && _canMakeDynamic(_getProperty, state, newValue);\r\n if (!isReferenced && newIsObjectOrArray) {\r\n // As the newValue is an object/array lets preemptively make it dynamic\r\n newValue = _makeDynamicObject(state, newValue, name, \"Converting\");\r\n }\r\n // Now assign the internal \"value\" to the newValue\r\n value = newValue;\r\n isObjectOrArray = newIsObjectOrArray;\r\n }\r\n // Cause any listeners to be scheduled for notification\r\n state.add(detail);\r\n }\r\n }\r\n objDefine(theConfig, detail.n, { g: _getProperty, s: _setProperty });\r\n}\r\nexport function _setDynamicProperty(state, target, name, value) {\r\n if (target) {\r\n // To be a dynamic property it needs to have a get function\r\n var getter = _getOwnPropGetter(target, name);\r\n var isDynamic = getter && !!getter[state.prop];\r\n if (!isDynamic) {\r\n _createDynamicProperty(state, target, name, value);\r\n }\r\n else {\r\n // Looks like it's already dynamic just assign the new value\r\n target[name] = value;\r\n }\r\n }\r\n return target;\r\n}\r\nexport function _setDynamicPropertyState(state, target, name, flags) {\r\n if (target) {\r\n // To be a dynamic property it needs to have a get function\r\n var getter = _getOwnPropGetter(target, name);\r\n var isDynamic = getter && !!getter[state.prop];\r\n var inPlace = flags && flags[0 /* _eSetDynamicPropertyFlags.inPlace */];\r\n var rdOnly = flags && flags[1 /* _eSetDynamicPropertyFlags.readOnly */];\r\n var blkProp = flags && flags[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */];\r\n if (!isDynamic) {\r\n if (blkProp) {\r\n try {\r\n // Attempt to mark the target as blocked from conversion\r\n blockDynamicConversion(target);\r\n }\r\n catch (e) {\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Blocking\", e);\r\n }\r\n }\r\n try {\r\n // Make sure it's dynamic so that we can tag the property as per the state\r\n _setDynamicProperty(state, target, name, target[name]);\r\n getter = _getOwnPropGetter(target, name);\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"State\", e);\r\n }\r\n }\r\n // Assign the optional flags if true\r\n if (inPlace) {\r\n getter[state.rf] = inPlace;\r\n }\r\n if (rdOnly) {\r\n getter[state.ro] = rdOnly;\r\n }\r\n if (blkProp) {\r\n getter[state.blkVal] = true;\r\n }\r\n }\r\n return target;\r\n}\r\nexport function _makeDynamicObject(state, target, name, desc) {\r\n try {\r\n // Assign target with new value properties (converting into dynamic properties in the process)\r\n objForEachKey(target, function (key, value) {\r\n // Assign and/or make the property dynamic\r\n _setDynamicProperty(state, target, key, value);\r\n });\r\n if (!target[CFG_HANDLER_LINK]) {\r\n // Link the config back to the dynamic config details\r\n objDefineProp(target, CFG_HANDLER_LINK, {\r\n get: function () {\r\n return state[_DYN_HDLR /* @min:%2ehdlr */];\r\n }\r\n });\r\n _patchArray(state, target, name);\r\n }\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, desc, e);\r\n }\r\n return target;\r\n}\r\n//# sourceMappingURL=DynamicProperty.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, newSymbol, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { throwAggregationError } from \"../JavaScriptSDK/AggregationError\";\r\nimport { _DYN_BLK_VAL, _DYN_CANCEL, _DYN_HDLR, _DYN_LENGTH, _DYN_LOGGER, _DYN_NOTIFY, _DYN_PUSH, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nvar symPrefix = \"[[ai_\";\r\nvar symPostfix = \"]]\";\r\nexport function _createState(cfgHandler) {\r\n var _a;\r\n var dynamicPropertySymbol = newSymbol(symPrefix + \"get\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReadOnly = newSymbol(symPrefix + \"ro\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReferenced = newSymbol(symPrefix + \"rf\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyBlockValue = newSymbol(symPrefix + \"blkVal\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyDetail = newSymbol(symPrefix + \"dtl\" + cfgHandler.uid + symPostfix);\r\n var _waitingHandlers = null;\r\n var _watcherTimer = null;\r\n var theState;\r\n function _useHandler(activeHandler, callback) {\r\n var prevWatcher = theState.act;\r\n try {\r\n theState.act = activeHandler;\r\n if (activeHandler && activeHandler[dynamicPropertyDetail]) {\r\n // Clear out the previously tracked details for this handler, so that access are re-evaluated\r\n arrForEach(activeHandler[dynamicPropertyDetail], function (detail) {\r\n detail.clr(activeHandler);\r\n });\r\n activeHandler[dynamicPropertyDetail] = [];\r\n }\r\n callback({\r\n cfg: cfgHandler.cfg,\r\n set: cfgHandler.set.bind(cfgHandler),\r\n setDf: cfgHandler[_DYN_SET_DF /* @min:%2esetDf */].bind(cfgHandler),\r\n ref: cfgHandler.ref.bind(cfgHandler),\r\n rdOnly: cfgHandler[_DYN_RD_ONLY /* @min:%2erdOnly */].bind(cfgHandler)\r\n });\r\n }\r\n catch (e) {\r\n var logger = cfgHandler[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // Don't let one individual failure break everyone\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](1 /* eLoggingSeverity.CRITICAL */, 107 /* _eInternalMessageId.ConfigWatcherException */, dumpObj(e));\r\n }\r\n // Re-throw the exception so that any true \"error\" is reported back to the called\r\n throw e;\r\n }\r\n finally {\r\n theState.act = prevWatcher || null;\r\n }\r\n }\r\n function _notifyWatchers() {\r\n if (_waitingHandlers) {\r\n var notifyHandlers = _waitingHandlers;\r\n _waitingHandlers = null;\r\n // Stop any timer as we are running them now anyway\r\n _watcherTimer && _watcherTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _watcherTimer = null;\r\n var watcherFailures_1 = [];\r\n // Now run the handlers\r\n arrForEach(notifyHandlers, function (handler) {\r\n if (handler) {\r\n if (handler[dynamicPropertyDetail]) {\r\n arrForEach(handler[dynamicPropertyDetail], function (detail) {\r\n // Clear out this handler from previously tracked details, so that access are re-evaluated\r\n detail.clr(handler);\r\n });\r\n handler[dynamicPropertyDetail] = null;\r\n }\r\n // The handler may have self removed as part of another handler so re-check\r\n if (handler.fn) {\r\n try {\r\n _useHandler(handler, handler.fn);\r\n }\r\n catch (e) {\r\n // Don't let a single failing watcher cause other watches to fail\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n }\r\n });\r\n // During notification we may have had additional updates -- so notify those updates as well\r\n if (_waitingHandlers) {\r\n try {\r\n _notifyWatchers();\r\n }\r\n catch (e) {\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n if (watcherFailures_1[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n throwAggregationError(\"Watcher error(s): \", watcherFailures_1);\r\n }\r\n }\r\n }\r\n function _addWatcher(detail) {\r\n if (detail && detail.h[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n if (!_waitingHandlers) {\r\n _waitingHandlers = [];\r\n }\r\n if (!_watcherTimer) {\r\n _watcherTimer = scheduleTimeout(function () {\r\n _watcherTimer = null;\r\n _notifyWatchers();\r\n }, 0);\r\n }\r\n // Add all of the handlers for this detail (if not already present) - using normal for-loop for performance\r\n for (var idx = 0; idx < detail.h[_DYN_LENGTH /* @min:%2elength */]; idx++) {\r\n var handler = detail.h[idx];\r\n // Add this handler to the collection of handlers to re-execute\r\n if (handler && arrIndexOf(_waitingHandlers, handler) === -1) {\r\n _waitingHandlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n }\r\n }\r\n function _trackHandler(handler, detail) {\r\n if (handler) {\r\n var details = handler[dynamicPropertyDetail] = handler[dynamicPropertyDetail] || [];\r\n if (arrIndexOf(details, detail) === -1) {\r\n // If this detail is not already listed as tracked then add it so that we re-evaluate it's usage\r\n details[_DYN_PUSH /* @min:%2epush */](detail);\r\n }\r\n }\r\n }\r\n theState = (_a = {\r\n prop: dynamicPropertySymbol,\r\n ro: dynamicPropertyReadOnly,\r\n rf: dynamicPropertyReferenced\r\n },\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = dynamicPropertyBlockValue,\r\n _a[_DYN_HDLR /* @min:hdlr */] = cfgHandler,\r\n _a.add = _addWatcher,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.use = _useHandler,\r\n _a.trk = _trackHandler,\r\n _a);\r\n return theState;\r\n}\r\n//# sourceMappingURL=DynamicState.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj, isUndefined, objDefine, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { createUniqueNamespace } from \"../JavaScriptSDK/DataCacheHelper\";\r\nimport { STR_NOT_DYNAMIC_ERROR } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _DYN_LOGGER, _DYN_NOTIFY, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL, _DYN_WARN_TO_CONSOLE, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { _applyDefaultValue } from \"./ConfigDefaults\";\r\nimport { _makeDynamicObject, _setDynamicProperty, _setDynamicPropertyState, _throwDynamicError } from \"./DynamicProperty\";\r\nimport { _createState } from \"./DynamicState\";\r\nimport { CFG_HANDLER_LINK, _cfgDeepCopy, getDynamicConfigHandler, throwInvalidAccess } from \"./DynamicSupport\";\r\n/**\r\n * Identifies a function which will be re-called whenever any of it's accessed configuration values\r\n * change.\r\n * @param configHandler - The callback that will be called for the initial request and then whenever any\r\n * accessed configuration changes are identified.\r\n */\r\nfunction _createAndUseHandler(state, configHandler) {\r\n var handler = {\r\n fn: configHandler,\r\n rm: function () {\r\n // Clear all references to the handler so it can be garbage collected\r\n // This will also cause this handler to never get called and eventually removed\r\n handler.fn = null;\r\n state = null;\r\n configHandler = null;\r\n }\r\n };\r\n state.use(handler, configHandler);\r\n return handler;\r\n}\r\n/**\r\n * Creates the dynamic config handler and associates with the target config as the root object\r\n * @param target - The config that you want to be root of the dynamic config\r\n * @param inPlace - Should the passed config be converted in-place or a new proxy returned\r\n * @returns The existing dynamic handler or a new instance with the provided config values\r\n */\r\nfunction _createDynamicHandler(logger, target, inPlace) {\r\n var _a;\r\n var dynamicHandler = getDynamicConfigHandler(target);\r\n if (dynamicHandler) {\r\n // The passed config is already dynamic so return it's tracker\r\n return dynamicHandler;\r\n }\r\n var uid = createUniqueNamespace(\"dyncfg\", true);\r\n var newTarget = (target && inPlace !== false) ? target : _cfgDeepCopy(target);\r\n var theState;\r\n function _notifyWatchers() {\r\n theState[_DYN_NOTIFY /* @min:%2enotify */]();\r\n }\r\n function _setValue(target, name, value) {\r\n try {\r\n target = _setDynamicProperty(theState, target, name, value);\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError(logger, name, \"Setting value\", e);\r\n }\r\n return target[name];\r\n }\r\n function _watch(configHandler) {\r\n return _createAndUseHandler(theState, configHandler);\r\n }\r\n function _block(configHandler, allowUpdate) {\r\n theState.use(null, function (details) {\r\n var prevUpd = theState.upd;\r\n try {\r\n if (!isUndefined(allowUpdate)) {\r\n theState.upd = allowUpdate;\r\n }\r\n configHandler(details);\r\n }\r\n finally {\r\n theState.upd = prevUpd;\r\n }\r\n });\r\n }\r\n function _ref(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as referenced with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[0 /* _eSetDynamicPropertyFlags.inPlace */] = true, _a))[name];\r\n }\r\n function _rdOnly(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as readonly with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[1 /* _eSetDynamicPropertyFlags.readOnly */] = true, _a))[name];\r\n }\r\n function _blkPropValue(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as readonly with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */] = true, _a))[name];\r\n }\r\n function _applyDefaults(theConfig, defaultValues) {\r\n if (defaultValues) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defaultValues, function (name, value) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(cfgHandler, theConfig, name, value);\r\n });\r\n }\r\n return theConfig;\r\n }\r\n var cfgHandler = (_a = {\r\n uid: null,\r\n cfg: newTarget\r\n },\r\n _a[_DYN_LOGGER /* @min:logger */] = logger,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.set = _setValue,\r\n _a[_DYN_SET_DF /* @min:setDf */] = _applyDefaults,\r\n _a[_DYN_WATCH /* @min:watch */] = _watch,\r\n _a.ref = _ref,\r\n _a[_DYN_RD_ONLY /* @min:rdOnly */] = _rdOnly,\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = _blkPropValue,\r\n _a._block = _block,\r\n _a);\r\n objDefine(cfgHandler, \"uid\", {\r\n c: false,\r\n e: false,\r\n w: false,\r\n v: uid\r\n });\r\n theState = _createState(cfgHandler);\r\n // Setup tracking for all defined default keys\r\n _makeDynamicObject(theState, newTarget, \"config\", \"Creating\");\r\n return cfgHandler;\r\n}\r\n/**\r\n * Log an invalid access message to the console\r\n * @param message\r\n */\r\nfunction _logInvalidAccess(logger, message) {\r\n if (logger) {\r\n logger[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](2 /* eLoggingSeverity.WARNING */, 108 /* _eInternalMessageId.DynamicConfigException */, message);\r\n }\r\n else {\r\n // We don't have a logger so just throw an exception\r\n throwInvalidAccess(message);\r\n }\r\n}\r\n/**\r\n * Create or return a dynamic version of the passed config, if it is not already dynamic\r\n * @param config - The config to be converted into a dynamic config\r\n * @param defaultConfig - The default values to apply on the config if the properties don't already exist\r\n * @param inPlace - Should the config be converted in-place into a dynamic config or a new instance returned, defaults to true\r\n * @returns The dynamic config handler for the config (whether new or existing)\r\n */\r\nexport function createDynamicConfig(config, defaultConfig, logger, inPlace) {\r\n var dynamicHandler = _createDynamicHandler(logger, config || {}, inPlace);\r\n if (defaultConfig) {\r\n dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](dynamicHandler.cfg, defaultConfig);\r\n }\r\n return dynamicHandler;\r\n}\r\n/**\r\n * Watch and track changes for accesses to the current config, the provided config MUST already be\r\n * a dynamic config or a child accessed via the dynamic config\r\n * @param config\r\n * @param configHandler\r\n * @param logger - The logger instance to use if there is no existing handler\r\n * @returns A watcher handler instance that can be used to remove itself when being unloaded\r\n * @throws TypeError if the provided config is not a dynamic config instance\r\n */\r\nexport function onConfigChange(config, configHandler, logger) {\r\n var handler = config[CFG_HANDLER_LINK] || config;\r\n if (handler.cfg && (handler.cfg === config || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n }\r\n _logInvalidAccess(logger, STR_NOT_DYNAMIC_ERROR + dumpObj(config));\r\n return createDynamicConfig(config, null, logger)[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n}\r\n//# sourceMappingURL=DynamicConfig.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrSlice, getLength } from \"@nevware21/ts-utils\";\r\nimport { _DYN_UNLOAD } from \"../__DynamicConstants\";\r\n/**\r\n * Run the unload function of the target object if it exists\r\n * @param target - The target object that contains the unload function\r\n * @param isAsync - The caller identifies whether it is expecting the operation to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @returns The result of the target function\r\n */\r\nexport function runTargetUnload(target, isAsync) {\r\n if (target && target[_DYN_UNLOAD /* @min:%2eunload */]) {\r\n return target[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n }\r\n}\r\n/**\r\n * Call the unload function on all targets handling any returned [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * / Promise before calling the next targets unload\r\n * @param targets - An array of the targets to unload\r\n * @param isAsync - The caller identifies whether it is expecting the operations to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @param done - Optional callback function to call once all of the unload functions have been called.\r\n */\r\nexport function doUnloadAll(targets, isAsync, done) {\r\n var result;\r\n if (!done) {\r\n result = createPromise(function (resolved) {\r\n done = resolved;\r\n });\r\n }\r\n if (targets && getLength(targets) > 0) {\r\n doAwaitResponse(runTargetUnload(targets[0], isAsync), function () {\r\n doUnloadAll(arrSlice(targets, 1), isAsync, done);\r\n });\r\n }\r\n else {\r\n done();\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=AsyncUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nexport var ChannelControllerPriority = 500;\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isBoolean, isFunction, isNullOrUndefined, isString } from \"@nevware21/ts-utils\";\r\nimport { STR_EMPTY } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * @param str\r\n * @param defaultValue\r\n * @returns\r\n */\r\nfunction _stringToBoolOrDefault(theValue, defaultValue, theConfig) {\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n return defaultValue;\r\n }\r\n if (isBoolean(theValue)) {\r\n return theValue;\r\n }\r\n return asString(theValue)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the field defined as an object\r\n * that should be merged\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfMerge(defaultValue) {\r\n return {\r\n mrg: true,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field set function\r\n * @param setter - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfSet(setter, defaultValue) {\r\n return {\r\n set: setter,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field validator\r\n * @param validator - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfValidate(validator, defaultValue, fallBackName) {\r\n return {\r\n fb: fallBackName,\r\n isVal: validator,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate and convert the user\r\n * provided value to a boolean from a string or boolean value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBoolean(defaultValue, fallBackName) {\r\n return {\r\n fb: fallBackName,\r\n set: _stringToBoolOrDefault,\r\n v: !!defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfFunc(defaultValue) {\r\n return {\r\n isVal: isFunction,\r\n v: defaultValue || null\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default string value to apply it not provided or it's not valid, defaults to an empty string\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfString(defaultValue) {\r\n return {\r\n isVal: isString,\r\n v: asString(defaultValue || STR_EMPTY)\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance identifying that value associated with this property\r\n * should not have it's properties converted into a dynamic config properties.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBlockPropValue(defaultValue) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = true,\r\n _a.v = defaultValue,\r\n _a;\r\n}\r\n//# sourceMappingURL=ConfigDefaultHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getInst } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar listenerFuncs = [STR_EVENTS_SENT, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_PERF_EVENT];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name][_DYN_APPLY /* @min:%2eapply */](listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n//# sourceMappingURL=DbgExtensionUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dumpObj, isFunction, isUndefined } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_DIAG_LOG, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_LOG_INTERNAL_MESSAGE, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_PUSH, _DYN_REPLACE, _DYN_THROW_INTERNAL, _DYN_UNLOAD, _DYN_WARN_TO_CONSOLE } from \"../__DynamicConstants\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\nimport { getConsole, getJSON, hasJSON } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar STR_WARN_TO_CONSOLE = \"warnToConsole\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nvar defaultValues = {\r\n loggingLevelConsole: 0,\r\n loggingLevelTelemetry: 1,\r\n maxMessageLimit: 25,\r\n enableDebug: false\r\n};\r\nvar _logFuncs = (_a = {},\r\n _a[0 /* eLoggingSeverity.DISABLED */] = null,\r\n _a[1 /* eLoggingSeverity.CRITICAL */] = \"errorToConsole\",\r\n _a[2 /* eLoggingSeverity.WARNING */] = STR_WARN_TO_CONSOLE,\r\n _a[3 /* eLoggingSeverity.DEBUG */] = \"debugToConsole\",\r\n _a);\r\nfunction _sanitizeDiagnosticText(text) {\r\n if (text) {\r\n return \"\\\"\" + text[_DYN_REPLACE /* @min:%2ereplace */](/\\\"/g, STR_EMPTY) + \"\\\"\";\r\n }\r\n return STR_EMPTY;\r\n}\r\nfunction _logToConsole(func, message) {\r\n var theConsole = getConsole();\r\n if (!!theConsole) {\r\n var logFunc = \"log\";\r\n if (theConsole[func]) {\r\n logFunc = func;\r\n }\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var _self = this;\r\n _self[_DYN_MESSAGE_ID /* @min:%2emessageId */] = msgId;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n var strProps = STR_EMPTY;\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] += diagnosticText;\r\n }\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n return (core || {})[_DYN_LOGGER /* @min:%2elogger */] || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n this.identifier = \"DiagnosticLogger\";\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n var _messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n var _messageLogged = {};\r\n var _loggingLevelConsole;\r\n var _loggingLevelTelemetry;\r\n var _maxInternalMessageLimit;\r\n var _enableDebug;\r\n var _unloadHandler;\r\n dynamicProto(DiagnosticLogger, this, function (_self) {\r\n _unloadHandler = _setDefaultsFromConfig(config || {});\r\n _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\n _self[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */] = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (_enableDebug) {\r\n throw dumpObj(message);\r\n }\r\n else {\r\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n var logFunc = _logFuncs[severity] || STR_WARN_TO_CONSOLE;\r\n if (!isUndefined(message[_DYN_MESSAGE /* @min:%2emessage */])) {\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n _messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n if (_loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n }\r\n _logInternalMessage(severity, message);\r\n }\r\n else {\r\n _debugExtMsg(\"throw\" + (severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"Critical\" : \"Warning\"), message);\r\n }\r\n }\r\n };\r\n _self.debugToConsole = function (message) {\r\n _logToConsole(\"debug\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */] = function (message) {\r\n _logToConsole(\"warn\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n _self.errorToConsole = function (message) {\r\n _logToConsole(\"error\", message);\r\n _debugExtMsg(\"error\", message);\r\n };\r\n _self.resetInternalMessageCount = function () {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\n _self[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */] = _logInternalMessage;\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n _unloadHandler && _unloadHandler.rm();\r\n _unloadHandler = null;\r\n };\r\n function _logInternalMessage(severity, message) {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _loggingLevelTelemetry) {\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](message);\r\n _messageCount++;\r\n _debugExtMsg((severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"error\" : \"warn\"), message);\r\n }\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _maxInternalMessageLimit) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(23 /* _eInternalMessageId.MessageLimitPerPVExceeded */, throttleLimitMessage, false);\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](throttleMessage);\r\n if (severity === 1 /* eLoggingSeverity.CRITICAL */) {\r\n _self.errorToConsole(throttleLimitMessage);\r\n }\r\n else {\r\n _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](throttleLimitMessage);\r\n }\r\n }\r\n }\r\n }\r\n function _setDefaultsFromConfig(config) {\r\n // make sure the config is dynamic\r\n return onConfigChange(createDynamicConfig(config, defaultValues, _self).cfg, function (details) {\r\n var config = details.cfg;\r\n _loggingLevelConsole = config[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */];\r\n _loggingLevelTelemetry = config.loggingLevelTelemetry;\r\n _maxInternalMessageLimit = config.maxMessageLimit;\r\n _enableDebug = config.enableDebug;\r\n });\r\n }\r\n function _areInternalMessagesThrottled() {\r\n return _messageCount >= _maxInternalMessageLimit;\r\n }\r\n function _debugExtMsg(name, data) {\r\n var dbgExt = getDebugExt(config || {});\r\n if (dbgExt && dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */]) {\r\n dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */](name, data);\r\n }\r\n }\r\n });\r\n }\r\n// Removed Stub for DiagnosticLogger.prototype.consoleLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.throwInternal.\r\n// Removed Stub for DiagnosticLogger.prototype.debugToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.warnToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.errorToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.resetInternalMessageCount.\r\n// Removed Stub for DiagnosticLogger.prototype.logInternalMessage.\r\n// Removed Stub for DiagnosticLogger.prototype.unload.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n DiagnosticLogger.__ieDyn=1;\n\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\nfunction _getLogger(logger) {\r\n return (logger || new DiagnosticLogger());\r\n}\r\n/**\r\n * This is a helper method which will call throwInternal on the passed logger, will throw exceptions in\r\n * debug mode or attempt to log the error as a console warning. This helper is provided mostly to better\r\n * support minification as logger.throwInternal() will not compress the publish \"throwInternal\" used throughout\r\n * the code.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\nexport function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n _getLogger(logger)[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](severity, msgId, msg, properties, isUserAct);\r\n}\r\n/**\r\n * This is a helper method which will call warnToConsole on the passed logger with the provided message.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\nexport function _warnToConsole(logger, message) {\r\n _getLogger(logger)[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n}\r\n/**\r\n * Logs a message to the internal queue.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The message to log.\r\n */\r\nexport function _logInternalMessage(logger, severity, message) {\r\n _getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */](severity, message);\r\n}\r\n//# sourceMappingURL=DiagnosticLogger.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { arrForEach, arrIndexOf, dumpObj, getDocument, getLazy, getNavigator, isArray, isFunction, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, strEndsWith, strIndexOf, strLeft, strSubstring, strTrim, utcNow } from \"@nevware21/ts-utils\";\r\nimport { cfgDfMerge } from \"../Config/ConfigDefaultHelpers\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ENABLED, _DYN_LENGTH, _DYN_LOGGER, _DYN_SET_DF, _DYN_SPLIT, _DYN_UNLOAD, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getLocation, isIE } from \"./EnvUtils\";\r\nimport { getExceptionName, isNotNullOrUndefined, setValue, strContains } from \"./HelperFuncs\";\r\nimport { STR_DOMAIN, STR_EMPTY, STR_PATH, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc;\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n// // `isCookieUseDisabled` is deprecated, so explicitly casting as a key of IConfiguration to avoid typing error\r\n// // when both isCookieUseDisabled and disableCookiesUsage are used disableCookiesUsage will take precedent, which is\r\n// // why its listed first\r\n/**\r\n * Set the supported dynamic config values as undefined (or an empty object) so that\r\n * any listeners will be informed of any changes.\r\n * Explicitly NOT including the deprecated `isCookieUseDisabled` as we don't want to support\r\n * the v1 deprecated field as dynamic for updates\r\n */\r\nvar rootDefaultConfig = (_a = {\r\n cookieCfg: cfgDfMerge((_b = {},\r\n _b[STR_DOMAIN] = { fb: \"cookieDomain\", dfVal: isNotNullOrUndefined },\r\n _b.path = { fb: \"cookiePath\", dfVal: isNotNullOrUndefined },\r\n _b.enabled = UNDEFINED_VALUE,\r\n _b.ignoreCookies = UNDEFINED_VALUE,\r\n _b.blockedCookies = UNDEFINED_VALUE,\r\n _b)),\r\n cookieDomain: UNDEFINED_VALUE,\r\n cookiePath: UNDEFINED_VALUE\r\n },\r\n _a[strDisableCookiesUsage] = UNDEFINED_VALUE,\r\n _a);\r\nfunction _getDoc() {\r\n !_doc && (_doc = getLazy(function () { return getDocument(); }));\r\n}\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nfunction _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _isIgnoredCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {\r\n return arrIndexOf(cookieMgrCfg.ignoreCookies, name) !== -1;\r\n }\r\n return false;\r\n}\r\nfunction _isBlockedCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {\r\n if (arrIndexOf(cookieMgrCfg.blockedCookies, name) !== -1) {\r\n return true;\r\n }\r\n }\r\n return _isIgnoredCookie(cookieMgrCfg, name);\r\n}\r\nfunction _isCfgEnabled(rootConfig, cookieMgrConfig) {\r\n var isCfgEnabled = cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */];\r\n if (isNullOrUndefined(isCfgEnabled)) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n // This field is deprecated and dynamic updates will not be fully supported\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n // If this value is defined it takes precedent over the above\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n // Not setting the cookieMgrConfig.enabled as that will update (set) the global dynamic config\r\n // So future \"updates\" then may not be as expected\r\n isCfgEnabled = cookieEnabled;\r\n }\r\n return isCfgEnabled;\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config.cookieCfg;\r\n if (cookieCfg && cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var _a;\r\n var cookieMgrConfig;\r\n var _path;\r\n var _domain;\r\n var unloadHandler;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled;\r\n var _getCookieFn;\r\n var _setCookieFn;\r\n var _delCookieFn;\r\n // Make sure the root config is dynamic as it may be the global config\r\n rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;\r\n // Will get recalled if the referenced configuration is changed\r\n unloadHandler = onConfigChange(rootConfig, function (details) {\r\n // Make sure the root config has all of the the defaults to the root config to ensure they are dynamic\r\n details[_DYN_SET_DF /* @min:%2esetDf */](details.cfg, rootDefaultConfig);\r\n // Create and apply the defaults to the cookieCfg element\r\n cookieMgrConfig = details.ref(details.cfg, \"cookieCfg\"); // details.setDf(details.cfg.cookieCfg, defaultConfig);\r\n _path = cookieMgrConfig[STR_PATH /* @min:%2epath */] || \"/\";\r\n _domain = cookieMgrConfig[STR_DOMAIN /* @min:%2edomain */];\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false;\r\n _getCookieFn = cookieMgrConfig.getCookie || _getCookieValue;\r\n _setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _delCookieFn = cookieMgrConfig.delCookie || _setCookieValue;\r\n }, logger);\r\n var cookieMgr = (_a = {\r\n isEnabled: function () {\r\n var enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false && _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n },\r\n setEnabled: function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */] = value;\r\n },\r\n set: function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {\r\n var values = {};\r\n var theValue = strTrim(value || STR_EMPTY);\r\n var idx = strIndexOf(theValue, \";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(strLeft(value, idx));\r\n values = _extractParts(strSubstring(value, idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = utcNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", STR_EMPTY + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT /* @min:%2euserAgent */]);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, STR_PATH, path || _path, null, isUndefined);\r\n //let setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n get: function (name) {\r\n var value = STR_EMPTY;\r\n if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {\r\n value = _getCookieFn(name);\r\n }\r\n return value;\r\n },\r\n del: function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n purge: function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[STR_PATH] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n // let delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));\r\n result = true;\r\n }\r\n return result;\r\n }\r\n },\r\n _a[_DYN_UNLOAD /* @min:unload */] = function (isAsync) {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n },\r\n _a);\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n !_doc && _getDoc();\r\n try {\r\n var doc = _doc.v || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 68 /* _eInternalMessageId.CannotAccessCookie */, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue[_DYN_LENGTH /* @min:%2elength */]) {\r\n var parts = strTrim(theValue)[_DYN_SPLIT /* @min:%2esplit */](\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || STR_EMPTY);\r\n if (thePart) {\r\n var idx = strIndexOf(thePart, \"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(strLeft(thePart, idx))] = strTrim(strSubstring(thePart, idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || STR_EMPTY;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : STR_EMPTY);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = STR_EMPTY;\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n var theCookie = _doc.v[strCookie] || STR_EMPTY;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n _doc.v[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createAllPromise, createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, objDefine, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_2, _DYN_SPLICE, _DYN_UNLOAD, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar defaultValues = {\r\n perfEvtsSendAll: false\r\n};\r\nfunction _runListeners(listeners, name, isAsync, callback) {\r\n arrForEach(listeners, function (listener) {\r\n if (listener && listener[name]) {\r\n if (isAsync) {\r\n scheduleTimeout(function () { return callback(listener); }, 0);\r\n }\r\n else {\r\n try {\r\n callback(listener);\r\n }\r\n catch (e) {\r\n // Catch errors to ensure we don't block sending the requests\r\n }\r\n }\r\n }\r\n });\r\n}\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager(config) {\r\n this.listeners = [];\r\n var perfEvtsSendAll;\r\n var unloadHandler;\r\n var _listeners = [];\r\n var cfgHandler = createDynamicConfig(config, defaultValues);\r\n unloadHandler = cfgHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n perfEvtsSendAll = !!details.cfg.perfEvtsSendAll;\r\n });\r\n dynamicProto(NotificationManager, this, function (_self) {\r\n objDefine(_self, \"listeners\", {\r\n g: function () { return _listeners; }\r\n });\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _listeners[_DYN_PUSH /* @min:%2epush */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - AWTNotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n var index = arrIndexOf(_listeners, listener);\r\n while (index > -1) {\r\n _listeners[_DYN_SPLICE /* @min:%2esplice */](index, 1);\r\n index = arrIndexOf(_listeners, listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param events - The array of events that have been sent.\r\n */\r\n _self[STR_EVENTS_SENT /* @min:%2eeventsSent */] = function (events) {\r\n _runListeners(_listeners, STR_EVENTS_SENT, true, function (listener) {\r\n listener[STR_EVENTS_SENT /* @min:%2eeventsSent */](events);\r\n });\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param events - The array of events that have been discarded by the SDK.\r\n * @param reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n _self[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */] = function (events, reason) {\r\n _runListeners(_listeners, STR_EVENTS_DISCARDED, true, function (listener) {\r\n listener[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */](events, reason);\r\n });\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param sendReason - The reason why the event batch is being sent.\r\n * @param isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n _self[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */] = function (sendReason, isAsync) {\r\n _runListeners(_listeners, STR_EVENTS_SEND_REQUEST, isAsync, function (listener) {\r\n listener[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendReason, isAsync);\r\n });\r\n };\r\n _self[STR_PERF_EVENT /* @min:%2eperfEvent */] = function (perfEvent) {\r\n if (perfEvent) {\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */]()) {\r\n _runListeners(_listeners, STR_PERF_EVENT, false, function (listener) {\r\n if (perfEvent[_DYN_IS_ASYNC /* @min:%2eisAsync */]) {\r\n scheduleTimeout(function () { return listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent); }, 0);\r\n }\r\n else {\r\n listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n var _finishUnload = function () {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n _listeners = [];\r\n };\r\n var waiting;\r\n _runListeners(_listeners, \"unload\", false, function (listener) {\r\n var asyncUnload = listener[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n if (asyncUnload) {\r\n if (!waiting) {\r\n waiting = [];\r\n }\r\n waiting[_DYN_PUSH /* @min:%2epush */](asyncUnload);\r\n }\r\n });\r\n if (waiting) {\r\n return createPromise(function (resolve) {\r\n return doAwaitResponse(createAllPromise(waiting), function () {\r\n _finishUnload();\r\n resolve();\r\n });\r\n });\r\n }\r\n else {\r\n _finishUnload();\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for NotificationManager.prototype.addNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.removeNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.eventsSent.\r\n// Removed Stub for NotificationManager.prototype.eventsDiscarded.\r\n// Removed Stub for NotificationManager.prototype.eventsSendRequest.\r\n// Removed Stub for NotificationManager.prototype.perfEvent.\r\n// Removed Stub for NotificationManager.prototype.unload.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n NotificationManager.__ieDyn=1;\n\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isArray, isFunction, objDefine, utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_COMPLETE, _DYN_GET_CTX, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_CTX, _DYN_TIME } from \"../__DynamicConstants\";\r\nimport { STR_GET_PERF_MGR, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar strParentContextKey = \"ParentContextKey\";\r\nvar strChildrenContextKey = \"ChildrenContextKey\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n function PerfEvent(name, payloadDetails, isAsync) {\r\n var _self = this;\r\n _self.start = utcNow();\r\n _self[_DYN_NAME /* @min:%2ename */] = name;\r\n _self[_DYN_IS_ASYNC /* @min:%2eisAsync */] = isAsync;\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return false; };\r\n if (isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n var theDetails_1;\r\n objDefine(_self, \"payload\", {\r\n g: function () {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails_1 && isFunction(payloadDetails)) {\r\n theDetails_1 = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n return theDetails_1;\r\n }\r\n });\r\n }\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {\r\n return _self[key];\r\n }\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n return null;\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey]) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return true; };\r\n }\r\n _self[key] = value;\r\n }\r\n else if (key === PerfEvent[strChildrenContextKey]) {\r\n _self[key] = value;\r\n }\r\n else {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () {\r\n var childTime = 0;\r\n var childEvts = _self[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (isArray(childEvts)) {\r\n for (var lp = 0; lp < childEvts[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var childEvt = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt[_DYN_TIME /* @min:%2etime */];\r\n }\r\n }\r\n }\r\n _self[_DYN_TIME /* @min:%2etime */] = utcNow() - _self.start;\r\n _self.exTime = _self[_DYN_TIME /* @min:%2etime */] - childTime;\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () { };\r\n };\r\n }\r\n PerfEvent.ParentContextKey = \"parent\";\r\n PerfEvent.ChildrenContextKey = \"childEvts\";\r\n return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n function PerfManager(manager) {\r\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\r\n this.ctx = {};\r\n dynamicProto(PerfManager, this, function (_self) {\r\n _self.create = function (src, payloadDetails, isAsync) {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n _self.fire = function (perfEvent) {\r\n if (perfEvent) {\r\n perfEvent[_DYN_COMPLETE /* @min:%2ecomplete */]();\r\n if (manager && isFunction(manager[STR_PERF_EVENT /* @min:%2eperfEvent */])) {\r\n manager[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n }\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n// Removed Stub for PerfManager.prototype.create.\r\n// Removed Stub for PerfManager.prototype.fire.\r\n// Removed Stub for PerfManager.prototype.setCtx.\r\n// Removed Stub for PerfManager.prototype.getCtx.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PerfManager.__ieDyn=1;\n\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (perfMgr[STR_GET_PERF_MGR]) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[STR_GET_PERF_MGR]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr[_DYN_GET_CTX /* @min:%2egetCtx */](doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strParentContextKey], currentActive);\r\n if (currentActive[_DYN_GET_CTX /* @min:%2egetCtx */] && currentActive[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n var children = currentActive[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (!children) {\r\n children = [];\r\n currentActive[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strChildrenContextKey], children);\r\n }\r\n children[_DYN_PUSH /* @min:%2epush */](perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n//# sourceMappingURL=PerfManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { random32 } from \"./RandomHelper\";\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\nexport function newGuid() {\r\n var uuid = generateW3CId();\r\n return strSubstring(uuid, 0, 8) + \"-\" + strSubstring(uuid, 8, 12) + \"-\" + strSubstring(uuid, 12, 16) + \"-\" + strSubstring(uuid, 16, 20) + \"-\" + strSubstring(uuid, 20);\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value[_DYN_LENGTH /* @min:%2elength */];\r\n var start = len - search[_DYN_LENGTH /* @min:%2elength */];\r\n return strSubstring(value, start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = STR_EMPTY, tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + \"4\" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { isArray, isString, strLeft, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_SPAN_ID, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_VERSION } from \"../__DynamicConstants\";\r\nimport { generateW3CId } from \"./CoreUtils\";\r\nimport { findMetaTag, findNamedServerTiming } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// using {0,16} for leading and trailing whitespace just to constrain the possible runtime of a random string\r\nvar TRACE_PARENT_REGEX = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})(-[^\\s]{1,64})?$/i;\r\nvar DEFAULT_VERSION = \"00\";\r\nvar INVALID_VERSION = \"ff\";\r\nvar INVALID_TRACE_ID = \"00000000000000000000000000000000\";\r\nvar INVALID_SPAN_ID = \"0000000000000000\";\r\nvar SAMPLED_FLAG = 0x01;\r\nfunction _isValid(value, len, invalidValue) {\r\n if (value && value[_DYN_LENGTH /* @min:%2elength */] === len && value !== invalidValue) {\r\n return !!value.match(/^[\\da-f]*$/i);\r\n }\r\n return false;\r\n}\r\nfunction _formatValue(value, len, defValue) {\r\n if (_isValid(value, len)) {\r\n return value;\r\n }\r\n return defValue;\r\n}\r\nfunction _formatFlags(value) {\r\n if (isNaN(value) || value < 0 || value > 255) {\r\n value = 0x01;\r\n }\r\n var result = value.toString(16);\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < 2) {\r\n result = \"0\" + result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Create a new ITraceParent instance using the provided values.\r\n * @param traceId - The traceId to use, when invalid a new random W3C id will be generated.\r\n * @param spanId - The parent/span id to use, a new random value will be generated if it is invalid.\r\n * @param flags - The traceFlags to use, defaults to zero (0) if not supplied or invalid\r\n * @param version - The version to used, defaults to version \"01\" if not supplied or invalid.\r\n * @returns\r\n */\r\nexport function createTraceParent(traceId, spanId, flags, version) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = isValidTraceId(traceId) ? traceId : generateW3CId(),\r\n _a[_DYN_SPAN_ID /* @min:spanId */] = isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),\r\n _a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,\r\n _a;\r\n}\r\n/**\r\n * Attempt to parse the provided string as a W3C TraceParent header value (https://www.w3.org/TR/trace-context/#traceparent-header)\r\n *\r\n * @param value\r\n * @returns\r\n */\r\nexport function parseTraceParent(value) {\r\n var _a;\r\n if (!value) {\r\n // Don't pass a null/undefined or empty string\r\n return null;\r\n }\r\n if (isArray(value)) {\r\n // The value may have been encoded on the page into an array so handle this automatically\r\n value = value[0] || \"\";\r\n }\r\n if (!value || !isString(value) || value[_DYN_LENGTH /* @min:%2elength */] > 8192) {\r\n // limit potential processing based on total length\r\n return null;\r\n }\r\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n if (!match || // No match\r\n match[1] === INVALID_VERSION || // version ff is forbidden\r\n match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n return null;\r\n }\r\n return _a = {\r\n version: (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n traceId: (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n spanId: (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()\r\n },\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = parseInt(match[4], 16),\r\n _a;\r\n}\r\n/**\r\n * Is the provided W3c Trace Id a valid string representation, it must be a 32-character string\r\n * of lowercase hexadecimal characters for example, 4bf92f3577b34da6a3ce929d0e0e4736.\r\n * If all characters as zero (00000000000000000000000000000000) it will be considered an invalid value.\r\n * @param value - The W3c trace Id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidTraceId(value) {\r\n return _isValid(value, 32, INVALID_TRACE_ID);\r\n}\r\n/**\r\n * Is the provided W3c span id (aka. parent id) a valid string representation, it must be a 16-character\r\n * string of lowercase hexadecimal characters, for example, 00f067aa0ba902b7.\r\n * If all characters are zero (0000000000000000) this is considered an invalid value.\r\n * @param value - The W3c span id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidSpanId(value) {\r\n return _isValid(value, 16, INVALID_SPAN_ID);\r\n}\r\n/**\r\n * Validates that the provided ITraceParent instance conforms to the currently supported specifications\r\n * @param value\r\n * @returns\r\n */\r\nexport function isValidTraceParent(value) {\r\n if (!value ||\r\n !_isValid(value[_DYN_VERSION /* @min:%2eversion */], 2, INVALID_VERSION) ||\r\n !_isValid(value[_DYN_TRACE_ID /* @min:%2etraceId */], 32, INVALID_TRACE_ID) ||\r\n !_isValid(value[_DYN_SPAN_ID /* @min:%2espanId */], 16, INVALID_SPAN_ID) ||\r\n !_isValid(_formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]), 2)) {\r\n // Each known field must contain a valid value\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Is the parsed traceParent indicating that the trace is currently sampled.\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function isSampledFlag(value) {\r\n if (isValidTraceParent(value)) {\r\n return (value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] & SAMPLED_FLAG) === SAMPLED_FLAG;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Format the ITraceParent value as a string using the supported and know version formats.\r\n * So even if the passed traceParent is a later version the string value returned from this\r\n * function will convert it to only the known version formats.\r\n * This currently only supports version \"00\" and invalid \"ff\"\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function formatTraceParent(value) {\r\n if (value) {\r\n // Special Note: This only supports formatting as version 00, future versions should encode any known supported version\r\n // So parsing a future version will populate the correct version value but reformatting will reduce it to version 00.\r\n var flags = _formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]);\r\n if (!_isValid(flags, 2)) {\r\n flags = \"01\";\r\n }\r\n var version = value[_DYN_VERSION /* @min:%2eversion */] || DEFAULT_VERSION;\r\n if (version !== \"00\" && version !== \"ff\") {\r\n // Reduce version to \"00\"\r\n version = DEFAULT_VERSION;\r\n }\r\n // Format as version 00\r\n return \"\".concat(version.toLowerCase(), \"-\").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID).toLowerCase(), \"-\").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID).toLowerCase(), \"-\").concat(flags.toLowerCase());\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Helper function to fetch the passed traceparent from the page, looking for it as a meta-tag or a Server-Timing header.\r\n * @returns\r\n */\r\nexport function findW3cTraceParent() {\r\n var name = \"traceparent\";\r\n var traceParent = parseTraceParent(findMetaTag(name));\r\n if (!traceParent) {\r\n traceParent = parseTraceParent(findNamedServerTiming(name));\r\n }\r\n return traceParent;\r\n}\r\n//# sourceMappingURL=W3cTraceParent.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, isFunction } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_SPAN_ID, _DYN_TEARDOWN, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { createElmNodeData } from \"./DataCacheHelper\";\r\nimport { STR_CORE, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { isValidSpanId, isValidTraceId } from \"./W3cTraceParent\";\r\nvar pluginStateData = createElmNodeData(\"plugin\");\r\nexport function _getPluginState(plugin) {\r\n return pluginStateData.get(plugin, \"state\", {}, true);\r\n}\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config - The current config for the instance\r\n * @param core - THe current core instance\r\n * @param extensions - The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n // Set the next plugin and identified the uninitialized plugins\r\n var initPlugins = [];\r\n var lastPlugin = null;\r\n var proxy = processContext[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n var pluginState;\r\n while (proxy) {\r\n var thePlugin = proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (thePlugin) {\r\n if (lastPlugin && lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] && thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](thePlugin);\r\n }\r\n pluginState = _getPluginState(thePlugin);\r\n var isInitialized = !!pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */];\r\n if (thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]) {\r\n isInitialized = thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]();\r\n }\r\n if (!isInitialized) {\r\n initPlugins[_DYN_PUSH /* @min:%2epush */](thePlugin);\r\n }\r\n lastPlugin = thePlugin;\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n }\r\n // Now initialize the plugins\r\n arrForEach(initPlugins, function (thePlugin) {\r\n var core = processContext[STR_CORE /* @min:%2ecore */]();\r\n thePlugin[_DYN_INITIALIZE /* @min:%2einitialize */](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n pluginState = _getPluginState(thePlugin);\r\n // Only add the core to the state if the plugin didn't set it (doesn't extend from BaseTelemetryPlugin)\r\n if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {\r\n pluginState[STR_CORE] = core;\r\n }\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = true;\r\n delete pluginState[_DYN_TEARDOWN /* @min:%2eteardown */];\r\n });\r\n}\r\nexport function sortPlugins(plugins) {\r\n // Sort by priority\r\n return plugins.sort(function (extA, extB) {\r\n var result = 0;\r\n if (extB) {\r\n var bHasProcess = extB[STR_PROCESS_TELEMETRY];\r\n if (extA[STR_PROCESS_TELEMETRY]) {\r\n result = bHasProcess ? extA[STR_PRIORITY] - extB[STR_PRIORITY] : 1;\r\n }\r\n else if (bHasProcess) {\r\n result = -1;\r\n }\r\n }\r\n else {\r\n result = extA ? 1 : -1;\r\n }\r\n return result;\r\n });\r\n // sort complete\r\n}\r\n/**\r\n * Teardown / Unload helper to perform teardown/unloading operations for the provided components synchronously or asynchronously, this will call any\r\n * _doTeardown() or _doUnload() functions on the provided components to allow them to finish removal.\r\n * @param components - The components you want to unload\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @param asyncCallback - An optional callback that the plugin must call if it returns true to inform the caller that it has completed any async unload/teardown operations.\r\n * @returns boolean - true if the plugin has or will call asyncCallback, this allows the plugin to perform any asynchronous operations.\r\n */\r\nexport function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {\r\n var idx = 0;\r\n function _doUnload() {\r\n while (idx < components[_DYN_LENGTH /* @min:%2elength */]) {\r\n var component = components[idx++];\r\n if (component) {\r\n var func = component._doUnload || component[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */];\r\n if (isFunction(func)) {\r\n if (func.call(component, unloadCtx, unloadState, _doUnload) === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return _doUnload();\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext which optionally also \"sets\" the value on a parent\r\n * @param parentCtx - An optional parent distributed trace instance\r\n * @returns A new IDistributedTraceContext instance that uses an internal temporary object\r\n */\r\nexport function createDistributedTraceContext(parentCtx) {\r\n var trace = {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace[_DYN_TRACE_ID /* @min:%2etraceId */];\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace[_DYN_TRACE_ID /* @min:%2etraceId */] = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace[_DYN_SPAN_ID /* @min:%2espanId */];\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace[_DYN_SPAN_ID /* @min:%2espanId */] = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=TelemetryHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, dumpObj, isArray, isFunction, isNullOrUndefined, isUndefined, objForEachKey, objFreeze, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _applyDefaultValue } from \"../Config/ConfigDefaults\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_IDENTIFIER, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_DF, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UNLOAD, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nimport { _throwInternal, safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { proxyFunctions } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_DISABLED, STR_EMPTY, STR_EXTENSION_CONFIG, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _getPluginState } from \"./TelemetryHelpers\";\r\nvar strTelemetryPluginChain = \"TelemetryPluginChain\";\r\nvar strHasRunFlags = \"_hasRun\";\r\nvar strGetTelCtx = \"_getTelCtx\";\r\nvar _chainId = 0;\r\nfunction _getNextProxyStart(proxy, core, startAt) {\r\n while (proxy) {\r\n if (proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]() === startAt) {\r\n return proxy;\r\n }\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n // This wasn't found in the existing chain so create an isolated one with just this plugin\r\n return createTelemetryProxyChain([startAt], core.config || {}, core);\r\n}\r\n/**\r\n * @ignore\r\n * @param telemetryChain\r\n * @param dynamicHandler\r\n * @param core\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n * @returns\r\n */\r\nfunction _createInternalContext(telemetryChain, dynamicHandler, core, startAt) {\r\n // We have a special case where we want to start execution from this specific plugin\r\n // or we simply reuse the existing telemetry plugin chain (normal execution case)\r\n var _nextProxy = null; // By Default set as no next plugin\r\n var _onComplete = [];\r\n if (!dynamicHandler) {\r\n dynamicHandler = createDynamicConfig({}, null, core[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n if (startAt !== null) {\r\n // There is no next element (null) vs not defined (undefined) so use the full chain\r\n _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;\r\n }\r\n var context = {\r\n _next: _moveNext,\r\n ctx: {\r\n core: function () {\r\n return core;\r\n },\r\n diagLog: function () {\r\n return safeGetLogger(core, dynamicHandler.cfg);\r\n },\r\n getCfg: function () {\r\n return dynamicHandler.cfg;\r\n },\r\n getExtCfg: _resolveExtCfg,\r\n getConfig: _getConfig,\r\n hasNext: function () {\r\n return !!_nextProxy;\r\n },\r\n getNext: function () {\r\n return _nextProxy;\r\n },\r\n setNext: function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n },\r\n iterate: _iterateChain,\r\n onComplete: _addOnComplete\r\n }\r\n };\r\n function _addOnComplete(onComplete, that) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n if (onComplete) {\r\n _onComplete[_DYN_PUSH /* @min:%2epush */]({\r\n func: onComplete,\r\n self: !isUndefined(that) ? that : context.ctx,\r\n args: args\r\n });\r\n }\r\n }\r\n function _moveNext() {\r\n var nextProxy = _nextProxy;\r\n // Automatically move to the next plugin\r\n _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT /* @min:%2egetNext */]() : null;\r\n if (!nextProxy) {\r\n var onComplete = _onComplete;\r\n if (onComplete && onComplete[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(onComplete, function (completeDetails) {\r\n try {\r\n completeDetails.func.call(completeDetails.self, completeDetails.args);\r\n }\r\n catch (e) {\r\n _throwInternal(core[_DYN_LOGGER /* @min:%2elogger */], 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected Exception during onComplete - \" + dumpObj(e));\r\n }\r\n });\r\n _onComplete = [];\r\n }\r\n }\r\n return nextProxy;\r\n }\r\n function _getExtCfg(identifier, createIfMissing) {\r\n var idCfg = null;\r\n var cfg = dynamicHandler.cfg;\r\n if (cfg && identifier) {\r\n var extCfg = cfg[STR_EXTENSION_CONFIG /* @min:%2eextensionConfig */];\r\n if (!extCfg && createIfMissing) {\r\n extCfg = {};\r\n }\r\n // Always set the value so that the property always exists\r\n cfg[STR_EXTENSION_CONFIG] = extCfg; // Note: it is valid for the \"value\" to be undefined\r\n // Calling `ref()` has a side effect of causing the referenced property to become dynamic (if not already)\r\n extCfg = dynamicHandler.ref(cfg, STR_EXTENSION_CONFIG);\r\n if (extCfg) {\r\n idCfg = extCfg[identifier];\r\n if (!idCfg && createIfMissing) {\r\n idCfg = {};\r\n }\r\n // Always set the value so that the property always exists\r\n extCfg[identifier] = idCfg; // Note: it is valid for the \"value\" to be undefined\r\n // Calling `ref()` has a side effect of causing the referenced property to become dynamic (if not already)\r\n idCfg = dynamicHandler.ref(extCfg, identifier);\r\n }\r\n }\r\n return idCfg;\r\n }\r\n function _resolveExtCfg(identifier, defaultValues) {\r\n var newConfig = _getExtCfg(identifier, true);\r\n if (defaultValues) {\r\n // Enumerate over the defaultValues and if not already populated attempt to\r\n // find a value from the root config or use the default value\r\n objForEachKey(defaultValues, function (field, defaultValue) {\r\n // for each unspecified field, set the default value\r\n if (isNullOrUndefined(newConfig[field])) {\r\n var cfgValue = dynamicHandler.cfg[field];\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n newConfig[field] = cfgValue;\r\n }\r\n }\r\n _applyDefaultValue(dynamicHandler, newConfig, field, defaultValue);\r\n });\r\n }\r\n return dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](newConfig, defaultValues);\r\n }\r\n function _getConfig(identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _getExtCfg(identifier, false);\r\n var rootConfig = dynamicHandler.cfg;\r\n if (extConfig && (extConfig[field] || !isNullOrUndefined(extConfig[field]))) {\r\n theValue = extConfig[field];\r\n }\r\n else if (rootConfig[field] || !isNullOrUndefined(rootConfig[field])) {\r\n theValue = rootConfig[field];\r\n }\r\n return (theValue || !isNullOrUndefined(theValue)) ? theValue : defaultValue;\r\n }\r\n function _iterateChain(cb) {\r\n // Keep processing until we reach the end of the chain\r\n var nextPlugin;\r\n while (!!(nextPlugin = context._next())) {\r\n var plugin = nextPlugin[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (plugin) {\r\n // callback with the current on\r\n cb(plugin);\r\n }\r\n }\r\n }\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryContext(telemetryChain, cfg, core, startAt) {\r\n var config = createDynamicConfig(cfg);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(env) {\r\n var nextPlugin = internalContext._next();\r\n if (nextPlugin) {\r\n // Run the next plugin which will call \"processNext()\"\r\n nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, context);\r\n }\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), config.cfg, core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for handling the unloading of the chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {\r\n var config = createDynamicConfig(core.config);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(unloadState) {\r\n var nextPlugin = internalContext._next();\r\n nextPlugin && nextPlugin[_DYN_UNLOAD /* @min:%2eunload */](context, unloadState);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for updating the configuration\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {\r\n var config = createDynamicConfig(core.config);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(updateState) {\r\n return context.iterate(function (plugin) {\r\n if (isFunction(plugin[_DYN_UPDATE /* @min:%2eupdate */])) {\r\n plugin[_DYN_UPDATE /* @min:%2eupdate */](context, updateState);\r\n }\r\n });\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates an execution chain from the array of plugins\r\n * @param plugins - The array of plugins that will be executed in this order\r\n * @param defItemCtx - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n */\r\nexport function createTelemetryProxyChain(plugins, config, core, startAt) {\r\n var firstProxy = null;\r\n var add = startAt ? false : true;\r\n if (isArray(plugins) && plugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy_1 = null;\r\n arrForEach(plugins, function (thePlugin) {\r\n if (!add && startAt === thePlugin) {\r\n add = true;\r\n }\r\n if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Only add plugins that are processors\r\n var newProxy = createTelemetryPluginProxy(thePlugin, config, core);\r\n if (!firstProxy) {\r\n firstProxy = newProxy;\r\n }\r\n if (lastProxy_1) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy_1._setNext(newProxy);\r\n }\r\n lastProxy_1 = newProxy;\r\n }\r\n });\r\n }\r\n if (startAt && !firstProxy) {\r\n // Special case where the \"startAt\" was not in the original list of plugins\r\n return createTelemetryProxyChain([startAt], config, core);\r\n }\r\n return firstProxy;\r\n}\r\n/**\r\n * Create the processing telemetry proxy instance, the proxy is used to abstract the current plugin to allow monitoring and\r\n * execution plugins while passing around the dynamic execution state (IProcessTelemetryContext), the proxy instance no longer\r\n * contains any execution state and can be reused between requests (this was not the case for 2.7.2 and earlier with the\r\n * TelemetryPluginChain class).\r\n * @param plugin - The plugin instance to proxy\r\n * @param config - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n * @returns\r\n */\r\nexport function createTelemetryPluginProxy(plugin, config, core) {\r\n var nextProxy = null;\r\n var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]);\r\n var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]);\r\n var chainId;\r\n if (plugin) {\r\n chainId = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"-\" + plugin[STR_PRIORITY /* @min:%2epriority */] + \"-\" + _chainId++;\r\n }\r\n else {\r\n chainId = \"Unknown-0-\" + _chainId++;\r\n }\r\n var proxyChain = {\r\n getPlugin: function () {\r\n return plugin;\r\n },\r\n getNext: function () {\r\n return nextProxy;\r\n },\r\n processTelemetry: _processTelemetry,\r\n unload: _unloadPlugin,\r\n update: _updatePlugin,\r\n _id: chainId,\r\n _setNext: function (nextPlugin) {\r\n nextProxy = nextPlugin;\r\n }\r\n };\r\n function _getTelCtx() {\r\n var itemCtx;\r\n // Looks like a plugin didn't pass the (optional) context, so create a new one\r\n if (plugin && isFunction(plugin[strGetTelCtx])) {\r\n // This plugin extends from the BaseTelemetryPlugin so lets use it\r\n itemCtx = plugin[strGetTelCtx]();\r\n }\r\n if (!itemCtx) {\r\n // Create a temporary one\r\n itemCtx = createProcessTelemetryContext(proxyChain, config, core);\r\n }\r\n return itemCtx;\r\n }\r\n function _processChain(itemCtx, processPluginFn, name, details, isAsync) {\r\n var hasRun = false;\r\n var identifier = plugin ? plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] : strTelemetryPluginChain;\r\n var hasRunContext = itemCtx[strHasRunFlags];\r\n if (!hasRunContext) {\r\n // Assign and populate\r\n hasRunContext = itemCtx[strHasRunFlags] = {};\r\n }\r\n // Ensure that we keep the context in sync\r\n itemCtx.setNext(nextProxy);\r\n if (plugin) {\r\n doPerf(itemCtx[STR_CORE /* @min:%2ecore */](), function () { return identifier + \":\" + name; }, function () {\r\n // Mark this component as having run\r\n hasRunContext[chainId] = true;\r\n try {\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n var nextId = nextProxy ? nextProxy._id : STR_EMPTY;\r\n if (nextId) {\r\n hasRunContext[nextId] = false;\r\n }\r\n hasRun = processPluginFn(itemCtx);\r\n }\r\n catch (error) {\r\n var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;\r\n if (hasNextRun) {\r\n // The next plugin after us has already run so set this one as complete\r\n hasRun = true;\r\n }\r\n if (!nextProxy || !hasNextRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 73 /* _eInternalMessageId.PluginException */, \"Plugin [\" + identifier + \"] failed during \" + name + \" - \" + dumpObj(error) + \", run flags: \" + dumpObj(hasRunContext));\r\n }\r\n }\r\n }, details, isAsync);\r\n }\r\n return hasRun;\r\n }\r\n function _processTelemetry(env, itemCtx) {\r\n itemCtx = itemCtx || _getTelCtx();\r\n function _callProcessTelemetry(itemCtx) {\r\n if (!plugin || !hasProcessTelemetry) {\r\n return false;\r\n }\r\n var pluginState = _getPluginState(plugin);\r\n if (pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] || pluginState[STR_DISABLED]) {\r\n return false;\r\n }\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n if (hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](nextProxy);\r\n }\r\n plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, itemCtx);\r\n // Process Telemetry is expected to call itemCtx.processNext() or nextPlugin.processTelemetry()\r\n return true;\r\n }\r\n if (!_processChain(itemCtx, _callProcessTelemetry, \"processTelemetry\", function () { return ({ item: env }); }, !(env.sync))) {\r\n // The underlying plugin is either not defined, not enabled or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n }\r\n function _unloadPlugin(unloadCtx, unloadState) {\r\n function _callTeardown() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only teardown the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n // Handle plugins that don't extend from the BaseTelemetryPlugin\r\n pluginState[STR_CORE /* @min:%2ecore */] = null;\r\n pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] = true;\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = false;\r\n if (plugin[_DYN_TEARDOWN /* @min:%2eteardown */] && plugin[_DYN_TEARDOWN /* @min:%2eteardown */](unloadCtx, unloadState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(unloadCtx, _callTeardown, \"unload\", function () { }, unloadState[_DYN_IS_ASYNC /* @min:%2eisAsync */])) {\r\n // Only called if we hasRun was not true\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n }\r\n function _updatePlugin(updateCtx, updateState) {\r\n function _callUpdate() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only update the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n if (plugin[_DYN_UPDATE /* @min:%2eupdate */] && plugin[_DYN_UPDATE /* @min:%2eupdate */](updateCtx, updateState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(updateCtx, _callUpdate, \"update\", function () { }, false)) {\r\n // Only called if we hasRun was not true\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n return objFreeze(proxyChain);\r\n}\r\n/**\r\n * This class will be removed!\r\n * @deprecated use createProcessTelemetryContext() instead\r\n */\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n function ProcessTelemetryContext(pluginChain, config, core, startAt) {\r\n var _self = this;\r\n var context = createProcessTelemetryContext(pluginChain, config, core, startAt);\r\n // Proxy all functions of the context to this object\r\n proxyFunctions(_self, context, objKeys(context));\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DIAG_LOG, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nexport function createUnloadHandlerContainer() {\r\n var handlers = [];\r\n function _addHandler(handler) {\r\n if (handler) {\r\n handlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n function _runHandlers(unloadCtx, unloadState) {\r\n arrForEach(handlers, function (handler) {\r\n try {\r\n handler(unloadCtx, unloadState);\r\n }\r\n catch (e) {\r\n _throwInternal(unloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected error calling unload handler - \" + dumpObj(e));\r\n }\r\n });\r\n handlers = [];\r\n }\r\n return {\r\n add: _addHandler,\r\n run: _runHandlers\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHandlerContainer.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\n/**\r\n * Create a IUnloadHookContainer which can be used to remember unload hook functions to be executed during the component unloading\r\n * process.\r\n * @returns A new IUnloadHookContainer instance\r\n */\r\nexport function createUnloadHookContainer() {\r\n var _hooks = [];\r\n function _doUnload(logger) {\r\n var oldHooks = _hooks;\r\n _hooks = [];\r\n // Remove all registered unload hooks\r\n arrForEach(oldHooks, function (fn) {\r\n // allow either rm or remove callback function\r\n try {\r\n (fn.rm || fn.remove).call(fn);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unloading:\" + dumpObj(e));\r\n }\r\n });\r\n }\r\n function _addHook(hooks) {\r\n if (hooks) {\r\n arrAppend(_hooks, hooks);\r\n }\r\n }\r\n return {\r\n run: _doUnload,\r\n add: _addHook\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHookContainer.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isFunction, objDefine } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PROCESS_TEL_CONT0, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_PROCESS_NEXT, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { isNotNullOrUndefined, proxyFunctionAs } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_EXTENSION_CONFIG, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext } from \"./ProcessTelemetryContext\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strGetPlugin = \"getPlugin\";\r\nvar defaultValues = (_a = {},\r\n _a[STR_EXTENSION_CONFIG] = { isVal: isNotNullOrUndefined, v: {} },\r\n _a);\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n function BaseTelemetryPlugin() {\r\n var _self = this; // Setting _self here as it's used outside of the dynamicProto as well\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _isinitialized;\r\n var _rootCtx; // Used as the root context, holding the current config and initialized core\r\n var _nextPlugin; // Used for backward compatibility where plugins don't call the main pipeline\r\n var _unloadHandlerContainer;\r\n var _hookContainer;\r\n _initDefaults();\r\n dynamicProto(BaseTelemetryPlugin, _self, function (_self) {\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n _setDefaults(config, core, pluginChain);\r\n _isinitialized = true;\r\n };\r\n _self[_DYN_TEARDOWN /* @min:%2eteardown */] = function (unloadCtx, unloadState) {\r\n var _a;\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (unloadCtx && core !== unloadCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing as either the plugin is not initialized or was not initialized by the current core\r\n return;\r\n }\r\n var result;\r\n var unloadDone = false;\r\n var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUnloadState = unloadState || (_a = {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = false,\r\n _a);\r\n function _unloadCallback() {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _unloadHandlerContainer.run(theUnloadCtx, unloadState);\r\n _hookContainer.run(theUnloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]());\r\n if (result === true) {\r\n theUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n }\r\n _initDefaults();\r\n }\r\n }\r\n if (!_self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] || _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {\r\n _unloadCallback();\r\n }\r\n else {\r\n // Tell the caller that we will be calling processNext()\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (updateCtx, updateState) {\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (updateCtx && core !== updateCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing\r\n return;\r\n }\r\n var result;\r\n var updateDone = false;\r\n var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUpdateState = updateState || {\r\n reason: 0 /* TelemetryUpdateReason.Unknown */\r\n };\r\n function _updateCallback() {\r\n if (!updateDone) {\r\n updateDone = true;\r\n _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n }\r\n }\r\n if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {\r\n _updateCallback();\r\n }\r\n else {\r\n result = true;\r\n }\r\n return result;\r\n };\r\n proxyFunctionAs(_self, \"_addUnloadCb\", function () { return _unloadHandlerContainer; }, \"add\");\r\n proxyFunctionAs(_self, \"_addHook\", function () { return _hookContainer; }, \"add\");\r\n objDefine(_self, \"_unloadHooks\", { g: function () { return _hookContainer; } });\r\n });\r\n // These are added after the dynamicProto so that are not moved to the prototype\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */] = function (itemCtx) {\r\n return _getTelCtx(itemCtx)[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () {\r\n return _isinitialized;\r\n };\r\n _self.setInitialized = function (isInitialized) {\r\n _isinitialized = isInitialized;\r\n };\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n _self[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] = function (next) {\r\n _nextPlugin = next;\r\n };\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = function (env, itemCtx) {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Looks like backward compatibility or out of band processing. And as it looks\r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, null);\r\n }\r\n };\r\n _self._getTelCtx = _getTelCtx;\r\n function _getTelCtx(currentCtx) {\r\n if (currentCtx === void 0) { currentCtx = null; }\r\n var itemCtx = currentCtx;\r\n if (!itemCtx) {\r\n var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE /* @min:%2ecore */]);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin[strGetPlugin]);\r\n }\r\n else {\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin);\r\n }\r\n }\r\n return itemCtx;\r\n }\r\n function _setDefaults(config, core, pluginChain) {\r\n // Make sure the extensionConfig exists and the config is dynamic\r\n createDynamicConfig(config, defaultValues, safeGetLogger(core));\r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 /* @min:%2egetProcessTelContext */]()[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self[STR_CORE /* @min:%2ecore */] = core;\r\n _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n }\r\n function _initDefaults() {\r\n _isinitialized = false;\r\n _self[STR_CORE /* @min:%2ecore */] = null;\r\n _rootCtx = null;\r\n _nextPlugin = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _unloadHandlerContainer = createUnloadHandlerContainer();\r\n }\r\n }\r\n// Removed Stub for BaseTelemetryPlugin.prototype.initialize.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.teardown.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.update.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addUnloadCb.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addHook.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n BaseTelemetryPlugin.__ieDyn=1;\n\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// \r\n// \r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_DIAG_LOG, _DYN_LENGTH, _DYN_PROCESS_NEXT, _DYN_SPLICE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getExceptionName } from \"./HelperFuncs\";\r\nimport { STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nfunction _addInitializer(_initializers, id, telemetryInitializer) {\r\n var theInitializer = {\r\n id: id,\r\n fn: telemetryInitializer\r\n };\r\n arrAppend(_initializers, theInitializer);\r\n var handler = {\r\n remove: function () {\r\n arrForEach(_initializers, function (initializer, idx) {\r\n if (initializer.id === theInitializer.id) {\r\n _initializers[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n return handler;\r\n}\r\nfunction _runInitializers(_initializers, item, logger) {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _initializers[_DYN_LENGTH /* @min:%2elength */];\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _initializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.fn[_DYN_APPLY /* @min:%2eapply */](null, [item]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Telemetry initializer failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n }\r\n }\r\n return !doNotSendItem;\r\n}\r\nvar TelemetryInitializerPlugin = /** @class */ (function (_super) {\r\n __extends(TelemetryInitializerPlugin, _super);\r\n function TelemetryInitializerPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"TelemetryInitializerPlugin\";\r\n _this.priority = 199;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _id;\r\n var _initializers;\r\n _initDefaults();\r\n dynamicProto(TelemetryInitializerPlugin, _this, function (_self, _base) {\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n return _addInitializer(_initializers, _id++, telemetryInitializer);\r\n };\r\n _self[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */] = function (item, itemCtx) {\r\n if (_runInitializers(_initializers, item, itemCtx ? itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]() : _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]())) {\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item, itemCtx);\r\n }\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function () {\r\n _initDefaults();\r\n };\r\n });\r\n function _initDefaults() {\r\n _id = 0;\r\n _initializers = [];\r\n }\r\n return _this;\r\n }\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n TelemetryInitializerPlugin.__ieDyn=1;\n\n return TelemetryInitializerPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { TelemetryInitializerPlugin };\r\n//# sourceMappingURL=TelemetryInitializerPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport { __spreadArrayFn as __spreadArray } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise } from \"@nevware21/ts-async\";\r\nimport { arrAppend, arrForEach, arrIndexOf, createTimeout, deepExtend, hasDocument, isFunction, isNullOrUndefined, isPlainObject, objDeepFreeze, objDefine, objForEachKey, objFreeze, objHasOwn, scheduleTimeout, throwError } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_CREATE_NEW, _DYN_ENABLED, _DYN_GET_NOTIFY_MGR, _DYN_GET_PLUGIN, _DYN_GET_PROCESS_TEL_CONT0, _DYN_IDENTIFIER, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_NAME, _DYN_NOTIFY, _DYN_ON_COMPLETE, _DYN_POLL_INTERNAL_LOGS, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_2, _DYN_SET_DF, _DYN_SPLICE, _DYN_STOP_POLLING_INTERNA3, _DYN_TEARDOWN, _DYN_TIME, _DYN_UNLOAD, _DYN_VERSION, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { doUnloadAll, runTargetUnload } from \"./AsyncUtils\";\r\nimport { ChannelControllerPriority } from \"./Constants\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nimport { DiagnosticLogger, _InternalLogMessage, _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getSetValue, proxyFunctionAs, proxyFunctions, toISOString } from \"./HelperFuncs\";\r\nimport { STR_CHANNELS, STR_CORE, STR_CREATE_PERF_MGR, STR_DISABLED, STR_EMPTY, STR_EVENTS_DISCARDED, STR_EXTENSIONS, STR_EXTENSION_CONFIG, STR_GET_PERF_MGR, STR_PRIORITY, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { PerfManager, doPerf, getGblPerfMgr } from \"./PerfManager\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { _getPluginState, createDistributedTraceContext, initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { TelemetryInitializerPlugin } from \"./TelemetryInitializerPlugin\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strValidationError = \"Plugins must provide initialize method\";\r\nvar strNotificationManager = \"_notificationManager\";\r\nvar strSdkUnloadingError = \"SDK is still unloading...\";\r\nvar strSdkNotInitialized = \"SDK is not initialized\";\r\n// const strPluginUnloadFailed = \"Failed to unload plugin\";\r\n/**\r\n * The default settings for the config.\r\n * WE MUST include all defaults here to ensure that the config is created with all of the properties\r\n * defined as dynamic.\r\n */\r\nvar defaultConfig = objDeepFreeze((_a = {\r\n cookieCfg: {}\r\n },\r\n _a[STR_EXTENSIONS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_CHANNELS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_EXTENSION_CONFIG] = { ref: true, v: {} },\r\n _a[STR_CREATE_PERF_MGR] = UNDEFINED_VALUE,\r\n _a.loggingLevelConsole = 0 /* eLoggingSeverity.DISABLED */,\r\n _a.diagnosticLogInterval = UNDEFINED_VALUE,\r\n _a));\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n return new PerfManager(notificationMgr);\r\n}\r\nfunction _validateExtensions(logger, channelPriority, allExtensions) {\r\n var _a;\r\n // Concat all available extensions\r\n var coreExtensions = [];\r\n var channels = [];\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the\r\n var extPriorities = {};\r\n // Extension validation\r\n arrForEach(allExtensions, function (ext) {\r\n // Check for ext.initialize\r\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE /* @min:%2einitialize */])) {\r\n throwError(strValidationError);\r\n }\r\n var extPriority = ext[STR_PRIORITY /* @min:%2epriority */];\r\n var identifier = ext[_DYN_IDENTIFIER /* @min:%2eidentifier */];\r\n if (ext && extPriority) {\r\n if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n _warnToConsole(logger, \"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n }\r\n else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n // Split extensions to core and channels\r\n if (!extPriority || extPriority < channelPriority) {\r\n // Add to core extension that will be managed by AppInsightsCore\r\n coreExtensions[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n else {\r\n channels[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n return _a = {},\r\n _a[STR_CORE /* @min:core */] = coreExtensions,\r\n _a[STR_CHANNELS /* @min:channels */] = channels,\r\n _a;\r\n}\r\nfunction _isPluginPresent(thePlugin, plugins) {\r\n var exists = false;\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin === thePlugin) {\r\n exists = true;\r\n return -1;\r\n }\r\n });\r\n return exists;\r\n}\r\nfunction _deepMergeConfig(details, target, newValues, merge) {\r\n // Lets assign the new values to the existing config\r\n if (newValues) {\r\n objForEachKey(newValues, function (key, value) {\r\n if (merge) {\r\n if (isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n }\r\n if (merge && isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n else {\r\n // Just Assign (replace) and/or make the property dynamic\r\n details.set(target, key, value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _findWatcher(listeners, newWatcher) {\r\n var theListener = null;\r\n var idx = -1;\r\n arrForEach(listeners, function (listener, lp) {\r\n if (listener.w === newWatcher) {\r\n theListener = listener;\r\n idx = lp;\r\n return -1;\r\n }\r\n });\r\n return { i: idx, l: theListener };\r\n}\r\nfunction _addDelayedCfgListener(listeners, newWatcher) {\r\n var theListener = _findWatcher(listeners, newWatcher).l;\r\n if (!theListener) {\r\n theListener = {\r\n w: newWatcher,\r\n rm: function () {\r\n var fnd = _findWatcher(listeners, newWatcher);\r\n if (fnd.i !== -1) {\r\n listeners[_DYN_SPLICE /* @min:%2esplice */](fnd.i, 1);\r\n }\r\n }\r\n };\r\n listeners[_DYN_PUSH /* @min:%2epush */](theListener);\r\n }\r\n return theListener;\r\n}\r\nfunction _registerDelayedCfgListener(config, listeners, logger) {\r\n arrForEach(listeners, function (listener) {\r\n var unloadHdl = onConfigChange(config, listener.w, logger);\r\n delete listener.w; // Clear the listener reference so it will get garbage collected.\r\n // replace the remove function\r\n listener.rm = function () {\r\n unloadHdl.rm();\r\n };\r\n });\r\n}\r\nvar AppInsightsCore = /** @class */ (function () {\r\n function AppInsightsCore() {\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _configHandler;\r\n var _isInitialized;\r\n var _logger;\r\n var _eventQueue;\r\n var _notificationManager;\r\n var _perfManager;\r\n var _cfgPerfManager;\r\n var _cookieManager;\r\n var _pluginChain;\r\n var _configExtensions;\r\n var _channelConfig;\r\n var _channels;\r\n var _isUnloading;\r\n var _telemetryInitializerPlugin;\r\n var _internalLogsEventName;\r\n var _evtNamespace;\r\n var _unloadHandlers;\r\n var _hookContainer;\r\n var _debugListener;\r\n var _traceCtx;\r\n var _instrumentationKey;\r\n var _cfgListeners;\r\n var _extensions;\r\n var _pluginVersionStringArr;\r\n var _pluginVersionString;\r\n /**\r\n * Internal log poller\r\n */\r\n var _internalLogPoller;\r\n var _internalLogPollerListening;\r\n var _forceStopInternalLogPoller;\r\n dynamicProto(AppInsightsCore, this, function (_self) {\r\n // Set the default values (also called during teardown)\r\n _initDefaults();\r\n // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_extensions];\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () { return _isInitialized; };\r\n // Creating the self.initialize = ()\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n if (_isUnloading) {\r\n throwError(strSdkUnloadingError);\r\n }\r\n // Make sure core is only initialized once\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n throwError(\"Core cannot be initialized more than once\");\r\n }\r\n _configHandler = createDynamicConfig(config, defaultConfig, logger || _self[_DYN_LOGGER /* @min:%2elogger */], false);\r\n // Re-assigning the local config property so we don't have any references to the passed value and it can be garbage collected\r\n config = _configHandler.cfg;\r\n // This will be \"re-run\" if the referenced config properties are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n _instrumentationKey = details.cfg.instrumentationKey;\r\n // Mark the extensionConfig and all first level keys as referenced\r\n // This is so that calls to getExtCfg() will always return the same object\r\n // Even when a user may \"re-assign\" the plugin properties (or it's unloaded/reloaded)\r\n var extCfg = details.ref(details.cfg, STR_EXTENSION_CONFIG);\r\n objForEachKey(extCfg, function (key) {\r\n details.ref(extCfg, key);\r\n });\r\n if (isNullOrUndefined(_instrumentationKey)) {\r\n throwError(\"Please provide instrumentation key\");\r\n }\r\n }));\r\n _notificationManager = notificationManager;\r\n _initDebugListener();\r\n _initPerfManager();\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = logger;\r\n var cfgExtensions = config[STR_EXTENSIONS /* @min:%2eextensions */];\r\n // Extension validation\r\n _configExtensions = [];\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */].apply(_configExtensions, __spreadArray(__spreadArray([], extensions, false), cfgExtensions, false));\r\n _channelConfig = config[STR_CHANNELS /* @min:%2echannels */];\r\n _initPluginChain(null);\r\n if (!_channels || _channels[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n throwError(\"No \" + STR_CHANNELS + \" available\");\r\n }\r\n if (_channelConfig && _channelConfig[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n var teeController = _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */](\"TeeChannelController\");\r\n if (!teeController || !teeController.plugin) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"TeeChannel required\");\r\n }\r\n }\r\n _registerDelayedCfgListener(config, _cfgListeners, _logger);\r\n _cfgListeners = null;\r\n _isInitialized = true;\r\n _self.releaseQueue();\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n };\r\n _self.getChannels = function () {\r\n var controls = [];\r\n if (_channels) {\r\n arrForEach(_channels, function (channel) {\r\n controls[_DYN_PUSH /* @min:%2epush */](channel);\r\n });\r\n }\r\n return objFreeze(controls);\r\n };\r\n _self.track = function (telemetryItem) {\r\n doPerf(_self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */](), function () { return \"AppInsightsCore:track\"; }, function () {\r\n if (telemetryItem === null) {\r\n _notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throwError(\"Invalid telemetry item\");\r\n }\r\n // do basic validation before sending it through the pipeline\r\n if (!telemetryItem[_DYN_NAME /* @min:%2ename */] && isNullOrUndefined(telemetryItem[_DYN_NAME /* @min:%2ename */])) {\r\n _notifyInvalidEvent(telemetryItem);\r\n throwError(\"telemetry name required\");\r\n }\r\n // setup default iKey if not passed in\r\n telemetryItem.iKey = telemetryItem.iKey || _instrumentationKey;\r\n // add default timestamp if not passed in\r\n telemetryItem[_DYN_TIME /* @min:%2etime */] = telemetryItem[_DYN_TIME /* @min:%2etime */] || toISOString(new Date());\r\n // Common Schema 4.0\r\n telemetryItem.ver = telemetryItem.ver || \"4.0\";\r\n if (!_isUnloading && _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n // Process the telemetry plugin chain\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](telemetryItem);\r\n }\r\n else {\r\n // Queue events until all extensions are initialized\r\n _eventQueue[_DYN_PUSH /* @min:%2epush */](telemetryItem);\r\n }\r\n }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n };\r\n _self[_DYN_GET_PROCESS_TEL_CONT0 /* @min:%2egetProcessTelContext */] = _createTelCtx;\r\n _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */] = function () {\r\n if (!_notificationManager) {\r\n _notificationManager = new NotificationManager(_configHandler.cfg);\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n return _notificationManager;\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param listener - An INotificationListener object.\r\n */\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]()[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - INotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n if (_notificationManager) {\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */](listener);\r\n }\r\n };\r\n _self.getCookieMgr = function () {\r\n if (!_cookieManager) {\r\n _cookieManager = createCookieMgr(_configHandler.cfg, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _cookieManager;\r\n };\r\n _self.setCookieMgr = function (cookieMgr) {\r\n if (_cookieManager !== cookieMgr) {\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = cookieMgr;\r\n }\r\n };\r\n _self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */] = function () {\r\n if (!_perfManager && !_cfgPerfManager) {\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n if (details.cfg.enablePerfMgr) {\r\n var createPerfMgr = details.cfg[STR_CREATE_PERF_MGR /* @min:%2ecreatePerfMgr */];\r\n if (isFunction(createPerfMgr)) {\r\n _cfgPerfManager = createPerfMgr(_self, _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]());\r\n }\r\n }\r\n }));\r\n }\r\n return _perfManager || _cfgPerfManager || getGblPerfMgr();\r\n };\r\n _self.setPerfMgr = function (perfMgr) {\r\n _perfManager = perfMgr;\r\n };\r\n _self.eventCnt = function () {\r\n return _eventQueue[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.releaseQueue = function () {\r\n if (_isInitialized && _eventQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var eventQueue = _eventQueue;\r\n _eventQueue = [];\r\n arrForEach(eventQueue, function (event) {\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](event);\r\n });\r\n }\r\n };\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */] = function (eventName) {\r\n _internalLogsEventName = eventName || null;\r\n _forceStopInternalLogPoller = false;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n return _startLogPoller(true);\r\n };\r\n function _startLogPoller(alwaysStart) {\r\n if ((!_internalLogPoller || !_internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */]) && !_forceStopInternalLogPoller) {\r\n var shouldStart = alwaysStart || (_logger && _logger.queue[_DYN_LENGTH /* @min:%2elength */] > 0);\r\n if (shouldStart) {\r\n if (!_internalLogPollerListening) {\r\n _internalLogPollerListening = true;\r\n // listen for any configuration changes so that changes to the\r\n // interval will cause the timer to be re-initialized\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var interval = details.cfg.diagnosticLogInterval;\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n var isRunning = false;\r\n if (_internalLogPoller) {\r\n // It was already created so remember it's running and cancel\r\n isRunning = _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */];\r\n _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n }\r\n // Create / reconfigure\r\n _internalLogPoller = createTimeout(_flushInternalLogs, interval);\r\n _internalLogPoller.unref();\r\n // Restart if previously running\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = isRunning;\r\n }));\r\n }\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = true;\r\n }\r\n }\r\n return _internalLogPoller;\r\n }\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */] = function () {\r\n _forceStopInternalLogPoller = true;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _flushInternalLogs();\r\n };\r\n // Add addTelemetryInitializer\r\n proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, [\"addTelemetryInitializer\"]);\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync, unloadComplete, cbTimeout) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_isInitialized) {\r\n // The SDK is not initialized\r\n throwError(strSdkNotInitialized);\r\n }\r\n // Check if the SDK still unloading so throw\r\n if (_isUnloading) {\r\n // The SDK is already unloading\r\n throwError(strSdkUnloadingError);\r\n }\r\n var unloadState = (_a = {\r\n reason: 50 /* TelemetryUnloadReason.SdkUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a.flushComplete = false,\r\n _a);\r\n var result;\r\n if (isAsync && !unloadComplete) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n unloadComplete = resolve;\r\n });\r\n }\r\n var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);\r\n processUnloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n _hookContainer.run(_self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Run any \"unload\" functions for the _cookieManager, _notificationManager and _logger\r\n doUnloadAll([_cookieManager, _notificationManager, _logger], isAsync, function () {\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n });\r\n }, _self);\r\n function _doUnload(flushComplete) {\r\n unloadState.flushComplete = flushComplete;\r\n _isUnloading = true;\r\n // Run all of the unload handlers first (before unloading the plugins)\r\n _unloadHandlers.run(processUnloadCtx, unloadState);\r\n // Stop polling the internal logs\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */]();\r\n // Start unloading the components, from this point onwards the SDK should be considered to be in an unstable state\r\n processUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n _flushInternalLogs();\r\n if (!_flushChannels(isAsync, _doUnload, 6 /* SendRequestReason.SdkUnload */, cbTimeout)) {\r\n _doUnload(false);\r\n }\r\n return result;\r\n };\r\n _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */] = _getPlugin;\r\n _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {\r\n if (!plugin) {\r\n addCb && addCb(false);\r\n _logOrThrowError(strValidationError);\r\n return;\r\n }\r\n var existingPlugin = _getPlugin(plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n if (existingPlugin && !replaceExisting) {\r\n addCb && addCb(false);\r\n _logOrThrowError(\"Plugin [\" + plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"] is already loaded!\");\r\n return;\r\n }\r\n var updateState = {\r\n reason: 16 /* TelemetryUpdateReason.PluginAdded */\r\n };\r\n function _addPlugin(removed) {\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n updateState.added = [plugin];\r\n // Re-Initialize the plugin chain\r\n _initPluginChain(updateState);\r\n addCb && addCb(true);\r\n }\r\n if (existingPlugin) {\r\n var removedPlugins_1 = [existingPlugin.plugin];\r\n var unloadState = {\r\n reason: 2 /* TelemetryUnloadReason.PluginReplace */,\r\n isAsync: !!isAsync\r\n };\r\n _removePlugins(removedPlugins_1, unloadState, function (removed) {\r\n if (!removed) {\r\n // Previous plugin was successfully removed or was not installed\r\n addCb && addCb(false);\r\n }\r\n else {\r\n updateState.removed = removedPlugins_1;\r\n updateState.reason |= 32 /* TelemetryUpdateReason.PluginRemoved */;\r\n _addPlugin(true);\r\n }\r\n });\r\n }\r\n else {\r\n _addPlugin(false);\r\n }\r\n };\r\n _self.updateCfg = function (newConfig, mergeExisting) {\r\n if (mergeExisting === void 0) { mergeExisting = true; }\r\n var updateState;\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n updateState = {\r\n reason: 1 /* TelemetryUpdateReason.ConfigurationChanged */,\r\n cfg: _configHandler.cfg,\r\n oldCfg: deepExtend({}, _configHandler.cfg),\r\n newConfig: deepExtend({}, newConfig),\r\n merge: mergeExisting\r\n };\r\n newConfig = updateState.newConfig;\r\n var cfg = _configHandler.cfg;\r\n // replace the immutable (if initialized) values\r\n // We don't currently allow updating the extensions and channels via the update config\r\n // So overwriting any user provided values to reuse the existing values\r\n newConfig[STR_EXTENSIONS /* @min:%2eextensions */] = cfg[STR_EXTENSIONS /* @min:%2eextensions */];\r\n newConfig[STR_CHANNELS /* @min:%2echannels */] = cfg[STR_CHANNELS /* @min:%2echannels */];\r\n }\r\n // Explicitly blocking any previous config watchers so that they don't get called because\r\n // of this bulk update (Probably not necessary)\r\n _configHandler._block(function (details) {\r\n // Lets assign the new values to the existing config either overwriting or re-assigning\r\n var theConfig = details.cfg;\r\n _deepMergeConfig(details, theConfig, newConfig, mergeExisting);\r\n if (!mergeExisting) {\r\n // Remove (unassign) the values \"missing\" from the newConfig and also not in the default config\r\n objForEachKey(theConfig, function (key) {\r\n if (!objHasOwn(newConfig, key)) {\r\n // Set the value to undefined\r\n details.set(theConfig, key, UNDEFINED_VALUE);\r\n }\r\n });\r\n }\r\n // Apply defaults to the new config\r\n details[_DYN_SET_DF /* @min:%2esetDf */](theConfig, defaultConfig);\r\n }, true);\r\n // Now execute all of the listeners (synchronously) so they update their values immediately\r\n _configHandler[_DYN_NOTIFY /* @min:%2enotify */]();\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n };\r\n _self.evtNamespace = function () {\r\n return _evtNamespace;\r\n };\r\n _self.flush = _flushChannels;\r\n _self.getTraceCtx = function (createNew) {\r\n if (!_traceCtx) {\r\n _traceCtx = createDistributedTraceContext();\r\n }\r\n return _traceCtx;\r\n };\r\n _self.setTraceCtx = function (traceCtx) {\r\n _traceCtx = traceCtx || null;\r\n };\r\n _self.addUnloadHook = _addUnloadHook;\r\n // Create the addUnloadCb\r\n proxyFunctionAs(_self, \"addUnloadCb\", function () { return _unloadHandlers; }, \"add\");\r\n _self.onCfgChange = function (handler) {\r\n var unloadHook;\r\n if (!_isInitialized) {\r\n unloadHook = _addDelayedCfgListener(_cfgListeners, handler);\r\n }\r\n else {\r\n unloadHook = onConfigChange(_configHandler.cfg, handler, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return {\r\n rm: function () {\r\n unloadHook.rm();\r\n }\r\n };\r\n };\r\n _self.getWParam = function () {\r\n return (hasDocument() || !!_configHandler.cfg.enableWParam) ? 0 : -1;\r\n };\r\n function _setPluginVersions() {\r\n var thePlugins = {};\r\n _pluginVersionStringArr = [];\r\n var _addPluginVersions = function (plugins) {\r\n if (plugins) {\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] && plugin[_DYN_VERSION /* @min:%2eversion */] && !thePlugins[plugin.identifier]) {\r\n var ver = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"=\" + plugin[_DYN_VERSION /* @min:%2eversion */];\r\n _pluginVersionStringArr[_DYN_PUSH /* @min:%2epush */](ver);\r\n thePlugins[plugin.identifier] = plugin;\r\n }\r\n });\r\n }\r\n };\r\n _addPluginVersions(_channels);\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (channels) {\r\n _addPluginVersions(channels);\r\n });\r\n }\r\n _addPluginVersions(_configExtensions);\r\n }\r\n function _initDefaults() {\r\n _isInitialized = false;\r\n // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n _configHandler = createDynamicConfig({}, defaultConfig, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Set the logging level to critical so that any critical initialization failures are displayed on the console\r\n _configHandler.cfg[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */] = 1 /* eLoggingSeverity.CRITICAL */;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _configHandler.cfg; },\r\n s: function (newValue) {\r\n _self.updateCfg(newValue, false);\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionStringArr\", {\r\n g: function () {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n return _pluginVersionStringArr;\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionString\", {\r\n g: function () {\r\n if (!_pluginVersionString) {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n _pluginVersionString = _pluginVersionStringArr.join(\";\");\r\n }\r\n return _pluginVersionString || STR_EMPTY;\r\n }\r\n });\r\n objDefine(_self, \"logger\", {\r\n g: function () {\r\n if (!_logger) {\r\n _logger = new DiagnosticLogger(_configHandler.cfg);\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = _logger;\r\n }\r\n return _logger;\r\n },\r\n s: function (newLogger) {\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = newLogger;\r\n if (_logger !== newLogger) {\r\n runTargetUnload(_logger, false);\r\n _logger = newLogger;\r\n }\r\n }\r\n });\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = new DiagnosticLogger(_configHandler.cfg);\r\n _extensions = [];\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n _telemetryInitializerPlugin = new TelemetryInitializerPlugin();\r\n _eventQueue = [];\r\n runTargetUnload(_notificationManager, false);\r\n _notificationManager = null;\r\n _perfManager = null;\r\n _cfgPerfManager = null;\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = null;\r\n _pluginChain = null;\r\n _configExtensions = [];\r\n _channelConfig = null;\r\n _channels = null;\r\n _isUnloading = false;\r\n _internalLogsEventName = null;\r\n _evtNamespace = createUniqueNamespace(\"AIBaseCore\", true);\r\n _unloadHandlers = createUnloadHandlerContainer();\r\n _traceCtx = null;\r\n _instrumentationKey = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _cfgListeners = [];\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n _forceStopInternalLogPoller = false;\r\n }\r\n function _createTelCtx() {\r\n var theCtx = createProcessTelemetryContext(_getPluginChain(), _configHandler.cfg, _self);\r\n theCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n return theCtx;\r\n }\r\n // Initialize or Re-initialize the plugins\r\n function _initPluginChain(updateState) {\r\n // Extension validation\r\n var theExtensions = _validateExtensions(_self[_DYN_LOGGER /* @min:%2elogger */], ChannelControllerPriority, _configExtensions);\r\n _pluginChain = null;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Get the primary channel queue and include as part of the normal extensions\r\n _channels = (_channelConfig || [])[0] || [];\r\n // Add any channels provided in the extensions and sort them\r\n _channels = sortPlugins(arrAppend(_channels, theExtensions[STR_CHANNELS /* @min:%2echannels */]));\r\n // Create an array of all extensions, including the _channels\r\n var allExtensions = arrAppend(sortPlugins(theExtensions[STR_CORE /* @min:%2ecore */]), _channels);\r\n // Required to allow plugins to call core.getPlugin() during their own initialization\r\n _extensions = objFreeze(allExtensions);\r\n // This has a side effect of adding the extensions passed during initialization\r\n // into the config.extensions, so you can see all of the extensions loaded.\r\n // This will also get updated by the addPlugin() and remove plugin code.\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n var rootCtx = _createTelCtx();\r\n // Initializing the channels first\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n initializePlugins(rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels), allExtensions);\r\n }\r\n // Now initialize the normal extensions (explicitly not including the _channels as this can cause duplicate initialization)\r\n initializePlugins(rootCtx, allExtensions);\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n }\r\n function _getPlugin(pluginIdentifier) {\r\n var theExt = null;\r\n var thePlugin = null;\r\n var channelHosts = [];\r\n arrForEach(_extensions, function (ext) {\r\n if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier && ext !== _telemetryInitializerPlugin) {\r\n thePlugin = ext;\r\n return -1;\r\n }\r\n if (ext.getChannel) {\r\n channelHosts[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n if (!thePlugin && channelHosts[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(channelHosts, function (host) {\r\n thePlugin = host.getChannel(pluginIdentifier);\r\n if (!thePlugin) {\r\n return -1;\r\n }\r\n });\r\n }\r\n if (thePlugin) {\r\n theExt = {\r\n plugin: thePlugin,\r\n setEnabled: function (enabled) {\r\n _getPluginState(thePlugin)[STR_DISABLED] = !enabled;\r\n },\r\n isEnabled: function () {\r\n var pluginState = _getPluginState(thePlugin);\r\n return !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] && !pluginState[STR_DISABLED];\r\n },\r\n remove: function (isAsync, removeCb) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n var pluginsToRemove = [thePlugin];\r\n var unloadState = (_a = {\r\n reason: 1 /* TelemetryUnloadReason.PluginUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a);\r\n _removePlugins(pluginsToRemove, unloadState, function (removed) {\r\n if (removed) {\r\n // Re-Initialize the plugin chain\r\n _initPluginChain({\r\n reason: 32 /* TelemetryUpdateReason.PluginRemoved */,\r\n removed: pluginsToRemove\r\n });\r\n }\r\n removeCb && removeCb(removed);\r\n });\r\n }\r\n };\r\n }\r\n return theExt;\r\n }\r\n function _getPluginChain() {\r\n if (!_pluginChain) {\r\n // copy the collection of extensions\r\n var extensions = (_extensions || []).slice();\r\n // During add / remove this may get called again, so don't read if already present\r\n if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {\r\n extensions[_DYN_PUSH /* @min:%2epush */](_telemetryInitializerPlugin);\r\n }\r\n _pluginChain = createTelemetryProxyChain(sortPlugins(extensions), _configHandler.cfg, _self);\r\n }\r\n return _pluginChain;\r\n }\r\n function _removePlugins(thePlugins, unloadState, removeComplete) {\r\n if (thePlugins && thePlugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var unloadChain = createTelemetryProxyChain(thePlugins, _configHandler.cfg, _self);\r\n var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self);\r\n unloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n var removed = false;\r\n // Remove the listed config extensions\r\n var newConfigExtensions = [];\r\n arrForEach(_configExtensions, function (plugin, idx) {\r\n if (!_isPluginPresent(plugin, thePlugins)) {\r\n newConfigExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n _configExtensions = newConfigExtensions;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Re-Create the channel config\r\n var newChannelConfig = [];\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (queue, idx) {\r\n var newQueue = [];\r\n arrForEach(queue, function (channel) {\r\n if (!_isPluginPresent(channel, thePlugins)) {\r\n newQueue[_DYN_PUSH /* @min:%2epush */](channel);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n newChannelConfig[_DYN_PUSH /* @min:%2epush */](newQueue);\r\n });\r\n _channelConfig = newChannelConfig;\r\n }\r\n removeComplete && removeComplete(removed);\r\n _startLogPoller();\r\n });\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n else {\r\n removeComplete(false);\r\n }\r\n }\r\n function _flushInternalLogs() {\r\n if (_logger && _logger.queue) {\r\n var queue = _logger.queue.slice(0);\r\n _logger.queue[_DYN_LENGTH /* @min:%2elength */] = 0;\r\n arrForEach(queue, function (logMessage) {\r\n var _a;\r\n var item = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = _internalLogsEventName ? _internalLogsEventName : \"InternalMessageId: \" + logMessage[_DYN_MESSAGE_ID /* @min:%2emessageId */],\r\n _a.iKey = _instrumentationKey,\r\n _a[_DYN_TIME /* @min:time */] = toISOString(new Date()),\r\n _a.baseType = _InternalLogMessage.dataType,\r\n _a.baseData = { message: logMessage[_DYN_MESSAGE /* @min:%2emessage */] },\r\n _a);\r\n _self.track(item);\r\n });\r\n }\r\n }\r\n function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {\r\n // Setting waiting to one so that we don't call the callBack until we finish iterating\r\n var waiting = 1;\r\n var doneIterating = false;\r\n var cbTimer = null;\r\n cbTimeout = cbTimeout || 5000;\r\n function doCallback() {\r\n waiting--;\r\n if (doneIterating && waiting === 0) {\r\n cbTimer && cbTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n cbTimer = null;\r\n callBack && callBack(doneIterating);\r\n callBack = null;\r\n }\r\n }\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var flushCtx = _createTelCtx()[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels);\r\n flushCtx.iterate(function (plugin) {\r\n if (plugin.flush) {\r\n waiting++;\r\n var handled_1 = false;\r\n // Not all channels will call this callback for every scenario\r\n if (!plugin.flush(isAsync, function () {\r\n handled_1 = true;\r\n doCallback();\r\n }, sendReason)) {\r\n if (!handled_1) {\r\n // If any channel doesn't return true and it didn't call the callback, then we should assume that the callback\r\n // will never be called, so use a timeout to allow the channel(s) some time to \"finish\" before triggering any\r\n // followup function (such as unloading)\r\n if (isAsync && cbTimer == null) {\r\n cbTimer = scheduleTimeout(function () {\r\n cbTimer = null;\r\n doCallback();\r\n }, cbTimeout);\r\n }\r\n else {\r\n doCallback();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n doneIterating = true;\r\n doCallback();\r\n return true;\r\n }\r\n function _initDebugListener() {\r\n // Lazily ensure that the notification manager is created\r\n !_notificationManager && _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]();\r\n // Will get recalled if any referenced config values are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var disableDbgExt = details.cfg.disableDbgExt;\r\n if (disableDbgExt === true && _debugListener) {\r\n // Remove any previously loaded debug listener\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */](_debugListener);\r\n _debugListener = null;\r\n }\r\n if (_notificationManager && !_debugListener && disableDbgExt !== true) {\r\n _debugListener = getDebugListener(details.cfg);\r\n _notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](_debugListener);\r\n }\r\n }));\r\n }\r\n function _initPerfManager() {\r\n // Will get recalled if any referenced config values are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var enablePerfMgr = details.cfg.enablePerfMgr;\r\n if (!enablePerfMgr && _cfgPerfManager) {\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n }\r\n if (enablePerfMgr) {\r\n // Set the performance manager creation function if not defined\r\n getSetValue(details.cfg, STR_CREATE_PERF_MGR, _createPerfManager);\r\n }\r\n }));\r\n }\r\n function _doUpdate(updateState) {\r\n var updateCtx = createProcessTelemetryUpdateContext(_getPluginChain(), _self);\r\n updateCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n if (!_self._updateHook || _self._updateHook(updateCtx, updateState) !== true) {\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n function _logOrThrowError(message) {\r\n var logger = _self[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // there should always be a logger\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, message);\r\n _startLogPoller();\r\n }\r\n else {\r\n throwError(message);\r\n }\r\n }\r\n function _notifyInvalidEvent(telemetryItem) {\r\n var manager = _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]();\r\n if (manager) {\r\n manager[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */]([telemetryItem], 2 /* eEventsDiscardedReason.InvalidEvent */);\r\n }\r\n }\r\n function _addUnloadHook(hooks) {\r\n _hookContainer.add(hooks);\r\n }\r\n });\r\n }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.getChannels.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n// Removed Stub for AppInsightsCore.prototype.getProcessTelContext.\r\n// Removed Stub for AppInsightsCore.prototype.getNotifyMgr.\r\n// Removed Stub for AppInsightsCore.prototype.addNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.removeNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.getPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.eventCnt.\r\n// Removed Stub for AppInsightsCore.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.addTelemetryInitializer.\r\n// Removed Stub for AppInsightsCore.prototype.unload.\r\n// Removed Stub for AppInsightsCore.prototype.getPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.addPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.updateCfg.\r\n// Removed Stub for AppInsightsCore.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsCore.prototype.flush.\r\n// Removed Stub for AppInsightsCore.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.setTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadHook.\r\n// Removed Stub for AppInsightsCore.prototype.onCfgChange.\r\n// Removed Stub for AppInsightsCore.prototype.releaseQueue.\r\n// Removed Stub for AppInsightsCore.prototype._updateHook.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n AppInsightsCore.__ieDyn=1;\n\n return AppInsightsCore;\r\n}());\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, getDocument, getWindow, isArray, objForEachKey, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_HANDLER, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE, _DYN_SPLICE, _DYN_SPLIT, _DYN_TYPE } from \"../__DynamicConstants\";\r\nimport { createElmNodeData, createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strEvents = \"events\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar strUnload = \"unload\";\r\nvar strBeforeUnload = \"beforeunload\";\r\nvar strPageHideNamespace = createUniqueNamespace(\"aiEvtPageHide\");\r\nvar strPageShowNamespace = createUniqueNamespace(\"aiEvtPageShow\");\r\nvar rRemoveEmptyNs = /\\.[\\.]+/g;\r\nvar rRemoveTrailingEmptyNs = /[\\.]+$/;\r\nvar _guid = 1;\r\nvar elmNodeData = createElmNodeData(\"events\");\r\nvar eventNamespace = /^([^.]*)(?:\\.(.+)|)/;\r\nfunction _normalizeNamespace(name) {\r\n if (name && name[_DYN_REPLACE /* @min:%2ereplace */]) {\r\n return name[_DYN_REPLACE /* @min:%2ereplace */](/^[\\s\\.]+|(?=[\\s\\.])[\\.\\s]+$/g, STR_EMPTY);\r\n }\r\n return name;\r\n}\r\nfunction _getEvtNamespace(eventName, evtNamespace) {\r\n var _a;\r\n if (evtNamespace) {\r\n var theNamespace_1 = STR_EMPTY;\r\n if (isArray(evtNamespace)) {\r\n theNamespace_1 = STR_EMPTY;\r\n arrForEach(evtNamespace, function (name) {\r\n name = _normalizeNamespace(name);\r\n if (name) {\r\n if (name[0] !== \".\") {\r\n name = \".\" + name;\r\n }\r\n theNamespace_1 += name;\r\n }\r\n });\r\n }\r\n else {\r\n theNamespace_1 = _normalizeNamespace(evtNamespace);\r\n }\r\n if (theNamespace_1) {\r\n if (theNamespace_1[0] !== \".\") {\r\n theNamespace_1 = \".\" + theNamespace_1;\r\n }\r\n // We may only have the namespace and not an eventName\r\n eventName = (eventName || STR_EMPTY) + theNamespace_1;\r\n }\r\n }\r\n var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);\r\n return _a = {},\r\n _a[_DYN_TYPE /* @min:type */] = parsedEvent[1],\r\n _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, \".\").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT /* @min:%2esplit */](\".\").sort()).join(\".\"),\r\n _a;\r\n}\r\n/**\r\n * Get all of the registered events on the target object, this is primarily used for testing cleanup but may also be used by\r\n * applications to remove their own events\r\n * @param target - The EventTarget that has registered events\r\n * @param eventName - [Optional] The name of the event to return the registered handlers and full name (with namespaces)\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n */\r\nexport function __getRegisteredEvents(target, eventName, evtNamespace) {\r\n var theEvents = [];\r\n var eventCache = elmNodeData.get(target, strEvents, {}, false);\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n objForEachKey(eventCache, function (evtType, registeredEvents) {\r\n arrForEach(registeredEvents, function (value) {\r\n var _a;\r\n if (!evtName[_DYN_TYPE /* @min:%2etype */] || evtName[_DYN_TYPE /* @min:%2etype */] === value.evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (!evtName.ns || evtName.ns === evtName.ns) {\r\n theEvents[_DYN_PUSH /* @min:%2epush */]((_a = {},\r\n _a[_DYN_NAME /* @min:name */] = value.evtName[_DYN_TYPE /* @min:%2etype */] + (value.evtName.ns ? \".\" + value.evtName.ns : STR_EMPTY),\r\n _a.handler = value[_DYN_HANDLER /* @min:%2ehandler */],\r\n _a));\r\n }\r\n }\r\n });\r\n });\r\n return theEvents;\r\n}\r\n// Exported for internal unit testing only\r\nfunction _getRegisteredEvents(target, evtName, addDefault) {\r\n if (addDefault === void 0) { addDefault = true; }\r\n var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);\r\n var registeredEvents = aiEvts[evtName];\r\n if (!registeredEvents) {\r\n registeredEvents = aiEvts[evtName] = [];\r\n }\r\n return registeredEvents;\r\n}\r\nfunction _doDetach(obj, evtName, handlerRef, useCapture) {\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (obj[strRemoveEventListener]) {\r\n obj[strRemoveEventListener](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n }\r\n else if (obj[strDetachEvent]) {\r\n obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n }\r\n }\r\n}\r\nfunction _doAttach(obj, evtName, handlerRef, useCapture) {\r\n var result = false;\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */] && handlerRef) {\r\n if (obj[strAddEventHelper]) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (obj[strAttachEvent]) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction _doUnregister(target, events, evtName, unRegFn) {\r\n var idx = events[_DYN_LENGTH /* @min:%2elength */];\r\n while (idx--) {\r\n var theEvent = events[idx];\r\n if (theEvent) {\r\n if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {\r\n if (!unRegFn || unRegFn(theEvent)) {\r\n _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER /* @min:%2ehandler */], theEvent.capture);\r\n // Remove the registered event\r\n events[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction _unregisterEvents(target, evtName, unRegFn) {\r\n if (evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE /* @min:%2etype */]), evtName, unRegFn);\r\n }\r\n else {\r\n var eventCache = elmNodeData.get(target, strEvents, {});\r\n objForEachKey(eventCache, function (evtType, events) {\r\n _doUnregister(target, events, evtName, unRegFn);\r\n });\r\n // Cleanup\r\n if (objKeys(eventCache)[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n elmNodeData.kill(target, strEvents);\r\n }\r\n }\r\n}\r\nexport function mergeEvtNamespace(theNamespace, namespaces) {\r\n var newNamespaces;\r\n if (namespaces) {\r\n if (isArray(namespaces)) {\r\n newNamespaces = [theNamespace].concat(namespaces);\r\n }\r\n else {\r\n newNamespaces = [theNamespace, namespaces];\r\n }\r\n // resort the namespaces so they are always in order\r\n newNamespaces = (_getEvtNamespace(\"xx\", newNamespaces).ns)[_DYN_SPLIT /* @min:%2esplit */](\".\");\r\n }\r\n else {\r\n newNamespaces = theNamespace;\r\n }\r\n return newNamespaces;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventName - String that specifies any of the standard DHTML Events without \"on\" prefix, if may also include an optional (dot \".\" prefixed)\r\n * namespaces \"click\" \"click.mynamespace\" in addition to specific namespaces.\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n var _a;\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (target) {\r\n try {\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n result = _doAttach(target, evtName, handlerRef, useCapture);\r\n if (result && elmNodeData.accept(target)) {\r\n var registeredEvent = (_a = {\r\n guid: _guid++,\r\n evtName: evtName\r\n },\r\n _a[_DYN_HANDLER /* @min:handler */] = handlerRef,\r\n _a.capture = useCapture,\r\n _a);\r\n _getRegisteredEvents(target, evtName.type)[_DYN_PUSH /* @min:%2epush */](registeredEvent);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (target) {\r\n try {\r\n var evtName_1 = _getEvtNamespace(eventName, evtNamespace);\r\n var found_1 = false;\r\n _unregisterEvents(target, evtName_1, function (regEvent) {\r\n if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER /* @min:%2ehandler */] === handlerRef) {\r\n found_1 = true;\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (!found_1) {\r\n // fallback to try and remove as requested\r\n _doDetach(target, evtName_1, handlerRef, useCapture);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventNameWithoutOn - String that specifies any of the standard DHTML Events without \"on\" prefix and optional (dot \".\" prefixed) namespaces \"click\" \"click.mynamespace\".\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventNameWithoutOn - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n eventOff(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName - {string} - The name of the event\r\n * @param callback - {any} - The callback function that needs to be executed for the given event\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback, evtNamespace) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = eventOn(w, eventName, callback, evtNamespace);\r\n result = eventOn(w[\"body\"], eventName, callback, evtNamespace) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = eventOn(doc, eventName, callback, evtNamespace) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Trys to remove event handler(s) for the specified event/namespace to the window, body and document\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param callback - {any} - - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventHandler(eventName, callback, evtNamespace) {\r\n var w = getWindow();\r\n if (w) {\r\n eventOff(w, eventName, callback, evtNamespace);\r\n eventOff(w[\"body\"], eventName, callback, evtNamespace);\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n eventOff(doc, eventName, callback, evtNamespace);\r\n }\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nfunction _addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && events[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener, evtNamespace) || added;\r\n }\r\n }\r\n });\r\n }\r\n return added;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n added = _addEventListeners(events, listener, excludeEvents, evtNamespace);\r\n if (!added && excludeEvents && excludeEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = _addEventListeners(events, listener, null, evtNamespace);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Remove the listener from the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventListeners(events, listener, evtNamespace) {\r\n if (events && isArray(events)) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n removeEventHandler(name, listener, evtNamespace);\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);\r\n}\r\n/**\r\n * Remove any matching 'beforeunload', 'unload' and 'pagehide' events that may have been added via addEventListener,\r\n * addEventListeners, addPageUnloadEventListener or addPageHideEventListener.\r\n * @param listener - The specific event callback to to be removed\r\n * @param evtNamespace - [Optional] Namespace(s) uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function removePageUnloadEventListener(listener, evtNamespace) {\r\n removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] A Namespace to append to the event listeners so they can be uniquely identified and removed\r\n * based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageHideEventListener\" can remove these events.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Removes the pageHide event listeners added by addPageHideEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageHideEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageHideEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n removeEventListeners([strPageHide], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional/Recommended] A Namespace to append to the event listeners so they can be uniquely\r\n * identified and removed based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageShowEventListener\" can remove these events.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);\r\n pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);\r\n }\r\n return pageShowAdded;\r\n}\r\n/**\r\n * Removes the pageShow event listeners added by addPageShowEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageShowEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageShowEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n removeEventListeners([strPageShow], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n//# sourceMappingURL=EventHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { getInst, objHasOwnProperty } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SPLICE } from \"../__DynamicConstants\";\r\nimport { _getObjProto } from \"./HelperFuncs\";\r\nvar aiInstrumentHooks = \"_aiHooks\";\r\nvar cbNames = [\r\n \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n/** @ignore */\r\nfunction _arrLoop(arr, fn) {\r\n if (arr) {\r\n for (var lp = 0; lp < arr[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n if (fn(arr[lp], lp)) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @ignore */\r\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\r\n if (type >= 0 /* CallbackType.Request */ && type <= 2 /* CallbackType.HookError */) {\r\n _arrLoop(hooks, function (hook, idx) {\r\n var cbks = hook.cbks;\r\n var cb = cbks[cbNames[type]];\r\n if (cb) {\r\n // Set the specific hook context implementation using a lazy creation pattern\r\n callDetails.ctx = function () {\r\n var ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n return ctx;\r\n };\r\n try {\r\n cb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n catch (err) {\r\n var orgEx = callDetails.err;\r\n try {\r\n // Report Hook error via the callback\r\n var hookErrorCb = cbks[cbNames[2 /* CallbackType.HookError */]];\r\n if (hookErrorCb) {\r\n callDetails.err = err;\r\n hookErrorCb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n }\r\n catch (e) {\r\n // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n }\r\n finally {\r\n // restore the original exception (if any)\r\n callDetails.err = orgEx;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook) {\r\n // Define a temporary method that queues-up a the real method call\r\n return function () {\r\n var _a;\r\n var funcThis = this;\r\n // Capture the original arguments passed to the method\r\n var orgArgs = arguments;\r\n var hooks = aiHook.h;\r\n var funcArgs = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = aiHook.n,\r\n _a.inst = funcThis,\r\n _a.ctx = null,\r\n _a.set = _replaceArg,\r\n _a);\r\n var hookCtx = [];\r\n var cbArgs = _createArgs([funcArgs], orgArgs);\r\n funcArgs.evt = getInst(\"event\");\r\n function _createArgs(target, theArgs) {\r\n _arrLoop(theArgs, function (arg) {\r\n target[_DYN_PUSH /* @min:%2epush */](arg);\r\n });\r\n return target;\r\n }\r\n function _replaceArg(idx, value) {\r\n orgArgs = _createArgs([], orgArgs);\r\n orgArgs[idx] = value;\r\n cbArgs = _createArgs([funcArgs], orgArgs);\r\n }\r\n // Call the pre-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 /* CallbackType.Request */);\r\n // Call the original function was called\r\n var theFunc = aiHook.f;\r\n if (theFunc) {\r\n try {\r\n funcArgs.rslt = theFunc[_DYN_APPLY /* @min:%2eapply */](funcThis, orgArgs);\r\n }\r\n catch (err) {\r\n // Report the request callback\r\n funcArgs.err = err;\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 /* CallbackType.FunctionError */);\r\n // rethrow the original exception so anyone listening for it can catch the exception\r\n throw err;\r\n }\r\n }\r\n // Call the post-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 /* CallbackType.Response */);\r\n return funcArgs.rslt;\r\n };\r\n}\r\n/** @ignore */\r\nfunction _getOwner(target, name, checkPrototype, checkParentProto) {\r\n var owner = null;\r\n if (target) {\r\n if (objHasOwnProperty(target, name)) {\r\n owner = target;\r\n }\r\n else if (checkPrototype) {\r\n owner = _getOwner(_getObjProto(target), name, checkParentProto, false);\r\n }\r\n }\r\n return owner;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProto(target, funcName, callbacks) {\r\n if (target) {\r\n return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProtos(target, funcNames, callbacks) {\r\n if (target) {\r\n return InstrumentFuncs(target[strShimPrototype], funcNames, callbacks, false);\r\n }\r\n return null;\r\n}\r\nfunction _createInstrumentHook(owner, funcName, fn, callbacks) {\r\n var aiHook = fn && fn[aiInstrumentHooks];\r\n if (!aiHook) {\r\n // Only hook the function once\r\n aiHook = {\r\n i: 0,\r\n n: funcName,\r\n f: fn,\r\n h: []\r\n };\r\n // Override (hook) the original function\r\n var newFunc = _createFunctionHook(aiHook);\r\n newFunc[aiInstrumentHooks] = aiHook; // Tag and store the function hooks\r\n owner[funcName] = newFunc;\r\n }\r\n var theHook = {\r\n // tslint:disable:object-literal-shorthand\r\n id: aiHook.i,\r\n cbks: callbacks,\r\n rm: function () {\r\n // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n // with the outer this and not the this for theHook instance.\r\n var id = this.id;\r\n _arrLoop(aiHook.h, function (hook, idx) {\r\n if (hook.id === id) {\r\n aiHook.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return 1;\r\n }\r\n });\r\n }\r\n // tslint:enable:object-literal-shorthand\r\n };\r\n aiHook.i++;\r\n aiHook.h[_DYN_PUSH /* @min:%2epush */](theHook);\r\n return theHook;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n if (target && funcName && callbacks) {\r\n var owner = _getOwner(target, funcName, checkPrototype, checkParentProto);\r\n if (owner) {\r\n var fn = owner[funcName];\r\n if (typeof fn === strShimFunction) {\r\n return _createInstrumentHook(owner, funcName, fn, callbacks);\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n var hooks = null;\r\n _arrLoop(funcNames, function (funcName) {\r\n var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto);\r\n if (hook) {\r\n if (!hooks) {\r\n hooks = [];\r\n }\r\n hooks[_DYN_PUSH /* @min:%2epush */](hook);\r\n }\r\n });\r\n return hooks;\r\n}\r\n/**\r\n * Add an instrumentation hook to the provided named \"event\" for the target class / object, this doesn't check whether the\r\n * named \"event\" is in fact a function and just assigns the instrumentation hook to the target[evtName]\r\n * @param target - The target object\r\n * @param evtName - The name of the event\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentEvent(target, evtName, callbacks, checkPrototype, checkParentProto) {\r\n if (target && evtName && callbacks) {\r\n var owner = _getOwner(target, evtName, checkPrototype, checkParentProto) || target;\r\n if (owner) {\r\n return _createInstrumentHook(owner, evtName, owner[evtName], callbacks);\r\n }\r\n }\r\n return null;\r\n}\r\n//# sourceMappingURL=InstrumentHooks.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var DEFAULT_BREEZE_PATH = \"/v2/track\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createValueMap } from \"@microsoft/applicationinsights-core-js\";\r\nexport var RequestHeaders = createValueMap({\r\n requestContextHeader: [0 /* eRequestHeaders.requestContextHeader */, \"Request-Context\"],\r\n requestContextTargetKey: [1 /* eRequestHeaders.requestContextTargetKey */, \"appId\"],\r\n requestContextAppIdFormat: [2 /* eRequestHeaders.requestContextAppIdFormat */, \"appId=cid-v1:\"],\r\n requestIdHeader: [3 /* eRequestHeaders.requestIdHeader */, \"Request-Id\"],\r\n traceParentHeader: [4 /* eRequestHeaders.traceParentHeader */, \"traceparent\"],\r\n traceStateHeader: [5 /* eRequestHeaders.traceStateHeader */, \"tracestate\"],\r\n sdkContextHeader: [6 /* eRequestHeaders.sdkContextHeader */, \"Sdk-Context\"],\r\n sdkContextHeaderAppIdRequest: [7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */, \"appId\"],\r\n requestContextHeaderLowerCase: [8 /* eRequestHeaders.requestContextHeaderLowerCase */, \"request-context\"]\r\n});\r\n//# sourceMappingURL=RequestResponseHeaders.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SPLIT = \"split\"; // Count: 6\r\nexport var _DYN_LENGTH = \"length\"; // Count: 41\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_INGESTIONENDPOINT = \"ingestionendpoint\"; // Count: 4\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 9\r\nexport var _DYN_REMOVE_ITEM = \"removeItem\"; // Count: 3\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 10\r\nexport var _DYN_COUNT = \"count\"; // Count: 8\r\nexport var _DYN_PRE_TRIGGER_DATE = \"preTriggerDate\"; // Count: 4\r\nexport var _DYN_DISABLED = \"disabled\"; // Count: 3\r\nexport var _DYN_INTERVAL = \"interval\"; // Count: 3\r\nexport var _DYN_DAYS_OF_MONTH = \"daysOfMonth\"; // Count: 3\r\nexport var _DYN_DATE = \"date\"; // Count: 5\r\nexport var _DYN_GET_UTCDATE = \"getUTCDate\"; // Count: 3\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 4\r\nexport var _DYN_PATHNAME = \"pathname\"; // Count: 4\r\nexport var _DYN_CORRELATION_HEADER_E0 = \"correlationHeaderExcludePatterns\"; // Count: 2\r\nexport var _DYN_EXTENSION_CONFIG = \"extensionConfig\"; // Count: 4\r\nexport var _DYN_EXCEPTIONS = \"exceptions\"; // Count: 6\r\nexport var _DYN_PARSED_STACK = \"parsedStack\"; // Count: 13\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 9\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 9\r\nexport var _DYN_SIZE_IN_BYTES = \"sizeInBytes\"; // Count: 11\r\nexport var _DYN_TYPE_NAME = \"typeName\"; // Count: 11\r\nexport var _DYN_SEVERITY_LEVEL = \"severityLevel\"; // Count: 5\r\nexport var _DYN_PROBLEM_GROUP = \"problemGroup\"; // Count: 3\r\nexport var _DYN_IS_MANUAL = \"isManual\"; // Count: 3\r\nexport var _DYN__CREATE_FROM_INTERFA1 = \"CreateFromInterface\"; // Count: 2\r\nexport var _DYN_ASSEMBLY = \"assembly\"; // Count: 7\r\nexport var _DYN_HAS_FULL_STACK = \"hasFullStack\"; // Count: 6\r\nexport var _DYN_LEVEL = \"level\"; // Count: 5\r\nexport var _DYN_METHOD = \"method\"; // Count: 7\r\nexport var _DYN_FILE_NAME = \"fileName\"; // Count: 6\r\nexport var _DYN_LINE = \"line\"; // Count: 6\r\nexport var _DYN_DURATION = \"duration\"; // Count: 4\r\nexport var _DYN_RECEIVED_RESPONSE = \"receivedResponse\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, getJSON, hasJSON, isObject, objForEachKey, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { asString, strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"../../__DynamicConstants\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key[_DYN_LENGTH /* @min:%2elength */];\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field[_DYN_LENGTH /* @min:%2elength */] !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = strSubstring(field, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitespace\r\n name = strTrim(asString(name));\r\n // truncate the string to 150 chars\r\n if (name[_DYN_LENGTH /* @min:%2elength */] > 150 /* DataSanitizerValues.MAX_NAME_LENGTH */) {\r\n nameTrunc = strSubstring(name, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 57 /* _eInternalMessageId.NameTooLong */, \"name is too long. It has been truncated to \" + 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(asString(value));\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n valueTrunc = strSubstring(value, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 61 /* _eInternalMessageId.StringValueTooLong */, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n }\r\n }\r\n return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url) {\r\n return dataSanitizeInput(logger, url, 2048 /* DataSanitizerValues.MAX_URL_LENGTH */, 66 /* _eInternalMessageId.UrlTooLong */);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = strSubstring(message, 0, 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 56 /* _eInternalMessageId.MessageTruncated */, \"message is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n // Make surte its a string\r\n var value = \"\" + exception;\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = strSubstring(value, 0, 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 52 /* _eInternalMessageId.ExceptionTruncated */, \"exception is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n if (properties) {\r\n var tempProps_1 = {};\r\n objForEachKey(properties, function (prop, value) {\r\n if (isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */);\r\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n tempProps_1[prop] = value;\r\n });\r\n properties = tempProps_1;\r\n }\r\n return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements_1 = {};\r\n objForEachKey(measurements, function (measure, value) {\r\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n tempMeasurements_1[measure] = value;\r\n });\r\n measurements = tempMeasurements_1;\r\n }\r\n return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n return id ? dataSanitizeInput(logger, id, 128 /* DataSanitizerValues.MAX_ID_LENGTH */, 69 /* _eInternalMessageId.IdTooLong */)[_DYN_TO_STRING /* @min:%2etoString */]() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(asString(input));\r\n if (input[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n inputTrunc = strSubstring(input, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n }\r\n }\r\n return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n var s = \"00\" + num;\r\n return strSubstr(s, s[_DYN_LENGTH /* @min:%2elength */] - 3);\r\n}\r\n//# sourceMappingURL=DataSanitizer.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PATHNAME, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n var anchorIdx = _htmlAnchorIdx;\r\n var anchorCache = _htmlAnchorElement;\r\n var tempAnchor = anchorCache[anchorIdx];\r\n if (!_document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: urlParseHost(url, true) };\r\n }\r\n else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance\r\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n }\r\n tempAnchor.href = url;\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache[_DYN_LENGTH /* @min:%2elength */]) {\r\n anchorIdx = 0;\r\n }\r\n _htmlAnchorIdx = anchorIdx;\r\n return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a[_DYN_PATHNAME /* @min:%2epathname */];\r\n }\r\n return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n if (fullHost) {\r\n var match = fullHost.match(/(www\\d{0,5}\\.)?([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 3 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n var result = null;\r\n if (url) {\r\n var match = url.match(/(\\w{1,150}):\\/\\/([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 2 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match[_DYN_LENGTH /* @min:%2elength */] > 2) {\r\n var protocol = (match[1] || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n }\r\n else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n result += port;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=UrlHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dateNow, getPerformance, isNullOrUndefined, isValidSpanId, isValidTraceId } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH } from \"./Constants\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { urlParseFullHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\nimport { _DYN_CORRELATION_HEADER_E0, _DYN_LENGTH, _DYN_NAME, _DYN_PATHNAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,\r\n \"https://breeze.aimon.applicationinsights.io\" + DEFAULT_BREEZE_PATH,\r\n \"https://dc-int.services.visualstudio.com\" + DEFAULT_BREEZE_PATH\r\n];\r\nvar _correlationIdPrefix = \"cid-v1:\";\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) !== -1;\r\n}\r\nexport function correlationIdSetPrefix(prefix) {\r\n _correlationIdPrefix = prefix;\r\n}\r\nexport function correlationIdGetPrefix() {\r\n return _correlationIdPrefix;\r\n}\r\n/**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\nexport function correlationIdCanIncludeCorrelationHeader(config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */]) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */][i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n if (requestHost && (strIndexOf(requestHost, \":443\") !== -1 || strIndexOf(requestHost, \":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (urlParseFullHost(requestUrl, true) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n }\r\n if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n return false;\r\n }\r\n var includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n var matchExists_1;\r\n arrForEach(includedDomains, function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n });\r\n if (!matchExists_1) {\r\n return false;\r\n }\r\n }\r\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\n/**\r\n * Combines target appId and target role name from response header.\r\n */\r\nexport function correlationIdGetCorrelationContext(responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = correlationIdGetCorrelationContextValue(responseHeader, RequestHeaders[1 /* eRequestHeaders.requestContextTargetKey */]);\r\n if (correlationId && correlationId !== _correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n}\r\n/**\r\n * Gets key from correlation response header\r\n */\r\nexport function correlationIdGetCorrelationContextValue(responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n for (var i = 0; i < keyValues[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n var keyValue = keyValues[i][_DYN_SPLIT /* @min:%2esplit */](\"=\");\r\n if (keyValue[_DYN_LENGTH /* @min:%2elength */] === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n}\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl[_DYN_PATHNAME /* @min:%2epathname */] != null) {\r\n var pathName = (parsedUrl.pathname[_DYN_LENGTH /* @min:%2elength */] === 0) ? \"/\" : parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = dataSanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n }\r\n else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n return {\r\n target: target,\r\n name: name,\r\n data: data\r\n };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n // returns the window or webworker performance object\r\n var perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n var now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext from an optional telemetryTrace\r\n * @param telemetryTrace - The telemetryTrace instance that is being wrapped\r\n * @param parentCtx - An optional parent distributed trace instance, almost always undefined as this scenario is only used in the case of multiple property handlers.\r\n * @returns A new IDistributedTraceContext instance that is backed by the telemetryTrace or temporary object\r\n */\r\nexport function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {\r\n var trace = telemetryTrace || {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace.traceID;\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace.traceID = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace.parentID;\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace.parentID = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace.traceFlags;\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace.traceFlags = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=Util.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\nexport var StorageType = createEnumStyle({\r\n LocalStorage: 0 /* eStorageType.LocalStorage */,\r\n SessionStorage: 1 /* eStorageType.SessionStorage */\r\n});\r\nexport var DistributedTracingModes = createEnumStyle({\r\n AI: 0 /* eDistributedTracingModes.AI */,\r\n AI_AND_W3C: 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n W3C: 2 /* eDistributedTracingModes.W3C */\r\n});\r\n//# sourceMappingURL=Enums.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nimport { _DYN_REMOVE_ITEM, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n if (utlCanUseLocalStorage()) {\r\n return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType - Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n try {\r\n if (isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n var uid = (new Date)[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n storage.setItem(uid, uid);\r\n var fail = storage.getItem(uid) !== uid;\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](uid);\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n if (utlCanUseSessionStorage()) {\r\n return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Disables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlDisableStorage() {\r\n _canUseLocalStorage = false;\r\n _canUseSessionStorage = false;\r\n}\r\n/**\r\n * Re-enables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlEnableStorage() {\r\n _canUseLocalStorage = utlCanUseLocalStorage(true);\r\n _canUseSessionStorage = utlCanUseSessionStorage(true);\r\n}\r\n/**\r\n * Returns whether LocalStorage can be used, if the reset parameter is passed a true this will override\r\n * any previous disable calls.\r\n * @param reset - Should the usage be reset and determined only based on whether LocalStorage is available\r\n */\r\nexport function utlCanUseLocalStorage(reset) {\r\n if (reset || _canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 1 /* _eInternalMessageId.BrowserCannotReadLocalStorage */, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 3 /* _eInternalMessageId.BrowserCannotWriteLocalStorage */, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 5 /* _eInternalMessageId.BrowserFailedRemovalFromLocalStorage */, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage(reset) {\r\n if (reset || _canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys.push(key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 2 /* _eInternalMessageId.BrowserCannotReadSessionStorage */, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 4 /* _eInternalMessageId.BrowserCannotWriteSessionStorage */, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 6 /* _eInternalMessageId.BrowserFailedRemovalFromSessionStorage */, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=StorageHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrReduce, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { _DYN_INGESTIONENDPOINT, _DYN_LENGTH, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n var kvPairs = connectionString[_DYN_SPLIT /* @min:%2esplit */](_FIELDS_SEPARATOR);\r\n var result = arrReduce(kvPairs, function (fields, kv) {\r\n var kvParts = kv[_DYN_SPLIT /* @min:%2esplit */](_FIELD_KEY_VALUE_SEPARATOR);\r\n if (kvParts[_DYN_LENGTH /* @min:%2elength */] === 2) { // only save fields with valid formats\r\n var key = kvParts[0][_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = kvParts[1];\r\n fields[key] = value;\r\n }\r\n return fields;\r\n }, {});\r\n if (objKeys(result)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // this is a valid connection string, so parse the results\r\n if (result.endpointsuffix) {\r\n // use endpoint suffix where overrides are not provided\r\n var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n // apply the default endpoints\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || DEFAULT_BREEZE_ENDPOINT;\r\n }\r\n return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n parse: parseConnectionString\r\n};\r\n//# sourceMappingURL=ConnectionStringParser.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nimport { _DYN_NAME } from \"../../__DynamicConstants\";\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nvar Envelope = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = this;\r\n var _self = this;\r\n _self.ver = 1;\r\n _self.sampleRate = 100.0;\r\n _self.tags = {};\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self.data = data;\r\n _self.time = toISOString(new Date());\r\n _self.aiDataContract = {\r\n time: 1 /* FieldType.Required */,\r\n iKey: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n sampleRate: function () {\r\n return (_this.sampleRate === 100) ? 4 /* FieldType.Hidden */ : 1 /* FieldType.Required */;\r\n },\r\n tags: 1 /* FieldType.Required */,\r\n data: 1 /* FieldType.Required */\r\n };\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Event = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}());\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, arrMap, isArray, isError, isFunction, isNullOrUndefined, isObject, isString, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_ASSEMBLY, _DYN_EXCEPTIONS, _DYN_FILE_NAME, _DYN_HAS_FULL_STACK, _DYN_IS_MANUAL, _DYN_LENGTH, _DYN_LEVEL, _DYN_LINE, _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_METHOD, _DYN_NAME, _DYN_PARSED_STACK, _DYN_PROBLEM_GROUP, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL, _DYN_SIZE_IN_BYTES, _DYN_SPLIT, _DYN_STRINGIFY, _DYN_TO_STRING, _DYN_TYPE_NAME, _DYN__CREATE_FROM_INTERFA1 } from \"../__DynamicConstants\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar NoMethod = \"\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nfunction _stringify(value, convertToString) {\r\n var result = value;\r\n if (result && !isString(result)) {\r\n if (JSON && JSON[_DYN_STRINGIFY /* @min:%2estringify */]) {\r\n result = JSON[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n result = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n else {\r\n result = \"\" + value;\r\n }\r\n }\r\n }\r\n else {\r\n result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n }\r\n }\r\n return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n var evtMessage = theEvent;\r\n if (theEvent) {\r\n if (evtMessage && !isString(evtMessage)) {\r\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n }\r\n // Make sure the message is a string\r\n if (evtMessage && !isString(evtMessage)) {\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n evtMessage = _stringify(evtMessage, true);\r\n }\r\n if (theEvent[\"filename\"]) {\r\n // Looks like an event object with filename\r\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n }\r\n }\r\n // Automatically add the error type to the message if it does already appear to be present\r\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && strIndexOf(evtMessage || \"\", errorType) === -1) {\r\n evtMessage = errorType + \": \" + evtMessage;\r\n }\r\n return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n var src = errorStack || \"\";\r\n if (!isString(src)) {\r\n if (isString(src[strStack])) {\r\n src = src[strStack];\r\n }\r\n else {\r\n src = \"\" + src;\r\n }\r\n }\r\n var items = src[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n return {\r\n src: src,\r\n obj: items\r\n };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n var stack = [];\r\n var lines = errorMessage[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n for (var lp = 0; lp < lines[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack.push(entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (window && window[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n else if (errorObj[\"reason\"] && errorObj.reason[strStack]) {\r\n // UnhandledPromiseRejection\r\n details = _convertStackObj(errorObj.reason[strStack]);\r\n }\r\n else if (isString(errorObj)) {\r\n details = _convertStackObj(errorObj);\r\n }\r\n else {\r\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n if (isString(errorObj[strErrorSrc])) {\r\n if (evtMessage) {\r\n evtMessage += \"\\n\";\r\n }\r\n evtMessage += \" from \" + errorObj[strErrorSrc];\r\n }\r\n if (evtMessage) {\r\n details = _convertStackObj(evtMessage);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n // and fallback to the callee/caller method\r\n details = _convertStackObj(e);\r\n }\r\n }\r\n return details || {\r\n src: \"\",\r\n obj: null\r\n };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n var stack = \"\";\r\n if (stackDetails) {\r\n if (stackDetails.obj) {\r\n arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\n });\r\n }\r\n else {\r\n stack = stackDetails.src || \"\";\r\n }\r\n }\r\n return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n var parsedStack;\r\n var frames = stack.obj;\r\n if (frames && frames[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n parsedStack = [];\r\n var level_1 = 0;\r\n var totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame[_DYN_TO_STRING /* @min:%2etoString */]();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n parsedStack.push(parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack[_DYN_LENGTH /* @min:%2elength */] - 1;\r\n var size = 0;\r\n var acceptedLeft = left;\r\n var acceptedRight = right;\r\n while (left < right) {\r\n // check size\r\n var lSize = parsedStack[left][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n var rSize = parsedStack[right][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n size += lSize + rSize;\r\n if (size > exceptionParsedStackThreshold) {\r\n // remove extra frames from the middle\r\n var howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n var typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType[_DYN_NAME /* @min:%2ename */] || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor[_DYN_TO_STRING /* @min:%2etoString */]());\r\n typeName = (results && results[_DYN_LENGTH /* @min:%2elength */] > 1) ? results[1] : \"\";\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n }\r\n return typeName;\r\n}\r\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj - The supplied errorObj\r\n */\r\nexport function _formatErrorCode(errorObj) {\r\n if (errorObj) {\r\n try {\r\n if (!isString(errorObj)) {\r\n var errorType = _getErrorType(errorObj);\r\n var result = _stringify(errorObj, false);\r\n if (!result || result === \"{}\") {\r\n if (errorObj[strError]) {\r\n // Looks like an MS Error Event\r\n errorObj = errorObj[strError];\r\n errorType = _getErrorType(errorObj);\r\n }\r\n result = _stringify(errorObj, true);\r\n }\r\n if (strIndexOf(result, errorType) !== 0 && errorType !== \"String\") {\r\n return errorType + \":\" + result;\r\n }\r\n return result;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n // Fallback to just letting the object format itself into a string\r\n return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n exceptions: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = [new _ExceptionDetails(logger, exception, properties)];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n if (id) {\r\n _self.id = id;\r\n }\r\n }\r\n else {\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */] || [];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = exception[_DYN_PROPERTIES /* @min:%2eproperties */];\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = exception[_DYN_MEASUREMENTS /* @min:%2emeasurements */];\r\n if (exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */]) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */];\r\n }\r\n if (exception.id) {\r\n _self.id = exception.id;\r\n }\r\n if (exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */]) {\r\n _self[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */] = exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */];\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n if (!isNullOrUndefined(exception[_DYN_IS_MANUAL /* @min:%2eisManual */])) {\r\n _self[_DYN_IS_MANUAL /* @min:%2eisManual */] = exception[_DYN_IS_MANUAL /* @min:%2eisManual */];\r\n }\r\n }\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var _a;\r\n var errorType = _getErrorType(error || evt || message);\r\n return _a = {},\r\n _a[_DYN_MESSAGE /* @min:message */] = _formatMessage(message, errorType),\r\n _a.url = url,\r\n _a.lineNumber = lineNumber,\r\n _a.columnNumber = columnNumber,\r\n _a.error = _formatErrorCode(error || evt || message),\r\n _a.evt = _formatErrorCode(evt || message),\r\n _a[_DYN_TYPE_NAME /* @min:typeName */] = errorType,\r\n _a.stackDetails = _getStackFromErrorObj(stack || error || evt),\r\n _a.errorSrc = errorSrc,\r\n _a;\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */]\r\n && arrMap(exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */], function (ex) { return _ExceptionDetails[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a;\r\n var _b = this, exceptions = _b.exceptions, properties = _b.properties, measurements = _b.measurements, severityLevel = _b.severityLevel, problemGroup = _b.problemGroup, id = _b.id, isManual = _b.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return _a = {\r\n ver: \"4.0\"\r\n },\r\n _a[_DYN_EXCEPTIONS /* @min:exceptions */] = exceptionDetailsInterface,\r\n _a.severityLevel = severityLevel,\r\n _a.properties = properties,\r\n _a.measurements = measurements,\r\n _a.problemGroup = problemGroup,\r\n _a.id = id,\r\n _a.isManual = isManual,\r\n _a;\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n var _a;\r\n return {\r\n exceptions: [\r\n (_a = {},\r\n _a[_DYN_HAS_FULL_STACK /* @min:hasFullStack */] = true,\r\n _a.message = message,\r\n _a.stack = details,\r\n _a.typeName = typeName,\r\n _a)\r\n ]\r\n };\r\n };\r\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n Exception.dataType = \"ExceptionData\";\r\n Exception.formatError = _formatErrorCode;\r\n return Exception;\r\n}());\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function () {\r\n function _ExceptionDetails(logger, exception, properties) {\r\n this.aiDataContract = {\r\n id: 0 /* FieldType.Default */,\r\n outerId: 0 /* FieldType.Default */,\r\n typeName: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n hasFullStack: 0 /* FieldType.Default */,\r\n stack: 0 /* FieldType.Default */,\r\n parsedStack: 2 /* FieldType.Array */\r\n };\r\n var _self = this;\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n var error = exception;\r\n var evt = error && error.evt;\r\n if (!isError(error)) {\r\n error = error[strError] || evt || error;\r\n }\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, _formatMessage(exception || error, _self[_DYN_TYPE_NAME /* @min:%2etypeName */])) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = _parseStack(stack);\r\n // after parsedStack is inited, iterate over each frame object, sanitize its assembly field\r\n if (isArray(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */])) {\r\n arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame[_DYN_ASSEMBLY /* @min:%2eassembly */] = dataSanitizeString(logger, frame[_DYN_ASSEMBLY /* @min:%2eassembly */]); });\r\n }\r\n _self[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n if (properties) {\r\n properties[_DYN_TYPE_NAME /* @min:%2etypeName */] = properties[_DYN_TYPE_NAME /* @min:%2etypeName */] || _self[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n }\r\n }\r\n else {\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = exception[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = exception[_DYN_MESSAGE /* @min:%2emessage */];\r\n _self[strStack] = exception[strStack];\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] || [];\r\n _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */] = exception[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */];\r\n }\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var _a;\r\n var _self = this;\r\n var parsedStack = _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = (_a = {\r\n id: _self.id,\r\n outerId: _self.outerId,\r\n typeName: _self[_DYN_TYPE_NAME /* @min:%2etypeName */],\r\n message: _self[_DYN_MESSAGE /* @min:%2emessage */],\r\n hasFullStack: _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */],\r\n stack: _self[strStack]\r\n },\r\n _a[_DYN_PARSED_STACK /* @min:parsedStack */] = parsedStack || undefined,\r\n _a);\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](frame); }))\r\n || exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */];\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}());\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function () {\r\n function _StackFrame(sourceFrame, level) {\r\n this.aiDataContract = {\r\n level: 1 /* FieldType.Required */,\r\n method: 1 /* FieldType.Required */,\r\n assembly: 0 /* FieldType.Default */,\r\n fileName: 0 /* FieldType.Default */,\r\n line: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = level;\r\n _self[_DYN_METHOD /* @min:%2emethod */] = NoMethod;\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = strTrim(frame);\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = \"\";\r\n _self[_DYN_LINE /* @min:%2eline */] = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches[_DYN_LENGTH /* @min:%2elength */] >= 5) {\r\n _self[_DYN_METHOD /* @min:%2emethod */] = strTrim(matches[2]) || _self[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = strTrim(matches[4]);\r\n _self[_DYN_LINE /* @min:%2eline */] = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = sourceFrame[_DYN_LEVEL /* @min:%2elevel */];\r\n _self[_DYN_METHOD /* @min:%2emethod */] = sourceFrame[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = sourceFrame[_DYN_ASSEMBLY /* @min:%2eassembly */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = sourceFrame[_DYN_FILE_NAME /* @min:%2efileName */];\r\n _self[_DYN_LINE /* @min:%2eline */] = sourceFrame[_DYN_LINE /* @min:%2eline */];\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n }\r\n _self.sizeInBytes += _self.method[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.fileName[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.assembly[_DYN_LENGTH /* @min:%2elength */];\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] += _StackFrame.baseSize;\r\n _self.sizeInBytes += _self.level.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.line.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n var _self = this;\r\n return {\r\n level: _self[_DYN_LEVEL /* @min:%2elevel */],\r\n method: _self[_DYN_METHOD /* @min:%2emethod */],\r\n assembly: _self[_DYN_ASSEMBLY /* @min:%2eassembly */],\r\n fileName: _self[_DYN_FILE_NAME /* @min:%2efileName */],\r\n line: _self[_DYN_LINE /* @min:%2eline */]\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}());\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n name: 1 /* FieldType.Required */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 1 /* FieldType.Required */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */\r\n };\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = 0 /* DataPointType.Measurement */;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_COUNT, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Metric = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n metrics: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n var dataPoint = new DataPoint();\r\n dataPoint[_DYN_COUNT /* @min:%2ecount */] = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n dataPoint.value = value;\r\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n _self.metrics = [dataPoint];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}());\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar strEmpty = \"\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n return str.toString()[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n totalms = Math.round(totalms);\r\n var ms = strEmpty + totalms % 1000;\r\n var sec = strEmpty + Math.floor(totalms / 1000) % 60;\r\n var min = strEmpty + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = strEmpty + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n ms = ms[_DYN_LENGTH /* @min:%2elength */] === 1 ? \"00\" + ms : ms[_DYN_LENGTH /* @min:%2elength */] === 2 ? \"0\" + ms : ms;\r\n sec = sec[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + sec : sec;\r\n min = min[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + min : min;\r\n hour = hour[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + hour : hour;\r\n return (days > 0 ? days + \".\" : strEmpty) + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n var extension = null;\r\n arrForEach(extensions, function (value) {\r\n if (value.identifier === identifier) {\r\n extension = value;\r\n return -1;\r\n }\r\n });\r\n return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageView = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n id: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = dataSanitizeId(logger, id);\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(durationMs);\r\n }\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}());\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n this.aiDataContract = {\r\n id: 1 /* FieldType.Required */,\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n resultCode: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n success: 0 /* FieldType.Default */,\r\n data: 0 /* FieldType.Default */,\r\n target: 0 /* FieldType.Default */,\r\n type: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 0 /* FieldType.Default */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */,\r\n dependencyKind: 0 /* FieldType.Default */,\r\n dependencySource: 0 /* FieldType.Default */,\r\n commandName: 0 /* FieldType.Default */,\r\n dependencyTypeName: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = id;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(value);\r\n _self.success = success;\r\n _self.resultCode = resultCode + \"\";\r\n _self.type = dataSanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _self.target = dataSanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n _self.target = \"\".concat(_self.target, \" | \").concat(correlationContext);\r\n }\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, dependencyFields[_DYN_NAME /* @min:%2ename */]);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties } from \"./Common/DataSanitizer\";\r\nvar Trace = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n message = message || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, message);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}());\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES, _DYN_RECEIVED_RESPONSE } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageViewPerformance = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n perfTotal: 0 /* FieldType.Default */,\r\n networkConnect: 0 /* FieldType.Default */,\r\n sentRequest: 0 /* FieldType.Default */,\r\n receivedResponse: 0 /* FieldType.Default */,\r\n domProcessing: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _self.domProcessing = cs4BaseData.domProcessing;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = cs4BaseData[_DYN_DURATION /* @min:%2eduration */];\r\n _self.networkConnect = cs4BaseData.networkConnect;\r\n _self.perfTotal = cs4BaseData.perfTotal;\r\n _self[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */] = cs4BaseData[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */];\r\n _self.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}());\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Data = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n baseType: 1 /* FieldType.Required */,\r\n baseData: 1 /* FieldType.Required */\r\n };\r\n this.baseType = baseType;\r\n this.baseData = data;\r\n }\r\n return Data;\r\n}());\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n var aiName = \"ai.\" + baseName + \".\";\r\n return function (name) {\r\n return aiName + name;\r\n };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n __extends(ContextTagKeys, _super);\r\n function ContextTagKeys() {\r\n return _super.call(this) || this;\r\n }\r\n return ContextTagKeys;\r\n}(createClassFromInterface({\r\n applicationVersion: _aiApplication(\"ver\"),\r\n applicationBuild: _aiApplication(\"build\"),\r\n applicationTypeId: _aiApplication(\"typeId\"),\r\n applicationId: _aiApplication(\"applicationId\"),\r\n applicationLayer: _aiApplication(\"layer\"),\r\n deviceId: _aiDevice(\"id\"),\r\n deviceIp: _aiDevice(\"ip\"),\r\n deviceLanguage: _aiDevice(\"language\"),\r\n deviceLocale: _aiDevice(\"locale\"),\r\n deviceModel: _aiDevice(\"model\"),\r\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n deviceNetwork: _aiDevice(\"network\"),\r\n deviceNetworkName: _aiDevice(\"networkName\"),\r\n deviceOEMName: _aiDevice(\"oemName\"),\r\n deviceOS: _aiDevice(\"os\"),\r\n deviceOSVersion: _aiDevice(\"osVersion\"),\r\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n deviceRoleName: _aiDevice(\"roleName\"),\r\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n deviceType: _aiDevice(\"type\"),\r\n deviceMachineName: _aiDevice(\"machineName\"),\r\n deviceVMName: _aiDevice(\"vmName\"),\r\n deviceBrowser: _aiDevice(\"browser\"),\r\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n locationIp: _aiLocation(\"ip\"),\r\n locationCountry: _aiLocation(\"country\"),\r\n locationProvince: _aiLocation(\"province\"),\r\n locationCity: _aiLocation(\"city\"),\r\n operationId: _aiOperation(\"id\"),\r\n operationName: _aiOperation(\"name\"),\r\n operationParentId: _aiOperation(\"parentId\"),\r\n operationRootId: _aiOperation(\"rootId\"),\r\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n sessionId: _aiSession(\"id\"),\r\n sessionIsFirst: _aiSession(\"isFirst\"),\r\n sessionIsNew: _aiSession(\"isNew\"),\r\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n userAccountId: _aiUser(\"accountId\"),\r\n userAgent: _aiUser(\"userAgent\"),\r\n userId: _aiUser(\"id\"),\r\n userStoreRegion: _aiUser(\"storeRegion\"),\r\n userAuthUserId: _aiUser(\"authUserId\"),\r\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n cloudName: _aiCloud(\"name\"),\r\n cloudRole: _aiCloud(\"role\"),\r\n cloudRoleVer: _aiCloud(\"roleVer\"),\r\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n cloudEnvironment: _aiCloud(\"environment\"),\r\n cloudLocation: _aiCloud(\"location\"),\r\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n internalNodeName: _aiInternal(\"nodeName\"),\r\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n internalSnippet: _aiInternal(\"snippet\"),\r\n internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isNullOrUndefined, objForEachKey, throwError, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIkey, strNotSpecified } from \"./Constants\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { _DYN_NAME } from \"./__DynamicConstants\";\r\n/**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\nexport function createTelemetryItem(item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n var _a;\r\n envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n if (isNullOrUndefined(item) ||\r\n isNullOrUndefined(baseType) ||\r\n isNullOrUndefined(envelopeName)) {\r\n throwError(\"Input doesn't contain all required fields\");\r\n }\r\n var iKey = \"\";\r\n if (item[strIkey]) {\r\n iKey = item[strIkey];\r\n delete item[strIkey];\r\n }\r\n var telemetryItem = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = envelopeName,\r\n _a.time = toISOString(new Date()),\r\n _a.iKey = iKey,\r\n _a.ext = systemProperties ? systemProperties : {},\r\n _a.tags = [],\r\n _a.data = {},\r\n _a.baseType = baseType,\r\n _a.baseData = item // Part B\r\n ,\r\n _a);\r\n // Part C\r\n if (!isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, function (prop, value) {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n return telemetryItem;\r\n}\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n function TelemetryItemCreator() {\r\n }\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\n TelemetryItemCreator.create = createTelemetryItem;\r\n return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n//# sourceMappingURL=TelemetryItemCreator.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { ContextTagKeys } from \"./Contracts/ContextTagKeys\";\r\nexport var Extensions = {\r\n UserExt: \"user\",\r\n DeviceExt: \"device\",\r\n TraceExt: \"trace\",\r\n WebExt: \"web\",\r\n AppExt: \"app\",\r\n OSExt: \"os\",\r\n SessionExt: \"ses\",\r\n SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n var event = null;\r\n if (isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n }\r\n else { // Event has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n return event;\r\n}\r\n//# sourceMappingURL=DomHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// Licensed under the\r\nexport { correlationIdSetPrefix, correlationIdGetPrefix, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, correlationIdGetCorrelationContextValue, dateTimeUtilsNow, dateTimeUtilsDuration, isInternalApplicationInsightsEndpoint, createDistributedTraceContextFromTrace } from \"./Util\";\r\nexport { ThrottleMgr } from \"./ThrottleMgr\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/ContextTagKeys\";\r\nexport { dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator, createTelemetryItem } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported, createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 4\r\nexport var _DYN_IS_STORAGE_USE_DISAB0 = \"isStorageUseDisabled\"; // Count: 3\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 6\r\nexport var _DYN_CORE = \"core\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 8\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 13\r\nexport var _DYN_TRACK = \"track\"; // Count: 7\r\nexport var _DYN_TRACK_PAGE_VIEW = \"trackPageView\"; // Count: 4\r\nexport var _DYN_TRACK_PREVIOUS_PAGE_1 = \"trackPreviousPageVisit\"; // Count: 3\r\nexport var _DYN_SEND_PAGE_VIEW_INTER2 = \"sendPageViewInternal\"; // Count: 7\r\nexport var _DYN_SEND_PAGE_VIEW_PERFO3 = \"sendPageViewPerformanceInternal\"; // Count: 3\r\nexport var _DYN_POPULATE_PAGE_VIEW_P4 = \"populatePageViewPerformanceEvent\"; // Count: 3\r\nexport var _DYN_HREF = \"href\"; // Count: 6\r\nexport var _DYN_SEND_EXCEPTION_INTER5 = \"sendExceptionInternal\"; // Count: 2\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 3\r\nexport var _DYN_ERROR = \"error\"; // Count: 5\r\nexport var _DYN__ONERROR = \"_onerror\"; // Count: 3\r\nexport var _DYN_ERROR_SRC = \"errorSrc\"; // Count: 3\r\nexport var _DYN_LINE_NUMBER = \"lineNumber\"; // Count: 5\r\nexport var _DYN_COLUMN_NUMBER = \"columnNumber\"; // Count: 5\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 4\r\nexport var _DYN__CREATE_AUTO_EXCEPTI6 = \"CreateAutoException\"; // Count: 3\r\nexport var _DYN_ADD_TELEMETRY_INITIA7 = \"addTelemetryInitializer\"; // Count: 4\r\nexport var _DYN_OVERRIDE_PAGE_VIEW_D8 = \"overridePageViewDuration\"; // Count: 2\r\nexport var _DYN_DURATION = \"duration\"; // Count: 10\r\nexport var _DYN_AUTO_TRACK_PAGE_VISI9 = \"autoTrackPageVisitTime\"; // Count: 2\r\nexport var _DYN_IS_BROWSER_LINK_TRAC10 = \"isBrowserLinkTrackingEnabled\"; // Count: 2\r\nexport var _DYN_LENGTH = \"length\"; // Count: 5\r\nexport var _DYN_ENABLE_AUTO_ROUTE_TR11 = \"enableAutoRouteTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_UNHANDLED_PRO12 = \"enableUnhandledPromiseRejectionTracking\"; // Count: 2\r\nexport var _DYN_AUTO_UNHANDLED_PROMI13 = \"autoUnhandledPromiseInstrumented\"; // Count: 3\r\nexport var _DYN_IS_PERFORMANCE_TIMIN14 = \"isPerformanceTimingSupported\"; // Count: 2\r\nexport var _DYN_GET_PERFORMANCE_TIMI15 = \"getPerformanceTiming\"; // Count: 2\r\nexport var _DYN_NAVIGATION_START = \"navigationStart\"; // Count: 4\r\nexport var _DYN_SHOULD_COLLECT_DURAT16 = \"shouldCollectDuration\"; // Count: 3\r\nexport var _DYN_IS_PERFORMANCE_TIMIN17 = \"isPerformanceTimingDataReady\"; // Count: 2\r\nexport var _DYN_GET_ENTRIES_BY_TYPE = \"getEntriesByType\"; // Count: 3\r\nexport var _DYN_RESPONSE_START = \"responseStart\"; // Count: 5\r\nexport var _DYN_REQUEST_START = \"requestStart\"; // Count: 3\r\nexport var _DYN_LOAD_EVENT_END = \"loadEventEnd\"; // Count: 4\r\nexport var _DYN_RESPONSE_END = \"responseEnd\"; // Count: 5\r\nexport var _DYN_CONNECT_END = \"connectEnd\"; // Count: 4\r\nexport var _DYN_PAGE_VISIT_START_TIM18 = \"pageVisitStartTime\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, dumpObj, getDocument, getExceptionName, getLocation, isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isWebWorker, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DURATION, _DYN_GET_PERFORMANCE_TIMI15, _DYN_HREF, _DYN_IS_PERFORMANCE_TIMIN14, _DYN_IS_PERFORMANCE_TIMIN17, _DYN_LENGTH, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_SHOULD_COLLECT_DURAT16, _DYN_TRACK_PAGE_VIEW } from \"../../__DynamicConstants\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n dynamicProto(PageViewManager, this, function (_self) {\r\n var queueTimer = null;\r\n var itemQueue = [];\r\n var pageViewPerformanceSent = false;\r\n var _logger;\r\n if (core) {\r\n _logger = core.logger;\r\n }\r\n function _flushChannels(isAsync) {\r\n if (core) {\r\n core.flush(isAsync, function () {\r\n // Event flushed, callback added to prevent promise creation\r\n });\r\n }\r\n }\r\n function _startTimer() {\r\n if (!queueTimer) {\r\n queueTimer = scheduleTimeout((function () {\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (!item()) {\r\n // Not processed so rescheduled\r\n itemQueue.push(item);\r\n }\r\n else {\r\n doFlush = true;\r\n }\r\n });\r\n if (itemQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _startTimer();\r\n }\r\n if (doFlush) {\r\n // We process at least one item so flush the queue\r\n _flushChannels(true);\r\n }\r\n }), 100);\r\n }\r\n }\r\n function _addQueue(cb) {\r\n itemQueue.push(cb);\r\n _startTimer();\r\n }\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n var name = pageView.name;\r\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n var location_1 = getLocation();\r\n uri = pageView.uri = location_1 && location_1[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN14 /* @min:%2eisPerformanceTimingSupported */]()) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n if (!isWebWorker()) {\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 25 /* _eInternalMessageId.NavigationTimingNotSupported */, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n }\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = pageViewPerformanceManager[_DYN_GET_PERFORMANCE_TIMI15 /* @min:%2egetPerformanceTiming */]()[_DYN_NAVIGATION_START /* @min:%2enavigationStart */];\r\n if (start > 0) {\r\n customDuration = dateTimeUtilsDuration(start, +new Date);\r\n if (!pageViewPerformanceManager[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */](customDuration)) {\r\n customDuration = undefined;\r\n }\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration;\r\n if (!isNullOrUndefined(customProperties) &&\r\n !isNullOrUndefined(customProperties[_DYN_DURATION /* @min:%2eduration */])) {\r\n duration = customProperties[_DYN_DURATION /* @min:%2eduration */];\r\n }\r\n if (overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n }\r\n // case 2\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n // Queue the event for processing\r\n _addQueue(function () {\r\n var processed = false;\r\n try {\r\n if (pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN17 /* @min:%2eisPerformanceTimingDataReady */]()) {\r\n processed = true;\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = pageViewPerformance.durationMs;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n if (!pageViewPerformanceSent) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](pageViewPerformance, customProperties);\r\n pageViewPerformanceSent = true;\r\n }\r\n }\r\n }\r\n else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n processed = true;\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = maxDurationLimit;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 38 /* _eInternalMessageId.TrackPVFailedCalc */, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return processed;\r\n });\r\n };\r\n _self.teardown = function (unloadCtx, unloadState) {\r\n if (queueTimer) {\r\n clearInterval(queueTimer);\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush_1 = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (item()) {\r\n doFlush_1 = true;\r\n }\r\n });\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for PageViewManager.prototype.trackPageView.\r\n// Removed Stub for PageViewManager.prototype.teardown.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageViewManager.__ieDyn=1;\n\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, getNavigator, getPerformance, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_CONNECT_END, _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI15, _DYN_IS_PERFORMANCE_TIMIN14, _DYN_IS_PERFORMANCE_TIMIN17, _DYN_LENGTH, _DYN_LOAD_EVENT_END, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_REQUEST_START, _DYN_RESPONSE_END, _DYN_RESPONSE_START, _DYN_SHOULD_COLLECT_DURAT16 } from \"../../__DynamicConstants\";\r\nvar MAX_DURATION_ALLOWED = 3600000; // 1h\r\nvar botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\nfunction _isPerformanceTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && !!perf.timing;\r\n}\r\nfunction _isPerformanceNavigationTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\")[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\nfunction _isPerformanceTimingDataReady() {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */] > 0\r\n && timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */] > 0\r\n && timing[_DYN_REQUEST_START /* @min:%2erequestStart */] > 0\r\n && timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */] > 0\r\n && timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */] > 0\r\n && timing[_DYN_CONNECT_END /* @min:%2econnectEnd */] > 0\r\n && timing.domLoading > 0;\r\n}\r\nfunction _getPerformanceTiming() {\r\n if (_isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n}\r\nfunction _getPerformanceNavigationTiming() {\r\n if (_isPerformanceNavigationTimingSupported()) {\r\n return getPerformance()[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\")[0];\r\n }\r\n return null;\r\n}\r\n/**\r\n* This method tells if given durations should be excluded from collection.\r\n*/\r\nfunction _shouldCollectDuration() {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n isGoogleBot = isGoogleBot || strIndexOf(userAgent.toLowerCase(), botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (durations[i] < 0 || durations[i] >= MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n var _logger = safeGetLogger(core);\r\n dynamicProto(PageViewPerformanceManager, this, function (_self) {\r\n _self[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */] = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\r\n var navigationTiming = _getPerformanceNavigationTiming();\r\n var timing = _getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming[_DYN_DURATION /* @min:%2eduration */];\r\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\r\n network = navigationTiming.startTime === 0 ? navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */] : dateTimeUtilsDuration(navigationTiming.startTime, navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */], navigationTiming[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n network = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */], timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n if (total === 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 10 /* _eInternalMessageId.ErrorPVCalc */, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!_self[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */](total, network, request, response, dom)) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 45 /* _eInternalMessageId.InvalidDurationValue */, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 8 /* _eInternalMessageId.ClientPerformanceMathError */, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n _self[_DYN_GET_PERFORMANCE_TIMI15 /* @min:%2egetPerformanceTiming */] = _getPerformanceTiming;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN14 /* @min:%2eisPerformanceTimingSupported */] = _isPerformanceTimingSupported;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN17 /* @min:%2eisPerformanceTimingDataReady */] = _isPerformanceTimingDataReady;\r\n _self[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */] = _shouldCollectDuration;\r\n });\r\n }\r\n// Removed Stub for PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent.\r\n// Removed Stub for PageViewPerformanceManager.prototype.getPerformanceTiming.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingSupported.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingDataReady.\r\n// Removed Stub for PageViewPerformanceManager.prototype.shouldCollectDuration.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageViewPerformanceManager.__ieDyn=1;\n\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _warnToConsole, dateNow, dumpObj, getJSON, hasJSON, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_PAGE_VISIT_START_TIM18, _DYN_TRACK_PREVIOUS_PAGE_1 } from \"../../__DynamicConstants\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler - Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n var prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n dynamicProto(PageVisitTimeManager, this, function (_self) {\r\n _self[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */] = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName - Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n function restartPageVisitTimer(pageName, pageUrl) {\r\n var prevPageVisitData = null;\r\n try {\r\n prevPageVisitData = stopPageVisitTimer();\r\n if (utlCanUseSessionStorage()) {\r\n if (utlGetSessionStorage(logger, prevPageVisitDataKeyName) != null) {\r\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitDataStr = getJSON().stringify(new PageVisitData(pageName, pageUrl));\r\n utlSetSessionStorage(logger, prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Call to restart failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n function stopPageVisitTimer() {\r\n var prevPageVisitData = null;\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = utlGetSessionStorage(logger, prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData[_DYN_PAGE_VISIT_START_TIM18 /* @min:%2epageVisitStartTime */];\r\n // Remove data from storage since we already used it\r\n utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Stop page visit timer failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n // For backward compatibility\r\n objDefine(_self, \"_logger\", { g: function () { return logger; } });\r\n objDefine(_self, \"pageVisitTimeTrackingHandler\", { g: function () { return pageVisitTimeTrackingHandler; } });\r\n });\r\n }\r\n// Removed Stub for PageVisitTimeManager.prototype.trackPreviousPageVisit.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageVisitTimeManager.__ieDyn=1;\n\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this[_DYN_PAGE_VISIT_START_TIM18 /* @min:%2epageVisitStartTime */] = dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n var _self = this;\r\n var _events = {};\r\n _self.start = function (name) {\r\n if (typeof _events[name] !== \"undefined\") {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 62 /* _eInternalMessageId.StartCalledMoreThanOnce */, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n }\r\n _events[name] = +new Date;\r\n };\r\n _self.stop = function (name, url, properties, measurements) {\r\n var start = _events[name];\r\n if (isNaN(start)) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 63 /* _eInternalMessageId.StopCalledWithoutStart */, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = dateTimeUtilsDuration(start, end);\r\n _self.action(name, url, duration, properties, measurements);\r\n }\r\n delete _events[name];\r\n _events[name] = undefined;\r\n };\r\n }\r\n return Timing;\r\n}());\r\nexport { Timing };\r\n//# sourceMappingURL=Timing.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* ApplicationInsights.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPluginIdentifier, Event as EventTelemetry, Exception, Metric, PageView, PageViewPerformance, PropertiesPluginIdentifier, RemoteDependencyData, Trace, createDistributedTraceContextFromTrace, createDomEvent, createTelemetryItem, dataSanitizeString, isCrossOriginError, strNotSpecified, utlDisableStorage, utlEnableStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentEvent, arrForEach, cfgDfBoolean, cfgDfSet, cfgDfString, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOff, eventOn, generateW3CId, getDocument, getExceptionName, getHistory, getLocation, getWindow, hasHistory, hasWindow, isFunction, isNullOrUndefined, isString, isUndefined, mergeEvtNamespace, onConfigChange, safeGetCookieMgr, strUndefined, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isError, objDeepFreeze, objDefine, scheduleTimeout, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ADD_TELEMETRY_INITIA7, _DYN_AUTO_TRACK_PAGE_VISI9, _DYN_AUTO_UNHANDLED_PROMI13, _DYN_COLUMN_NUMBER, _DYN_CORE, _DYN_DATA_TYPE, _DYN_DIAG_LOG, _DYN_ENABLE_AUTO_ROUTE_TR11, _DYN_ENABLE_UNHANDLED_PRO12, _DYN_ENVELOPE_TYPE, _DYN_ERROR, _DYN_ERROR_SRC, _DYN_EXCEPTION, _DYN_HREF, _DYN_IS_BROWSER_LINK_TRAC10, _DYN_IS_STORAGE_USE_DISAB0, _DYN_LENGTH, _DYN_LINE_NUMBER, _DYN_MESSAGE, _DYN_OVERRIDE_PAGE_VIEW_D8, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_SEND_EXCEPTION_INTER5, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_TO_STRING, _DYN_TRACK, _DYN_TRACK_PAGE_VIEW, _DYN_TRACK_PREVIOUS_PAGE_1, _DYN__ADD_HOOK, _DYN__CREATE_AUTO_EXCEPTI6, _DYN__ONERROR } from \"../__DynamicConstants\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { Timing } from \"./Timing\";\r\nvar strEvent = \"event\";\r\nfunction _dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\nfunction _getReason(error) {\r\n if (error && error.reason) {\r\n var reason = error.reason;\r\n if (!isString(reason) && isFunction(reason[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n return reason[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n return dumpObj(reason);\r\n }\r\n // Pass the original object down which will eventually get evaluated for any message or description\r\n return error || \"\";\r\n}\r\nvar MinMilliSeconds = 60000;\r\nvar defaultValues = objDeepFreeze((_a = {\r\n sessionRenewalMs: cfgDfSet(_chkConfigMilliseconds, 30 * 60 * 1000),\r\n sessionExpirationMs: cfgDfSet(_chkConfigMilliseconds, 24 * 60 * 60 * 1000),\r\n disableExceptionTracking: cfgDfBoolean()\r\n },\r\n _a[_DYN_AUTO_TRACK_PAGE_VISI9 /* @min:autoTrackPageVisitTime */] = cfgDfBoolean(),\r\n _a[_DYN_OVERRIDE_PAGE_VIEW_D8 /* @min:overridePageViewDuration */] = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_UNHANDLED_PRO12 /* @min:enableUnhandledPromiseRejectionTracking */] = cfgDfBoolean(),\r\n _a[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:autoUnhandledPromiseInstrumented */] = false,\r\n _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n _a[_DYN_IS_STORAGE_USE_DISAB0 /* @min:isStorageUseDisabled */] = cfgDfBoolean(),\r\n _a[_DYN_IS_BROWSER_LINK_TRAC10 /* @min:isBrowserLinkTrackingEnabled */] = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_AUTO_ROUTE_TR11 /* @min:enableAutoRouteTracking */] = cfgDfBoolean(),\r\n _a.namePrefix = cfgDfString(),\r\n _a.enableDebug = cfgDfBoolean(),\r\n _a.disableFlushOnBeforeUnload = cfgDfBoolean(),\r\n _a.disableFlushOnUnload = cfgDfBoolean(false, \"disableFlushOnBeforeUnload\"),\r\n _a));\r\nfunction _chkConfigMilliseconds(value, defValue) {\r\n value = value || defValue;\r\n if (value < MinMilliSeconds) {\r\n value = MinMilliSeconds;\r\n }\r\n return +value;\r\n}\r\nfunction _chkSampling(value) {\r\n return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nfunction _updateStorageUsage(extConfig) {\r\n // Not resetting the storage usage as someone may have manually called utlDisableStorage, so this will only\r\n // reset based if the configuration option is provided\r\n if (!isUndefined(extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */])) {\r\n if (extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */]) {\r\n utlDisableStorage();\r\n }\r\n else {\r\n utlEnableStorage();\r\n }\r\n }\r\n}\r\nvar AnalyticsPlugin = /** @class */ (function (_super) {\r\n __extends(AnalyticsPlugin, _super);\r\n function AnalyticsPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n _this.priority = 180; // take from reserved priority range 100- 200\r\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n var _eventTracking;\r\n var _pageTracking;\r\n var _pageViewManager;\r\n var _pageViewPerformanceManager;\r\n var _pageVisitTimeManager;\r\n var _preInitTelemetryInitializers;\r\n var _isBrowserLinkTrackingEnabled;\r\n var _browserLinkInitializerAdded;\r\n var _enableAutoRouteTracking;\r\n var _historyListenerAdded;\r\n var _disableExceptionTracking;\r\n var _autoExceptionInstrumented;\r\n var _enableUnhandledPromiseRejectionTracking;\r\n var _autoUnhandledPromiseInstrumented;\r\n var _extConfig;\r\n var _autoTrackPageVisitTime;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n var _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var _prevUri; // Assigned in the constructor\r\n var _currUri;\r\n var _evtNamespace;\r\n dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {\r\n var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n _initDefaults();\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self[_DYN_CORE /* @min:%2ecore */]);\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n _self.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(event, EventTelemetry[_DYN_DATA_TYPE /* @min:%2edataType */], EventTelemetry[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n _self.startTrackEvent = function (name) {\r\n try {\r\n _eventTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 29 /* _eInternalMessageId.StartTrackEventFailed */, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n _eventTracking.stop(name, undefined, properties, measurements);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 30 /* _eInternalMessageId.StopTrackEventFailed */, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(trace, Trace[_DYN_DATA_TYPE /* @min:%2edataType */], Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param metric - input object argument. Only name and average are mandatory.\r\n * @param } customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(metric, Metric[_DYN_DATA_TYPE /* @min:%2edataType */], Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 36 /* _eInternalMessageId.TrackMetricFailed */, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry - The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties - Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n _pageViewManager[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */](inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\r\n if (_autoTrackPageVisitTime) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView - Page view item to be sent\r\n * @param properties - Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties - System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */] = function (pageView, properties, systemProperties) {\r\n var doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n var telemetryItem = createTelemetryItem(pageView, PageView[_DYN_DATA_TYPE /* @min:%2edataType */], PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n // reset ajaxes counter\r\n _trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */] = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = createTelemetryItem(pageViewPerformance, PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n var inPvp = pageViewPerformance || {};\r\n try {\r\n _pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](inPvp);\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](inPvp, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name - A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n _self.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n _pageTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 31 /* _eInternalMessageId.StartTrackFailed */, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n var loc = getLocation();\r\n url = loc && loc[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n _pageTracking.stop(name, url, properties, measurement);\r\n if (_autoTrackPageVisitTime) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](name, url);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 32 /* _eInternalMessageId.StopTrackFailed */, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */] = function (exception, customProperties, systemProperties) {\r\n // Adding additional edge cases to handle\r\n // - Not passing anything (null / undefined)\r\n var theError = (exception && (exception[_DYN_EXCEPTION /* @min:%2eexception */] || exception[_DYN_ERROR /* @min:%2eerror */])) ||\r\n // - Handle someone calling trackException based of v1 API where the exception was the Error\r\n isError(exception) && exception ||\r\n // - Handles no error being defined and instead of creating a new Error() instance attempt to map so any stacktrace\r\n // is preserved and does not list ApplicationInsights code as the source\r\n { name: (exception && typeof exception), message: exception || strNotSpecified };\r\n // If no exception object was passed assign to an empty object to avoid internal exceptions\r\n exception = exception || {};\r\n var exceptionPartB = new Exception(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), theError, exception.properties || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var telemetryItem = createTelemetryItem(exceptionPartB, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param exception - Object which contains exception to be sent\r\n * @param } customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackException = function (exception, customProperties) {\r\n if (exception && !exception[_DYN_EXCEPTION /* @min:%2eexception */] && exception[_DYN_ERROR /* @min:%2eerror */]) {\r\n exception[_DYN_EXCEPTION /* @min:%2eexception */] = exception[_DYN_ERROR /* @min:%2eerror */];\r\n }\r\n try {\r\n _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */](exception, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 35 /* _eInternalMessageId.TrackExceptionFailed */, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param exception\r\n * @memberof ApplicationInsights\r\n */\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */] = function (exception) {\r\n var error = exception && exception[_DYN_ERROR /* @min:%2eerror */];\r\n var evt = exception && exception.evt;\r\n try {\r\n if (!evt) {\r\n var _window = getWindow();\r\n if (_window) {\r\n evt = _window[strEvent];\r\n }\r\n }\r\n var url = (exception && exception.url) || (getDocument() || {}).URL;\r\n // If no error source is provided assume the default window.onerror handler\r\n var errorSrc = exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] || \"window.onerror@\" + url + \":\" + (exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0) + \":\" + (exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0);\r\n var properties = {\r\n errorSrc: errorSrc,\r\n url: url,\r\n lineNumber: exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0,\r\n columnNumber: exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0,\r\n message: exception[_DYN_MESSAGE /* @min:%2emessage */]\r\n };\r\n if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception[_DYN_ERROR /* @min:%2eerror */])) {\r\n _sendCORSException(Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\", url, exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0, exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0, error, evt, null, errorSrc), properties);\r\n }\r\n else {\r\n if (!exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */]) {\r\n exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] = errorSrc;\r\n }\r\n _self.trackException({ exception: exception, severityLevel: 3 /* eSeverityLevel.Error */ }, properties);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = error ? (error.name + \", \" + error[_DYN_MESSAGE /* @min:%2emessage */]) : \"null\";\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 11 /* _eInternalMessageId.ExceptionWhileLoggingError */, \"_onError threw exception while logging error, error will not be collected: \"\r\n + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n }\r\n };\r\n _self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */] = function (telemetryInitializer) {\r\n if (_self[_DYN_CORE /* @min:%2ecore */]) {\r\n // Just add to the core\r\n return _self[_DYN_CORE /* @min:%2ecore */][_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](telemetryInitializer);\r\n }\r\n // Handle \"pre-initialization\" telemetry initializers (for backward compatibility)\r\n if (!_preInitTelemetryInitializers) {\r\n _preInitTelemetryInitializers = [];\r\n }\r\n _preInitTelemetryInitializers.push(telemetryInitializer);\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n return;\r\n }\r\n if (isNullOrUndefined(core)) {\r\n throwError(\"Error initializing\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n try {\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n if (_preInitTelemetryInitializers) {\r\n arrForEach(_preInitTelemetryInitializers, function (initializer) {\r\n core[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](initializer);\r\n });\r\n _preInitTelemetryInitializers = null;\r\n }\r\n _populateDefaults(config);\r\n _pageViewPerformanceManager = new PageViewPerformanceManager(_self[_DYN_CORE /* @min:%2ecore */]);\r\n _pageViewManager = new PageViewManager(_self, _extConfig.overridePageViewDuration, _self[_DYN_CORE /* @min:%2ecore */], _pageViewPerformanceManager);\r\n _pageVisitTimeManager = new PageVisitTimeManager(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n _eventTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackEvent\");\r\n _eventTracking.action =\r\n function (name, url, duration, properties, measurements) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (!measurements) {\r\n measurements = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n _self.trackEvent({ name: name, properties: properties, measurements: measurements });\r\n };\r\n // initialize page view timing\r\n _pageTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackPageView\");\r\n _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageViewItem, properties);\r\n };\r\n if (hasWindow()) {\r\n _updateExceptionTracking();\r\n _updateLocationChange();\r\n }\r\n }\r\n catch (e) {\r\n // resetting the initialized state because of failure\r\n _self.setInitialized(false);\r\n throw e;\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _pageViewManager && _pageViewManager.teardown(unloadCtx, unloadState);\r\n // Just register to remove all events associated with this namespace\r\n eventOff(window, null, null, _evtNamespace);\r\n _initDefaults();\r\n };\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self[_DYN_CORE /* @min:%2ecore */];\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extConfig = ctx.getExtCfg(identifier, defaultValues);\r\n _autoTrackPageVisitTime = _extConfig[_DYN_AUTO_TRACK_PAGE_VISI9 /* @min:%2eautoTrackPageVisitTime */];\r\n _updateStorageUsage(_extConfig);\r\n // _updateBrowserLinkTracking\r\n _isBrowserLinkTrackingEnabled = _extConfig[_DYN_IS_BROWSER_LINK_TRAC10 /* @min:%2eisBrowserLinkTrackingEnabled */];\r\n _addDefaultTelemetryInitializers();\r\n }));\r\n }\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milliseconds\r\n */\r\n function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n _self.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n }\r\n function _addDefaultTelemetryInitializers() {\r\n if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {\r\n var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (remoteData.target && strIndexOf(remoteData.target, browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](_self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](dropBrowserLinkRequests));\r\n _browserLinkInitializerAdded = true;\r\n }\r\n }\r\n function _sendCORSException(exception, properties) {\r\n var telemetryItem = createTelemetryItem(exception, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n function _updateExceptionTracking() {\r\n var _window = getWindow();\r\n var locn = getLocation(true);\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _disableExceptionTracking = _extConfig.disableExceptionTracking;\r\n if (!_disableExceptionTracking && !_autoExceptionInstrumented && !_extConfig.autoExceptionInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onerror\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {\r\n if (!_disableExceptionTracking && callDetails.rslt !== true) {\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](message, url, lineNumber, columnNumber, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _autoExceptionInstrumented = true;\r\n }\r\n }));\r\n _addUnhandledPromiseRejectionTracking(_window, locn);\r\n }\r\n function _updateLocationChange() {\r\n var win = getWindow();\r\n var locn = getLocation(true);\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _enableAutoRouteTracking = _extConfig[_DYN_ENABLE_AUTO_ROUTE_TR11 /* @min:%2eenableAutoRouteTracking */] === true;\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (win && _enableAutoRouteTracking && !_historyListenerAdded && hasHistory()) {\r\n var _history = getHistory();\r\n if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strUndefined) {\r\n _addHistoryListener(win, _history, locn);\r\n }\r\n }\r\n }));\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n if (!distributedTraceCtx) {\r\n // Fallback when using an older Core and PropertiesPlugin\r\n var properties = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (properties) {\r\n var context = properties.plugin.context;\r\n if (context) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(context.telemetryTrace);\r\n }\r\n }\r\n }\r\n return distributedTraceCtx;\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n function _addHistoryListener(win, history, locn) {\r\n if (_historyListenerAdded) {\r\n return;\r\n }\r\n // Name Prefix is only referenced during the initial initialization and cannot be changed afterwards\r\n var namePrefix = _extConfig.namePrefix || \"\";\r\n function _popstateHandler() {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n function _locationChangeHandler() {\r\n // We always track the changes (if the handler is installed) to handle the feature being disabled between location changes\r\n if (_currUri) {\r\n _prevUri = _currUri;\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n else {\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n if (_enableAutoRouteTracking) {\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n if (distributedTraceCtx) {\r\n distributedTraceCtx.setTraceId(generateW3CId());\r\n var traceLocationName = \"_unknown_\";\r\n if (locn && locn.pathname) {\r\n traceLocationName = locn.pathname + (locn.hash || \"\");\r\n }\r\n // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\r\n distributedTraceCtx.setName(dataSanitizeString(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), traceLocationName));\r\n }\r\n scheduleTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */]({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(_self, _prevUri), _self.autoRoutePVDelay);\r\n }\r\n }\r\n _addHook(InstrumentEvent(history, \"pushState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"pushState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n _addHook(InstrumentEvent(history, \"replaceState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"replaceState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n eventOn(win, namePrefix + \"popstate\", _popstateHandler, _evtNamespace);\r\n eventOn(win, namePrefix + \"locationchange\", _locationChangeHandler, _evtNamespace);\r\n _historyListenerAdded = true;\r\n }\r\n function _addUnhandledPromiseRejectionTracking(_window, _location) {\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _enableUnhandledPromiseRejectionTracking = _extConfig[_DYN_ENABLE_UNHANDLED_PRO12 /* @min:%2eenableUnhandledPromiseRejectionTracking */] === true;\r\n _autoExceptionInstrumented = _autoExceptionInstrumented || _extConfig[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:%2eautoUnhandledPromiseInstrumented */];\r\n if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onunhandledrejection\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, error) {\r\n if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) { // handled could be typeof function\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](_getReason(error), _location ? _location[_DYN_HREF /* @min:%2ehref */] : \"\", 0, 0, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _extConfig[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:%2eautoUnhandledPromiseInstrumented */] = _autoUnhandledPromiseInstrumented = true;\r\n }\r\n }));\r\n }\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {eLoggingSeverity} - The severity of the log message\r\n * @param msgId - {_eInternalLogMessage} - The log message.\r\n */\r\n function _throwInternal(severity, msgId, msg, properties, isUserAct) {\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]().throwInternal(severity, msgId, msg, properties, isUserAct);\r\n }\r\n function _initDefaults() {\r\n _eventTracking = null;\r\n _pageTracking = null;\r\n _pageViewManager = null;\r\n _pageViewPerformanceManager = null;\r\n _pageVisitTimeManager = null;\r\n _preInitTelemetryInitializers = null;\r\n _isBrowserLinkTrackingEnabled = false;\r\n _browserLinkInitializerAdded = false;\r\n _enableAutoRouteTracking = false;\r\n _historyListenerAdded = false;\r\n _disableExceptionTracking = false;\r\n _autoExceptionInstrumented = false;\r\n _enableUnhandledPromiseRejectionTracking = false;\r\n _autoUnhandledPromiseInstrumented = false;\r\n _autoTrackPageVisitTime = false;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var location = getLocation(true);\r\n _prevUri = location && location[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n _currUri = null;\r\n _evtNamespace = null;\r\n _extConfig = null;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _extConfig; }\r\n });\r\n }\r\n // For backward compatibility\r\n objDefine(_self, \"_pageViewManager\", { g: function () { return _pageViewManager; } });\r\n objDefine(_self, \"_pageViewPerformanceManager\", { g: function () { return _pageViewPerformanceManager; } });\r\n objDefine(_self, \"_pageVisitTimeManager\", { g: function () { return _pageVisitTimeManager; } });\r\n objDefine(_self, \"_evtNamespace\", { g: function () { return \".\" + _evtNamespace; } });\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AnalyticsPlugin.prototype.getCookieMgr.\r\n// Removed Stub for AnalyticsPlugin.prototype.processTelemetry.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackTrace.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackMetric.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageView.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewPerformanceInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageViewPerformance.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendExceptionInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackException.\r\n// Removed Stub for AnalyticsPlugin.prototype._onerror.\r\n// Removed Stub for AnalyticsPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for AnalyticsPlugin.prototype.initialize.\r\n AnalyticsPlugin.Version = '3.0.2'; // Not currently used anywhere\r\n return AnalyticsPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { AnalyticsPlugin };\r\n//# sourceMappingURL=AnalyticsPlugin.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TAGS = \"tags\"; // Count: 17\r\nexport var _DYN_DEVICE_TYPE = \"deviceType\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 13\r\nexport var _DYN_NAME = \"name\"; // Count: 8\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 36\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 5\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 10\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 7\r\nexport var _DYN_ON_LINE = \"onLine\"; // Count: 4\r\nexport var _DYN_IS_ONLINE = \"isOnline\"; // Count: 3\r\nexport var _DYN__GET = \"_get\"; // Count: 5\r\nexport var _DYN_ENQUEUE = \"enqueue\"; // Count: 7\r\nexport var _DYN_COUNT = \"count\"; // Count: 6\r\nexport var _DYN_EVENTS_LIMIT_IN_MEM = \"eventsLimitInMem\"; // Count: 2\r\nexport var _DYN_PUSH = \"push\"; // Count: 6\r\nexport var _DYN_EMIT_LINE_DELIMITED_0 = \"emitLineDelimitedJson\"; // Count: 3\r\nexport var _DYN_CLEAR = \"clear\"; // Count: 7\r\nexport var _DYN_BATCH_PAYLOADS = \"batchPayloads\"; // Count: 5\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 3\r\nexport var _DYN_MARK_AS_SENT = \"markAsSent\"; // Count: 7\r\nexport var _DYN_CLEAR_SENT = \"clearSent\"; // Count: 5\r\nexport var _DYN_BUFFER_OVERRIDE = \"bufferOverride\"; // Count: 3\r\nexport var _DYN__BUFFER__KEY = \"BUFFER_KEY\"; // Count: 5\r\nexport var _DYN__SENT__BUFFER__KEY = \"SENT_BUFFER_KEY\"; // Count: 8\r\nexport var _DYN__MAX__BUFFER__SIZE = \"MAX_BUFFER_SIZE\"; // Count: 5\r\nexport var _DYN_TRIGGER_SEND = \"triggerSend\"; // Count: 5\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 16\r\nexport var _DYN__SENDER = \"_sender\"; // Count: 5\r\nexport var _DYN_CUSTOM_HEADERS = \"customHeaders\"; // Count: 3\r\nexport var _DYN_MAX_BATCH_SIZE_IN_BY1 = \"maxBatchSizeInBytes\"; // Count: 2\r\nexport var _DYN_ONUNLOAD_DISABLE_BEA2 = \"onunloadDisableBeacon\"; // Count: 2\r\nexport var _DYN_IS_BEACON_API_DISABL3 = \"isBeaconApiDisabled\"; // Count: 3\r\nexport var _DYN_ENABLE_SESSION_STORA4 = \"enableSessionStorageBuffer\"; // Count: 2\r\nexport var _DYN__BUFFER = \"_buffer\"; // Count: 11\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 2\r\nexport var _DYN_DISABLE_XHR = \"disableXhr\"; // Count: 5\r\nexport var _DYN_ONUNLOAD_DISABLE_FET5 = \"onunloadDisableFetch\"; // Count: 2\r\nexport var _DYN_CONVERT_UNDEFINED = \"convertUndefined\"; // Count: 2\r\nexport var _DYN_MAX_BATCH_INTERVAL = \"maxBatchInterval\"; // Count: 2\r\nexport var _DYN_BASE_TYPE = \"baseType\"; // Count: 4\r\nexport var _DYN_SAMPLE_RATE = \"sampleRate\"; // Count: 4\r\nexport var _DYN__XHR_READY_STATE_CHA6 = \"_xhrReadyStateChange\"; // Count: 2\r\nexport var _DYN__ON_ERROR = \"_onError\"; // Count: 11\r\nexport var _DYN__ON_PARTIAL_SUCCESS = \"_onPartialSuccess\"; // Count: 3\r\nexport var _DYN__ON_SUCCESS = \"_onSuccess\"; // Count: 6\r\nexport var _DYN_ITEMS_ACCEPTED = \"itemsAccepted\"; // Count: 5\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 6\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_EVENTS_SEND_REQUEST = \"eventsSendRequest\"; // Count: 2\r\nexport var _DYN_GET_SAMPLING_SCORE = \"getSamplingScore\"; // Count: 2\r\nexport var _DYN_GET_HASH_CODE_SCORE = \"getHashCodeScore\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { CtxTagKeys, Data, Envelope, Event, Exception, HttpMethod, Metric, PageView, PageViewPerformance, RemoteDependencyData, SampleRate, Trace, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, _warnToConsole, getJSON, hasJSON, isNullOrUndefined, isNumber, isString, isTruthy, objForEachKey, optimizeObject, setValue, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION } from \"./InternalConstants\";\r\nimport { _DYN_DATA, _DYN_DATA_TYPE, _DYN_DEVICE_TYPE, _DYN_ENVELOPE_TYPE, _DYN_LENGTH, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_STRINGIFY, _DYN_TAGS, _DYN_TO_STRING, _DYN_TRACE_ID } from \"./__DynamicConstants\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n // todo: switch to keys from common in this method\r\n var envTags = env[_DYN_TAGS /* @min:%2etags */] = env[_DYN_TAGS /* @min:%2etags */] || {};\r\n var itmExt = item.ext = item.ext || {};\r\n var itmTags = item[_DYN_TAGS /* @min:%2etags */] = item[_DYN_TAGS /* @min:%2etags */] || [];\r\n var extUser = itmExt.user;\r\n if (extUser) {\r\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n }\r\n var extApp = itmExt.app;\r\n if (extApp) {\r\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n }\r\n var extDevice = itmExt.device;\r\n if (extDevice) {\r\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice.deviceClass);\r\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice[_DYN_DEVICE_TYPE /* @min:%2edeviceType */]);\r\n }\r\n var web = item.ext.web;\r\n if (web) {\r\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n var envData = env[_DYN_DATA /* @min:%2edata */] = env[_DYN_DATA /* @min:%2edata */] || {};\r\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n _setValueIf(envProps, \"domain\", web.domain);\r\n _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n }\r\n var extOs = itmExt.os;\r\n if (extOs) {\r\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME /* @min:%2ename */]);\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n var extTrace = itmExt.trace;\r\n if (extTrace) {\r\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace[_DYN_NAME /* @min:%2ename */]));\r\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n var tgs = {};\r\n // deals with tags.push({object})\r\n for (var i = itmTags[_DYN_LENGTH /* @min:%2elength */] - 1; i >= 0; i--) {\r\n var tg = itmTags[i];\r\n objForEachKey(tg, function (key, value) {\r\n tgs[key] = value;\r\n });\r\n itmTags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value (and handles hasOwnProperty)\r\n objForEachKey(itmTags, function (tg, value) {\r\n tgs[tg] = value;\r\n });\r\n var theTags = __assign(__assign({}, envTags), tgs);\r\n if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n theTags[CtxTagKeys.internalSdkVersion] = dataSanitizeString(logger, \"javascript:\".concat(EnvelopeCreator.Version), 64);\r\n }\r\n env[_DYN_TAGS /* @min:%2etags */] = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n if (!isNullOrUndefined(data)) {\r\n objForEachKey(data, function (key, value) {\r\n if (isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n if (!isNullOrUndefined(properties)) {\r\n objForEachKey(properties, function (key, value) {\r\n properties[key] = value || customUndefinedValue;\r\n });\r\n }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\r\n _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n if ((telemetryItem[strBaseData] || {}).startTime) {\r\n envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope[_DYN_NAME /* @min:%2ename */] = envelope[_DYN_NAME /* @min:%2ename */].replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n _extractPartAExtensions(logger, telemetryItem, envelope);\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n telemetryItem[_DYN_TAGS /* @min:%2etags */] = telemetryItem[_DYN_TAGS /* @min:%2etags */] || [];\r\n return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 46 /* _eInternalMessageId.TelemetryEnvelopeInvalid */, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n}\r\nexport var EnvelopeCreator = {\r\n Version: '3.0.2'\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n if (isNullOrUndefined(bd)) {\r\n _warnToConsole(logger, \"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd[_DYN_NAME /* @min:%2ename */], bd[STR_DURATION /* @min:%2eduration */], bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */], remoteDepData);\r\n return _createEnvelope(logger, RemoteDependencyData[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem[strBaseType] !== Event[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n }\r\n if (telemetryItem[strBaseType] === Event[_DYN_DATA_TYPE /* @min:%2edataType */]) { // take collection\r\n customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n }\r\n else { // if its not a known type, convert to custom event\r\n if (telemetryItem[strBaseData]) {\r\n _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n }\r\n }\r\n // Extract root level properties from part C telemetryItem.data\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var eventName = telemetryItem[strBaseData][_DYN_NAME /* @min:%2ename */];\r\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event[_DYN_DATA_TYPE /* @min:%2edataType */], eventData);\r\n return _createEnvelope(logger, Event[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Extract root level properties from part C telemetryItem.data\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n var data = new Data(Exception[_DYN_DATA_TYPE /* @min:%2edataType */], exData);\r\n return _createEnvelope(logger, Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var baseData = telemetryItem[strBaseData];\r\n var props = baseData[strProperties] || {};\r\n var measurements = baseData[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseMetricData = new Metric(logger, baseData[_DYN_NAME /* @min:%2ename */], baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n var data = new Data(Metric[_DYN_DATA_TYPE /* @min:%2edataType */], baseMetricData);\r\n return _createEnvelope(logger, Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var duration;\r\n var baseData = telemetryItem[strBaseData];\r\n if (!isNullOrUndefined(baseData) &&\r\n !isNullOrUndefined(baseData[strProperties]) &&\r\n !isNullOrUndefined(baseData[strProperties][STR_DURATION])) { // from part B properties\r\n duration = baseData[strProperties][STR_DURATION];\r\n delete baseData[strProperties][STR_DURATION];\r\n }\r\n else if (!isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */]) &&\r\n !isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION])) { // from custom properties\r\n duration = telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n delete telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n var currentContextId;\r\n if (((telemetryItem.ext || {}).trace || {})[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n currentContextId = telemetryItem.ext.trace[_DYN_TRACE_ID /* @min:%2etraceID */];\r\n }\r\n var id = bd.id || currentContextId;\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\n // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\n // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd[strProperties])) {\r\n var pageTags = bd[strProperties];\r\n objForEachKey(pageTags, function (key, value) {\r\n properties[key] = value;\r\n });\r\n }\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView[_DYN_DATA_TYPE /* @min:%2edataType */], pageViewData);\r\n return _createEnvelope(logger, PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var bd = telemetryItem[strBaseData];\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri || bd.url;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n var data = new Data(PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var message = telemetryItem[strBaseData].message;\r\n var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n var props = telemetryItem[strBaseData][strProperties] || {};\r\n var measurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n var data = new Data(Trace[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\n//# sourceMappingURL=EnvelopeCreator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { createUniqueNamespace, eventOff, eventOn, getDocument, getNavigator, getWindow, isNullOrUndefined, isUndefined, mergeEvtNamespace } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_IS_ONLINE, _DYN_ON_LINE } from \"./__DynamicConstants\";\r\nfunction _disableEvents(target, evtNamespace) {\r\n eventOff(target, null, null, evtNamespace);\r\n}\r\n/**\r\n * Create a new OfflineListener instance to monitor browser online / offline events\r\n * @param parentEvtNamespace - The parent event namespace to append to any specific events for this instance\r\n */\r\nexport function createOfflineListener(parentEvtNamespace) {\r\n var _a;\r\n var _document = getDocument();\r\n var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\r\n var _isListening = false;\r\n var _onlineStatus = true;\r\n var _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"OfflineListener\"), parentEvtNamespace);\r\n try {\r\n if (_enableEvents(getWindow())) {\r\n _isListening = true;\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (target.ononline) {\r\n if (_enableEvents(target)) {\r\n _isListening = true;\r\n }\r\n }\r\n }\r\n if (_isListening) {\r\n // We are listening to events so lets set the current status rather than assuming we are online #1538\r\n if (_navigator && !isNullOrUndefined(_navigator[_DYN_ON_LINE /* @min:%2eonLine */])) { // navigator.onLine is undefined in react-native\r\n _onlineStatus = _navigator[_DYN_ON_LINE /* @min:%2eonLine */];\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n _isListening = false;\r\n }\r\n function _enableEvents(target) {\r\n var enabled = false;\r\n if (target) {\r\n enabled = eventOn(target, \"online\", _setOnline, _evtNamespace);\r\n if (enabled) {\r\n eventOn(target, \"offline\", _setOffline, _evtNamespace);\r\n }\r\n }\r\n return enabled;\r\n }\r\n function _setOnline() {\r\n _onlineStatus = true;\r\n }\r\n function _setOffline() {\r\n _onlineStatus = false;\r\n }\r\n function _isOnline() {\r\n var result = true;\r\n if (_isListening) {\r\n result = _onlineStatus;\r\n }\r\n else if (_navigator && !isNullOrUndefined(_navigator[_DYN_ON_LINE /* @min:%2eonLine */])) { // navigator.onLine is undefined in react-native\r\n result = _navigator[_DYN_ON_LINE /* @min:%2eonLine */];\r\n }\r\n return result;\r\n }\r\n function _unload() {\r\n var win = getWindow();\r\n if (win && _isListening) {\r\n _disableEvents(win, _evtNamespace);\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!isUndefined(target.ononline)) {\r\n _disableEvents(target, _evtNamespace);\r\n }\r\n }\r\n _isListening = false;\r\n }\r\n }\r\n return _a = {},\r\n _a[_DYN_IS_ONLINE /* @min:isOnline */] = _isOnline,\r\n _a.isListening = function () { return _isListening; },\r\n _a.unload = _unload,\r\n _a;\r\n}\r\n//# sourceMappingURL=Offline.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlGetSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, arrIndexOf, dumpObj, getExceptionName, getJSON, isArray, isFunction, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_BATCH_PAYLOADS, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_PUSH, _DYN_STRINGIFY, _DYN__BUFFER__KEY, _DYN__GET, _DYN__MAX__BUFFER__SIZE, _DYN__SENT__BUFFER__KEY } from \"./__DynamicConstants\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n function BaseSendBuffer(logger, config) {\r\n var _buffer = [];\r\n var _bufferFullMessageSent = false;\r\n this[_DYN__GET /* @min:%2e_get */] = function () {\r\n return _buffer;\r\n };\r\n this._set = function (buffer) {\r\n _buffer = buffer;\r\n return _buffer;\r\n };\r\n dynamicProto(BaseSendBuffer, this, function (_self) {\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= config[_DYN_EVENTS_LIMIT_IN_MEM /* @min:%2eeventsLimitInMem */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 105 /* _eInternalMessageId.InMemoryStorageBufferFull */, \"Maximum in-memory buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _buffer[_DYN_PUSH /* @min:%2epush */](payload);\r\n };\r\n _self[_DYN_COUNT /* @min:%2ecount */] = function () {\r\n return _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.size = function () {\r\n var size = _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < _buffer[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n size += _buffer[lp][_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n if (!config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */]) {\r\n size += 2;\r\n }\r\n return size;\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _buffer = [];\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */] = function (payload) {\r\n if (payload && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var batch = config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */] ?\r\n payload.join(\"\\n\") :\r\n \"[\" + payload.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n var items = _buffer.slice(0);\r\n newLogger = newLogger || logger;\r\n newConfig = newConfig || {};\r\n var newBuffer = !!canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n arrForEach(items, function (payload) {\r\n newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n });\r\n return newBuffer;\r\n };\r\n });\r\n }\r\n// Removed Stub for BaseSendBuffer.prototype.enqueue.\r\n// Removed Stub for BaseSendBuffer.prototype.count.\r\n// Removed Stub for BaseSendBuffer.prototype.size.\r\n// Removed Stub for BaseSendBuffer.prototype.clear.\r\n// Removed Stub for BaseSendBuffer.prototype.getItems.\r\n// Removed Stub for BaseSendBuffer.prototype.batchPayloads.\r\n// Removed Stub for BaseSendBuffer.prototype.createNew.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n BaseSendBuffer.__ieDyn=1;\n\n return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n __extends(ArraySendBuffer, _super);\r\n function ArraySendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n // not supported\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for ArraySendBuffer.prototype.markAsSent.\r\n// Removed Stub for ArraySendBuffer.prototype.clearSent.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n ArraySendBuffer.__ieDyn=1;\n\n return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n __extends(SessionStorageSendBuffer, _super);\r\n function SessionStorageSendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n var _bufferFullMessageSent = false;\r\n //Note: should not use config.namePrefix directly, because it will always refers to the latest namePrefix\r\n var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;\r\n var _a = config[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _a.getItem, setItem = _a.setItem;\r\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */]);\r\n var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n var buffer = _self._set(bufferItems.concat(notDeliveredItems));\r\n // If the buffer has too many items, drop items from the end.\r\n if (buffer[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n buffer[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], buffer);\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Maximum buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _base[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _bufferFullMessageSent = false;\r\n };\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET /* @min:%2e_get */]())));\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements.concat(payload);\r\n if (sentElements[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Sent buffer reached its maximum size: \" + sentElements[_DYN_LENGTH /* @min:%2elength */], true);\r\n sentElements[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n }\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n canUseSessionStorage = !!canUseSessionStorage;\r\n var unsentItems = _self[_DYN__GET /* @min:%2e_get */]().slice(0);\r\n var sentItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]).slice(0);\r\n newLogger = newLogger || logger;\r\n newConfig = newConfig || {};\r\n // to make sure that we do not send duplicated payloads when it is switched back to previous one\r\n _self[_DYN_CLEAR /* @min:%2eclear */]();\r\n var newBuffer = canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n arrForEach(unsentItems, function (payload) {\r\n newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n });\r\n if (canUseSessionStorage) {\r\n // arr buffer will clear all payloads if markAsSent() is called\r\n newBuffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](sentItems);\r\n }\r\n return newBuffer;\r\n };\r\n function _removePayloadsFromBuffer(payloads, buffer) {\r\n var remaining = [];\r\n arrForEach(buffer, function (value) {\r\n if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {\r\n remaining[_DYN_PUSH /* @min:%2epush */](value);\r\n }\r\n });\r\n return remaining;\r\n }\r\n function _getBuffer(key) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = getItem(logger, prefixedKey);\r\n if (bufferJson) {\r\n var buffer_1 = getJSON().parse(bufferJson);\r\n if (isString(buffer_1)) {\r\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n buffer_1 = getJSON().parse(buffer_1);\r\n }\r\n if (buffer_1 && isArray(buffer_1)) {\r\n return buffer_1;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 42 /* _eInternalMessageId.FailedToRestoreStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n function _setBuffer(key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON[_DYN_STRINGIFY /* @min:%2estringify */](buffer);\r\n setItem(logger, prefixedKey, bufferJson);\r\n }\r\n catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n setItem(logger, prefixedKey, JSON[_DYN_STRINGIFY /* @min:%2estringify */]([]));\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for SessionStorageSendBuffer.prototype.enqueue.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clear.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.markAsSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clearSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.createNew.\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\";\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\";\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, getJSON, isArray, isFunction, isObject, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n dynamicProto(Serializer, this, function (_self) {\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n _self.serialize = function (input) {\r\n var output = _serializeObject(input, \"root\");\r\n try {\r\n return getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](output);\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n };\r\n function _serializeObject(source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n return output;\r\n }\r\n if (source[circularReferenceCheck]) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 50 /* _eInternalMessageId.CircularReferenceDetected */, \"Circular reference detected while serializing object\", { name: name }, true);\r\n return output;\r\n }\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = _serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (isArray(source)) {\r\n output = _serializeArray(source, name);\r\n }\r\n else {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n try {\r\n // verify that the object can be stringified\r\n getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n objForEachKey(source.aiDataContract, function (field, contract) {\r\n var isRequired = (isFunction(contract)) ? (contract() & 1 /* FieldType.Required */) : (contract & 1 /* FieldType.Required */);\r\n var isHidden = (isFunction(contract)) ? (contract() & 4 /* FieldType.Hidden */) : (contract & 4 /* FieldType.Hidden */);\r\n var isArray = contract & 2 /* FieldType.Array */;\r\n var isPresent = source[field] !== undefined;\r\n var isObj = isObject(source[field]) && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 24 /* _eInternalMessageId.MissingRequiredFieldSpecification */, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n // If not in debug mode, continue and hope the error is permissible\r\n }\r\n else if (!isHidden) { // Don't serialize hidden fields\r\n var value = void 0;\r\n if (isObj) {\r\n if (isArray) {\r\n // special case; recurse on each object in the source array\r\n value = _serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = _serializeObject(source[field], field);\r\n }\r\n }\r\n else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n });\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n function _serializeArray(sources, name) {\r\n var output;\r\n if (!!sources) {\r\n if (!isArray(sources)) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 54 /* _eInternalMessageId.ItemNotInArray */, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n }\r\n else {\r\n output = [];\r\n for (var i = 0; i < sources[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var source = sources[i];\r\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n output[_DYN_PUSH /* @min:%2epush */](item);\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n function _serializeStringMap(map, expectedType, name) {\r\n var output;\r\n if (map) {\r\n output = {};\r\n objForEachKey(map, function (field, value) {\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else if (!value[_DYN_TO_STRING /* @min:%2etoString */]) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else {\r\n var num = parseFloat(value);\r\n if (isNaN(num)) {\r\n output[field] = \"NaN\";\r\n }\r\n else {\r\n output[field] = num;\r\n }\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, output[field], null, true);\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n });\r\n }\r\n// Removed Stub for Serializer.prototype.serialize.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n Serializer.__ieDyn=1;\n\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_LENGTH } from \"../../__DynamicConstants\";\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n function HashCodeScoreGenerator() {\r\n }\r\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n };\r\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n while (input[_DYN_LENGTH /* @min:%2elength */] < MIN_INPUT_LENGTH) {\r\n input = input.concat(input);\r\n }\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n var hash = 5381;\r\n for (var i = 0; i < input[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n return Math.abs(hash);\r\n };\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nimport { _DYN_GET_HASH_CODE_SCORE, _DYN_GET_SAMPLING_SCORE, _DYN_TAGS, _DYN_TRACE_ID } from \"../../__DynamicConstants\";\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n var _self = this;\r\n var hashCodeGenerator = new HashCodeScoreGenerator();\r\n var keys = new ContextTagKeys();\r\n _self[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */] = function (item) {\r\n var score = 0;\r\n if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.userId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = hashCodeGenerator[_DYN_GET_HASH_CODE_SCORE /* @min:%2egetHashCodeScore */](item.ext.user.id);\r\n }\r\n else if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.operationId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n return score;\r\n };\r\n }\r\n return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_DATA_TYPE, _DYN_GET_SAMPLING_SCORE, _DYN_SAMPLE_RATE } from \"../__DynamicConstants\";\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nvar Sample = /** @class */ (function () {\r\n function Sample(sampleRate, logger) {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n this.INT_MAX_VALUE = 2147483647;\r\n var _logger = logger || safeGetLogger(null);\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n _logger.throwInternal(2 /* eLoggingSeverity.WARNING */, 58 /* _eInternalMessageId.SampleRateOutOfRange */, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n sampleRate = 100;\r\n }\r\n this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n Sample.prototype.isSampledIn = function (envelope) {\r\n var samplingPercentage = this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */]; // 0 - 100\r\n var isSampledIn = false;\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n }\r\n else if (envelope.baseType === Metric[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n isSampledIn = this.samplingScoreGenerator[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */](envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, DisabledPropertyName, Event, Exception, Metric, PageView, PageViewPerformance, ProcessLegacy, RemoteDependencyData, RequestHeaders, SampleRate, Trace, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _throwInternal, _warnToConsole, arrForEach, cfgDfBoolean, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dateNow, dumpObj, getExceptionName, getIEVersion, getJSON, getNavigator, getWindow, isArray, isBeaconsSupported, isFetchSupported, isNullOrUndefined, isXhrSupported, mergeEvtNamespace, objExtend, objKeys, onConfigChange, runTargetUnload, useXDomainRequest } from \"@microsoft/applicationinsights-core-js\";\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { isTruthy, objDeepFreeze, objDefine, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { createOfflineListener } from \"./Offline\";\r\nimport { ArraySendBuffer, SessionStorageSendBuffer } from \"./SendBuffer\";\r\nimport { Serializer } from \"./Serializer\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport { _DYN_BASE_TYPE, _DYN_BATCH_PAYLOADS, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONVERT_UNDEFINED, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_CUSTOM_HEADERS, _DYN_DIAG_LOG, _DYN_DISABLE_XHR, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENABLE_SESSION_STORA4, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_EVENTS_SEND_REQUEST, _DYN_INSTRUMENTATION_KEY, _DYN_IS_BEACON_API_DISABL3, _DYN_IS_ONLINE, _DYN_ITEMS_ACCEPTED, _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_MAX_BATCH_INTERVAL, _DYN_MAX_BATCH_SIZE_IN_BY1, _DYN_ONUNLOAD_DISABLE_BEA2, _DYN_ONUNLOAD_DISABLE_FET5, _DYN_PUSH, _DYN_SAMPLE_RATE, _DYN_SET_REQUEST_HEADER, _DYN_TAGS, _DYN_TRIGGER_SEND, _DYN__BUFFER, _DYN__ON_ERROR, _DYN__ON_PARTIAL_SUCCESS, _DYN__ON_SUCCESS, _DYN__SENDER, _DYN__XHR_READY_STATE_CHA6 } from \"./__DynamicConstants\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nvar defaultAppInsightsChannelConfig = objDeepFreeze((_a = {\r\n // Use the default value (handles empty string in the configuration)\r\n endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)\r\n },\r\n _a[_DYN_EMIT_LINE_DELIMITED_0 /* @min:emitLineDelimitedJson */] = cfgDfBoolean(),\r\n _a[_DYN_MAX_BATCH_INTERVAL /* @min:maxBatchInterval */] = 15000,\r\n _a[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:maxBatchSizeInBytes */] = 102400,\r\n _a.disableTelemetry = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_SESSION_STORA4 /* @min:enableSessionStorageBuffer */] = cfgDfBoolean(true),\r\n _a.isRetryDisabled = cfgDfBoolean(),\r\n _a[_DYN_IS_BEACON_API_DISABL3 /* @min:isBeaconApiDisabled */] = cfgDfBoolean(true),\r\n _a[_DYN_DISABLE_XHR /* @min:disableXhr */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_FET5 /* @min:onunloadDisableFetch */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:onunloadDisableBeacon */] = cfgDfBoolean(),\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n _a.namePrefix = UNDEFINED_VALUE,\r\n _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n _a[_DYN_CUSTOM_HEADERS /* @min:customHeaders */] = UNDEFINED_VALUE,\r\n _a[_DYN_CONVERT_UNDEFINED /* @min:convertUndefined */] = UNDEFINED_VALUE,\r\n _a[_DYN_EVENTS_LIMIT_IN_MEM /* @min:eventsLimitInMem */] = 10000,\r\n _a[_DYN_BUFFER_OVERRIDE /* @min:bufferOverride */] = false,\r\n _a));\r\nfunction _chkSampling(value) {\r\n return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nvar EnvelopeTypeCreator = (_b = {},\r\n _b[Event.dataType] = EventEnvelopeCreator,\r\n _b[Trace.dataType] = TraceEnvelopeCreator,\r\n _b[PageView.dataType] = PageViewEnvelopeCreator,\r\n _b[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n _b[Exception.dataType] = ExceptionEnvelopeCreator,\r\n _b[Metric.dataType] = MetricEnvelopeCreator,\r\n _b[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n _b);\r\nvar Sender = /** @class */ (function (_super) {\r\n __extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 1001;\r\n _this.identifier = BreezeChannelIdentifier;\r\n // Don't set the defaults here, set them in the _initDefaults() as this is also called during unload\r\n var _consecutiveErrors; // How many times in a row a retryable error condition has occurred.\r\n var _retryAt; // The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n var _lastSend; // The time of the last send operation.\r\n var _paused; // Flag indicating that the sending should be paused\r\n var _timeoutHandle; // Handle to the timer for delayed sending of batches of data.\r\n var _serializer;\r\n var _stamp_specific_redirects;\r\n var _headers;\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _fallbackSender; // The sender to use if the payload size is too large\r\n var _syncUnloadSender; // The identified sender to use for the synchronous unload stage\r\n var _offlineListener;\r\n var _evtNamespace;\r\n var _endpointUrl;\r\n var _orgEndpointUrl;\r\n var _maxBatchSizeInBytes;\r\n var _beaconSupported;\r\n var _customHeaders;\r\n var _disableTelemetry;\r\n var _instrumentationKey;\r\n var _convertUndefined;\r\n var _isRetryDisabled;\r\n var _maxBatchInterval;\r\n var _sessionStorageUsed;\r\n var _bufferOverrideUsed;\r\n var _namePrefix;\r\n var _enableSendPromise;\r\n dynamicProto(Sender, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.pause = function () {\r\n _clearScheduledTimer();\r\n _paused = true;\r\n };\r\n _self.resume = function () {\r\n if (_paused) {\r\n _paused = false;\r\n _retryAt = null;\r\n // flush if we have exceeded the max-size already\r\n _checkMaxSize();\r\n _setupTimer();\r\n }\r\n };\r\n _self.flush = function (isAsync, callBack, sendReason) {\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_paused) {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n _clearScheduledTimer();\r\n try {\r\n return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](isAsync, null, sendReason || 1 /* SendRequestReason.ManualFlush */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 22 /* _eInternalMessageId.FlushFailed */, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n };\r\n _self.onunloadFlush = function () {\r\n if (!_paused) {\r\n if (_beaconSupported) {\r\n try {\r\n return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, _doUnloadSend, 2 /* SendRequestReason.Unload */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n else {\r\n _self.flush(false);\r\n }\r\n }\r\n };\r\n _self.addHeader = function (name, value) {\r\n _headers[name] = value;\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n var identifier = _self.identifier;\r\n _serializer = new Serializer(core.logger);\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = 0;\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _stamp_specific_redirects = 0;\r\n var diagLog = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"Sender\"), core.evtNamespace && core.evtNamespace());\r\n _offlineListener = createOfflineListener(_evtNamespace);\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function (details) {\r\n var config = details.cfg;\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n var senderConfig = ctx.getExtCfg(identifier, defaultAppInsightsChannelConfig);\r\n objDefine(_self, \"_senderConfig\", {\r\n g: function () {\r\n return senderConfig;\r\n }\r\n });\r\n // Only update the endpoint if the original config !== the current config\r\n // This is so any redirect endpointUrl is not overwritten\r\n if (_orgEndpointUrl !== senderConfig.endpointUrl) {\r\n if (_orgEndpointUrl) {\r\n // TODO: add doc to remind users to flush before changing endpoint, otherwise all unsent payload will be sent to new endpoint\r\n }\r\n _endpointUrl = _orgEndpointUrl = senderConfig.endpointUrl;\r\n }\r\n if (_customHeaders && _customHeaders !== senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */]) {\r\n // Removing any previously defined custom headers as they have changed\r\n arrForEach(_customHeaders, function (customHeader) {\r\n delete _headers[customHeader.header];\r\n });\r\n }\r\n _maxBatchSizeInBytes = senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */];\r\n _beaconSupported = (senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false || senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false) && isBeaconsSupported();\r\n var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */];\r\n var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA4 /* @min:%2eenableSessionStorageBuffer */] &&\r\n (!!bufferOverride || utlCanUseSessionStorage());\r\n var namePrefix = senderConfig.namePrefix;\r\n //Note: emitLineDelimitedJson and eventsLimitInMem is directly accessed via config in senderBuffer\r\n //Therefore, if canUseSessionStorage is not changed, we do not need to re initialize a new one\r\n var shouldUpdate = (canUseSessionStorage !== _sessionStorageUsed)\r\n || (canUseSessionStorage && (_namePrefix !== namePrefix)) // prefixName is only used in session storage\r\n || (canUseSessionStorage && (_bufferOverrideUsed !== bufferOverride));\r\n if (_self[_DYN__BUFFER /* @min:%2e_buffer */]) {\r\n // case1 (Pre and Now enableSessionStorageBuffer settings are same)\r\n // if namePrefix changes, transfer current buffer to new buffer\r\n // else no action needed\r\n //case2 (Pre and Now enableSessionStorageBuffer settings are changed)\r\n // transfer current buffer to new buffer\r\n if (shouldUpdate) {\r\n try {\r\n _self._buffer = _self._buffer[_DYN_CREATE_NEW /* @min:%2ecreateNew */](diagLog, senderConfig, canUseSessionStorage);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"failed to transfer telemetry to different buffer storage, telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n _checkMaxSize();\r\n }\r\n else {\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = canUseSessionStorage\r\n ? new SessionStorageSendBuffer(diagLog, senderConfig) : new ArraySendBuffer(diagLog, senderConfig);\r\n }\r\n _namePrefix = namePrefix;\r\n _sessionStorageUsed = canUseSessionStorage;\r\n _bufferOverrideUsed = bufferOverride;\r\n _self._sample = new Sample(senderConfig.samplingPercentage, diagLog);\r\n _instrumentationKey = senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n if (!_validateInstrumentationKey(_instrumentationKey, config)) {\r\n _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, \"Invalid Instrumentation key \" + _instrumentationKey);\r\n }\r\n _customHeaders = senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */];\r\n if (!isInternalApplicationInsightsEndpoint(_endpointUrl) && _customHeaders && _customHeaders[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(_customHeaders, function (customHeader) {\r\n _this.addHeader(customHeader.header, customHeader.value);\r\n });\r\n }\r\n else {\r\n _customHeaders = null;\r\n }\r\n _enableSendPromise = senderConfig.enableSendPromise;\r\n var sendPostFunc = null;\r\n if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */] && useXDomainRequest()) {\r\n sendPostFunc = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */] && isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n if (!sendPostFunc && isFetchSupported()) {\r\n sendPostFunc = _fetchSender;\r\n }\r\n // always fallback to XHR\r\n _fallbackSender = sendPostFunc || _xhrSender;\r\n if (!senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] && isBeaconsSupported()) {\r\n // Config is set to always used beacon sending\r\n sendPostFunc = _beaconSender;\r\n }\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = sendPostFunc || _xhrSender;\r\n if (!senderConfig[_DYN_ONUNLOAD_DISABLE_FET5 /* @min:%2eonunloadDisableFetch */] && isFetchSupported(true)) {\r\n // Try and use the fetch with keepalive\r\n _syncUnloadSender = _fetchKeepAliveSender;\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Try and use sendBeacon\r\n _syncUnloadSender = _beaconSender;\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */] && useXDomainRequest()) {\r\n _syncUnloadSender = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */] && isXhrSupported()) {\r\n _syncUnloadSender = _xhrSender;\r\n }\r\n else {\r\n _syncUnloadSender = _fallbackSender;\r\n }\r\n _disableTelemetry = senderConfig.disableTelemetry;\r\n _convertUndefined = senderConfig[_DYN_CONVERT_UNDEFINED /* @min:%2econvertUndefined */] || UNDEFINED_VALUE;\r\n _isRetryDisabled = senderConfig.isRetryDisabled;\r\n _maxBatchInterval = senderConfig[_DYN_MAX_BATCH_INTERVAL /* @min:%2emaxBatchInterval */];\r\n }));\r\n };\r\n _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n var diagLogger = itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n try {\r\n // if master off switch is set, don't send any data\r\n if (_disableTelemetry) {\r\n // Do not send/save data\r\n return;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 7 /* _eInternalMessageId.CannotSendEmptyTelemetry */, \"Cannot send empty telemetry\");\r\n return;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 70 /* _eInternalMessageId.InvalidEvent */, \"Cannot send telemetry without baseData and baseType\");\r\n return;\r\n }\r\n if (!telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n // Default\r\n telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */] = \"EventData\";\r\n }\r\n // ensure a sender was constructed\r\n if (!_self[_DYN__SENDER /* @min:%2e_sender */]) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender was not initialized\");\r\n return;\r\n }\r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!_isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 33 /* _eInternalMessageId.TelemetrySampledAndNotSent */, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] });\r\n return;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */];\r\n }\r\n // construct an envelope that Application Insights endpoint can understand\r\n // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n var defaultEnvelopeIkey = telemetryItem.iKey || _instrumentationKey;\r\n var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, diagLogger, _convertUndefined);\r\n if (!aiEnvelope_1) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 47 /* _eInternalMessageId.CreateEnvelopeError */, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n var doNotSendItem_1 = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem[_DYN_TAGS /* @min:%2etags */] && telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy]) {\r\n arrForEach(telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope_1) === false) {\r\n doNotSendItem_1 = true;\r\n _warnToConsole(diagLogger, \"Telemetry processor check returns false\");\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n delete telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy];\r\n }\r\n if (doNotSendItem_1) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer.serialize(aiEnvelope_1);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n _checkMaxSize(payload);\r\n // enqueue the payload\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n // ensure an invocation timeout is set\r\n _setupTimer();\r\n }\r\n catch (e) {\r\n _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n _self.processNext(telemetryItem, itemCtx);\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n _self[_DYN__XHR_READY_STATE_CHA6 /* @min:%2e_xhrReadyStateChange */] = function (xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n }\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async - {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender - {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */] = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n if (!_paused) {\r\n try {\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n // Send data only if disableTelemetry is false\r\n if (!_disableTelemetry) {\r\n if (buffer[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n var payload = buffer.getItems();\r\n _notifySendRequest(sendReason || 0 /* SendRequestReason.Undefined */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n result = forcedSender.call(_self, payload, async);\r\n }\r\n else {\r\n result = _self[_DYN__SENDER /* @min:%2e_sender */](payload, async);\r\n }\r\n }\r\n // update lastSend time to enable throttling\r\n _lastSend = +new Date;\r\n }\r\n else {\r\n buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n }\r\n _clearScheduledTimer();\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n var ieVer = getIEVersion();\r\n if (!ieVer || ieVer > 9) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _self.onunloadFlush();\r\n runTargetUnload(_offlineListener, false);\r\n _initDefaults();\r\n };\r\n /**\r\n * error handler\r\n */\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */] = function (payload, message, event) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */] = function (payload, results) {\r\n var failed = [];\r\n var retry = [];\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n var errors = results.errors.reverse();\r\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n var error = errors_1[_i];\r\n var extracted = payload.splice(error.index, 1)[0];\r\n if (_isRetriable(error.statusCode)) {\r\n retry[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n }\r\n if (payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]);\r\n }\r\n if (failed[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](failed, _formatErrorMessageXhr(null, [\"partial success\", results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */], \"of\", results.itemsReceived].join(\" \")));\r\n }\r\n if (retry[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _resendPayload(retry);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Partial success. \" +\r\n \"Delivered: \" + payload[_DYN_LENGTH /* @min:%2elength */] + \", Failed: \" + failed[_DYN_LENGTH /* @min:%2elength */] +\r\n \". Will retry to send \" + retry[_DYN_LENGTH /* @min:%2elength */] + \" our of \" + results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] + \" items\");\r\n }\r\n };\r\n /**\r\n * success handler\r\n */\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */] = function (payload, countOfItemsInPayload) {\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (xdr, payload) {\r\n var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, 0);\r\n }\r\n else {\r\n var results = _parseResponse(responseText);\r\n if (results && results.itemsReceived && results.itemsReceived > results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]\r\n && !_isRetryDisabled) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, results);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, _formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n };\r\n function _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\r\n }\r\n function _checkMaxSize(incomingPayload) {\r\n var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n if ((_self[_DYN__BUFFER /* @min:%2e_buffer */].size() + incomingSize) > _maxBatchSizeInBytes) {\r\n if (!_offlineListener || _offlineListener[_DYN_IS_ONLINE /* @min:%2eisOnline */]()) { // only trigger send when currently online\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 10 /* SendRequestReason.MaxBatchSize */);\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n var response = null;\r\n if (!_self._appId) {\r\n response = _parseResponse(res);\r\n if (response && response.appId) {\r\n _self._appId = response.appId;\r\n }\r\n }\r\n if ((status < 200 || status >= 300) && status !== 0) {\r\n // Update End Point url if permanent redirect or moved permanently\r\n // Updates the end point url before retry\r\n if (status === 301 || status === 307 || status === 308) {\r\n if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n return;\r\n }\r\n }\r\n if (!_isRetryDisabled && _isRetriable(status)) {\r\n _resendPayload(payload);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n \"Response code \" + status + \". Will retry to send \" + payload[_DYN_LENGTH /* @min:%2elength */] + \" items.\");\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else if (_offlineListener && !_offlineListener[_DYN_IS_ONLINE /* @min:%2eisOnline */]()) { // offline\r\n // Note: Don't check for status == 0, since adblock gives this code\r\n if (!_isRetryDisabled) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n _resendPayload(payload, offlineBackOffMultiplier);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(!_offlineListener.isOnline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n }\r\n }\r\n else {\r\n // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n _checkAndUpdateEndPointUrl(responseUrl);\r\n if (status === 206) {\r\n if (!response) {\r\n response = _parseResponse(res);\r\n }\r\n if (response && !_isRetryDisabled) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, response);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n function _checkAndUpdateEndPointUrl(responseUrl) {\r\n // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n if (_stamp_specific_redirects >= 10) {\r\n // _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n // _stamp_specific_redirects = 0;\r\n return false;\r\n }\r\n if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n if (responseUrl !== _endpointUrl) {\r\n _endpointUrl = responseUrl;\r\n ++_stamp_specific_redirects;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _doUnloadSend(payload, isAsync) {\r\n if (_syncUnloadSender) {\r\n // We are unloading so always call the sender with sync set to false\r\n _syncUnloadSender(payload, false);\r\n }\r\n else {\r\n // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n _beaconSender(payload, isAsync);\r\n }\r\n }\r\n function _doBeaconSend(payload) {\r\n var nav = getNavigator();\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n var url = _endpointUrl;\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = new Blob([batch], { type: \"text/plain;charset=UTF-8\" });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = nav.sendBeacon(url, plainTextBatch);\r\n if (queued) {\r\n buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n // no response from beaconSender, clear buffer\r\n _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n return queued;\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _beaconSender(payload, isAsync) {\r\n if (isArray(payload) && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n if (!_doBeaconSend(payload)) {\r\n // Failed to send entire payload so try and split data and try to send as much events as possible\r\n var droppedPayload = [];\r\n for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var thePayload = payload[lp];\r\n if (!_doBeaconSend([thePayload])) {\r\n // Can't send anymore, so split the batch and drop the rest\r\n droppedPayload[_DYN_PUSH /* @min:%2epush */](thePayload);\r\n }\r\n }\r\n if (droppedPayload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _fallbackSender && _fallbackSender(droppedPayload, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - Indicates if the request should be sent asynchronously\r\n */\r\n function _xhrSender(payload, isAsync) {\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var xhr = new XMLHttpRequest();\r\n var endPointUrl = _endpointUrl;\r\n try {\r\n xhr[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n xhr.open(\"POST\", endPointUrl, isAsync);\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](\"Content-type\", \"application/json\");\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */], RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */]);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](headerName, _headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () {\r\n _self._xhrReadyStateChange(xhr, payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n if (xhr.readyState === 4) {\r\n resolveFunc && resolveFunc(true);\r\n }\r\n };\r\n xhr.onerror = function (event) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, _formatErrorMessageXhr(xhr), event);\r\n rejectFunc && rejectFunc(event);\r\n };\r\n if (isAsync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n // compose an array of payloads\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n xhr.send(batch);\r\n _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n return thePromise;\r\n }\r\n function _fetchKeepAliveSender(payload, isAsync) {\r\n if (isArray(payload)) {\r\n var payloadSize = payload[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n payloadSize += payload[lp][_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n _doFetchSender(payload, false);\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n _beaconSender(payload, isAsync);\r\n }\r\n else {\r\n // Payload is going to be too big so just try and send via XHR\r\n _fallbackSender && _fallbackSender(payload, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n }\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - not used\r\n */\r\n function _fetchSender(payload, isAsync) {\r\n return _doFetchSender(payload, true);\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - For fetch this identifies whether we are \"unloading\" (false) or a normal request\r\n */\r\n function _doFetchSender(payload, isAsync) {\r\n var _a;\r\n var endPointUrl = _endpointUrl;\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n var plainTextBatch = new Blob([batch], { type: \"application/json\" });\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var requestHeaders = new Headers();\r\n var batchLength = batch[_DYN_LENGTH /* @min:%2elength */];\r\n var ignoreResponse = false;\r\n var responseHandled = false;\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n requestHeaders.append(RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */], RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */]);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n requestHeaders.append(headerName, _headers[headerName]);\r\n });\r\n var init = (_a = {\r\n method: \"POST\",\r\n headers: requestHeaders,\r\n body: plainTextBatch\r\n },\r\n _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n ,\r\n _a);\r\n if (!isAsync) {\r\n init.keepalive = true;\r\n // As a sync request (during unload), it is unlikely that we will get a chance to process the response so\r\n // just like beacon send assume that the events have been accepted and processed\r\n ignoreResponse = true;\r\n _syncFetchPayload += batchLength;\r\n }\r\n var request = new Request(endPointUrl, init);\r\n try {\r\n // Also try and tag the request (just in case the value in init is not copied over)\r\n request[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n if (isAsync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n try {\r\n doAwaitResponse(fetch(request), function (result) {\r\n if (!isAsync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n if (!result.rejected) {\r\n var response_1 = result.value;\r\n /**\r\n * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n * or if anything prevented the request from completing.\r\n */\r\n if (!response_1.ok) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, response_1.statusText);\r\n resolveFunc && resolveFunc(false);\r\n }\r\n else {\r\n doAwaitResponse(response_1.text(), function (resp) {\r\n _checkResponsStatus(response_1.status, payload, response_1.url, payload[_DYN_LENGTH /* @min:%2elength */], response_1.statusText, resp.value || \"\");\r\n resolveFunc && resolveFunc(true);\r\n });\r\n }\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, result.reason && result.reason.message);\r\n rejectFunc && rejectFunc(result.reason);\r\n }\r\n }\r\n });\r\n }\r\n catch (e) {\r\n if (!responseHandled) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n if (ignoreResponse && !responseHandled) {\r\n // Assume success during unload processing as we most likely won't get the response\r\n responseHandled = true;\r\n _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n resolveFunc && resolveFunc(true);\r\n }\r\n return thePromise;\r\n }\r\n /**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\n function _parseResponse(response) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result.itemsReceived && result.itemsReceived >= result[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */] &&\r\n result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH /* @min:%2elength */]) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 43 /* _eInternalMessageId.InvalidBackendResponse */, \"Cannot parse the response. \" + getExceptionName(e), {\r\n response: response\r\n });\r\n }\r\n return null;\r\n }\r\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\r\n function _resendPayload(payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return;\r\n }\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n _consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](item);\r\n }\r\n // setup timer\r\n _setRetryTime(linearFactor);\r\n _setupTimer();\r\n }\r\n /**\r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\r\n function _setRetryTime(linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (_consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n // TODO: Log the backoff time like the C# version does.\r\n var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n _retryAt = retryAfterTimeSpan;\r\n }\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && !_paused) {\r\n var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\r\n var timerValue = Math.max(_maxBatchInterval, retryInterval);\r\n _timeoutHandle = scheduleTimeout(function () {\r\n _timeoutHandle = null;\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 1 /* SendRequestReason.NormalSchedule */);\r\n }, timerValue);\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n _timeoutHandle && _timeoutHandle.cancel();\r\n _timeoutHandle = null;\r\n _retryAt = null;\r\n }\r\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\r\n function _isRetriable(statusCode) {\r\n return statusCode === 401 // Unauthorized\r\n || statusCode === 403 // Forbidden\r\n || statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 502 // Bad Gateway.\r\n || statusCode === 503 // Service unavailable.\r\n || statusCode === 504; // Gateway timeout.\r\n }\r\n function _formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr.status + \",Response:\" + _getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - Indicates if the request should be sent asynchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _xdrSender(payload, isAsync) {\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n // NOTE: xdr may send previous retry payload to new endpoint since we are not able to check response URL\r\n xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };\r\n xdr.onerror = function (event) { return _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, _formatErrorMessageXdr(xdr), event); };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location.protocol || \"\";\r\n if (_endpointUrl.lastIndexOf(hostingProtocol, 0) !== 0) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\");\r\n buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n return;\r\n }\r\n var endpointUrl = _endpointUrl.replace(/^(https?:)/, \"\");\r\n xdr.open(\"POST\", endpointUrl);\r\n // compose an array of payloads\r\n var batch = buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n xdr.send(batch);\r\n buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n }\r\n function _formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + _getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n }\r\n // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n function _getNotifyMgr() {\r\n var func = \"getNotifyMgr\";\r\n if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core[\"_notificationManager\"];\r\n }\r\n function _notifySendRequest(sendRequest, isAsync) {\r\n var manager = _getNotifyMgr();\r\n if (manager && manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */]) {\r\n try {\r\n manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendRequest, isAsync);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 74 /* _eInternalMessageId.NotificationException */, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\r\n function _validateInstrumentationKey(instrumentationKey, config) {\r\n var disableValidation = config.disableInstrumentationKeyValidation;\r\n var disableIKeyValidationFlag = isNullOrUndefined(disableValidation) ? false : disableValidation;\r\n if (disableIKeyValidationFlag) {\r\n return true;\r\n }\r\n var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n var regexp = new RegExp(UUID_Regex);\r\n return regexp.test(instrumentationKey);\r\n }\r\n function _initDefaults() {\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = null;\r\n _self._appId = null;\r\n _self._sample = null;\r\n _headers = {};\r\n _offlineListener = null;\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = null;\r\n _paused = false;\r\n _timeoutHandle = null;\r\n _serializer = null;\r\n _stamp_specific_redirects = 0;\r\n _syncFetchPayload = 0;\r\n _fallbackSender = null;\r\n _syncUnloadSender = null;\r\n _evtNamespace = null;\r\n _endpointUrl = null;\r\n _orgEndpointUrl = null;\r\n _maxBatchSizeInBytes = 0;\r\n _beaconSupported = false;\r\n _customHeaders = null;\r\n _disableTelemetry = false;\r\n _instrumentationKey = null;\r\n _convertUndefined = UNDEFINED_VALUE;\r\n _isRetryDisabled = false;\r\n _sessionStorageUsed = null;\r\n _namePrefix = UNDEFINED_VALUE;\r\n objDefine(_self, \"_senderConfig\", {\r\n g: function () {\r\n return objExtend({}, defaultAppInsightsChannelConfig);\r\n }\r\n });\r\n }\r\n });\r\n return _this;\r\n }\r\n Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n return creator(logger, envelope, convertUndefined);\r\n };\r\n// Removed Stub for Sender.prototype.pause.\r\n// Removed Stub for Sender.prototype.resume.\r\n// Removed Stub for Sender.prototype.flush.\r\n// Removed Stub for Sender.prototype.onunloadFlush.\r\n// Removed Stub for Sender.prototype.initialize.\r\n// Removed Stub for Sender.prototype.processTelemetry.\r\n// Removed Stub for Sender.prototype._xhrReadyStateChange.\r\n// Removed Stub for Sender.prototype.triggerSend.\r\n// Removed Stub for Sender.prototype._onError.\r\n// Removed Stub for Sender.prototype._onPartialSuccess.\r\n// Removed Stub for Sender.prototype._onSuccess.\r\n// Removed Stub for Sender.prototype._xdrOnLoad.\r\n// Removed Stub for Sender.prototype.addHeader.\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\nexport var STR_PROPERTIES = \"properties\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_REQUEST_URL = \"requestUrl\"; // Count: 12\r\nexport var _DYN_INST = \"inst\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 10\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 9\r\nexport var _DYN_SPAN_ID = \"spanID\"; // Count: 8\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 13\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 7\r\nexport var _DYN_ABORTED = \"aborted\"; // Count: 7\r\nexport var _DYN_TRACE_ID0 = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID1 = \"spanId\"; // Count: 5\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 4\r\nexport var _DYN_CORE = \"core\"; // Count: 8\r\nexport var _DYN_INCLUDE_CORRELATION_2 = \"includeCorrelationHeaders\"; // Count: 4\r\nexport var _DYN_GET_ABSOLUTE_URL = \"getAbsoluteUrl\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 6\r\nexport var _DYN_REQUEST_HEADERS = \"requestHeaders\"; // Count: 13\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_TRACK_DEPENDENCY_DAT3 = \"trackDependencyDataInternal\"; // Count: 2\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_ENABLE_REQUEST_HEADE4 = \"enableRequestHeaderTracking\"; // Count: 3\r\nexport var _DYN_ENABLE_AJAX_ERROR_ST5 = \"enableAjaxErrorStatusText\"; // Count: 2\r\nexport var _DYN_ENABLE_AJAX_PERF_TRA6 = \"enableAjaxPerfTracking\"; // Count: 2\r\nexport var _DYN_MAX_AJAX_CALLS_PER_V7 = \"maxAjaxCallsPerView\"; // Count: 2\r\nexport var _DYN_EXCLUDE_REQUEST_FROM8 = \"excludeRequestFromAutoTrackingPatterns\"; // Count: 2\r\nexport var _DYN_ADD_REQUEST_CONTEXT = \"addRequestContext\"; // Count: 2\r\nexport var _DYN_DISABLE_AJAX_TRACKIN9 = \"disableAjaxTracking\"; // Count: 3\r\nexport var _DYN_AJAX_PERF_LOOKUP_DEL10 = \"ajaxPerfLookupDelay\"; // Count: 2\r\nexport var _DYN_DISABLE_FETCH_TRACKI11 = \"disableFetchTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_RESPONSE_HEAD12 = \"enableResponseHeaderTracking\"; // Count: 2\r\nexport var _DYN_STATUS = \"status\"; // Count: 11\r\nexport var _DYN_STATUS_TEXT = \"statusText\"; // Count: 9\r\nexport var _DYN_HEADER_MAP = \"headerMap\"; // Count: 8\r\nexport var _DYN_OPEN_DONE = \"openDone\"; // Count: 3\r\nexport var _DYN_SEND_DONE = \"sendDone\"; // Count: 3\r\nexport var _DYN_REQUEST_SENT_TIME = \"requestSentTime\"; // Count: 9\r\nexport var _DYN_ABORT_DONE = \"abortDone\"; // Count: 3\r\nexport var _DYN_GET_TRACE_ID = \"getTraceId\"; // Count: 3\r\nexport var _DYN_GET_TRACE_FLAGS = \"getTraceFlags\"; // Count: 3\r\nexport var _DYN_METHOD = \"method\"; // Count: 8\r\nexport var _DYN_ERROR_STATUS_TEXT = \"errorStatusText\"; // Count: 3\r\nexport var _DYN_STATE_CHANGE_ATTACHE13 = \"stateChangeAttached\"; // Count: 2\r\nexport var _DYN_RESPONSE_TEXT = \"responseText\"; // Count: 6\r\nexport var _DYN_RESPONSE_FINISHED_TI14 = \"responseFinishedTime\"; // Count: 7\r\nexport var _DYN__CREATE_TRACK_ITEM = \"CreateTrackItem\"; // Count: 3\r\nexport var _DYN_RESPONSE = \"response\"; // Count: 4\r\nexport var _DYN_GET_ALL_RESPONSE_HEA15 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_GET_PART_APROPS = \"getPartAProps\"; // Count: 3\r\nexport var _DYN_PERF_MARK = \"perfMark\"; // Count: 4\r\nexport var _DYN_NAME = \"name\"; // Count: 6\r\nexport var _DYN_PERF_TIMING = \"perfTiming\"; // Count: 3\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 5\r\nexport var _DYN_AJAX_DIAGNOSTICS_MES16 = \"ajaxDiagnosticsMessage\"; // Count: 3\r\nexport var _DYN_CORRELATION_CONTEXT = \"correlationContext\"; // Count: 3\r\nexport var _DYN_AJAX_TOTAL_DURATION = \"ajaxTotalDuration\"; // Count: 3\r\nexport var _DYN_EVENT_TRACE_CTX = \"eventTraceCtx\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { Extensions, dataSanitizeUrl, dateTimeUtilsDuration, msToTimeSpan, urlGetAbsoluteUrl, urlGetCompleteUrl } from \"@microsoft/applicationinsights-common\";\r\nimport { arrForEach, isNullOrUndefined, isNumber, isString, normalizeJsName, objForEachKey, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION, STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_AJAX_TOTAL_DURATION, _DYN_CORRELATION_CONTEXT, _DYN_ERROR_STATUS_TEXT, _DYN_EVENT_TRACE_CTX, _DYN_GET_ABSOLUTE_URL, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADER_MAP, _DYN_LENGTH, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI14, _DYN_SEND_DONE, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE13, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n var result = 0;\r\n var from = resourceEntry[start];\r\n var to = resourceEntry[end];\r\n if (from && to) {\r\n result = dateTimeUtilsDuration(from, to);\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n var result = 0;\r\n var value = _calcPerfDuration(resourceEntry, start, end);\r\n if (value) {\r\n result = _setPerfValue(props, name, msToTimeSpan(value));\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n var strPerf = \"ajaxPerf\";\r\n var result = 0;\r\n if (props && name && value) {\r\n var perfData = props[strPerf] = (props[strPerf] || {});\r\n perfData[name] = value;\r\n result = 1;\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n /*\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n * | -startTime\r\n * | -redirectStart\r\n * | | -redirectEnd\r\n * | | | -fetchStart\r\n * | | | | -domainLookupStart\r\n * | | | | |- domainLookupEnd\r\n * | | | | | | -connectStart\r\n * | | | | | | | -secureConnectionStart\r\n * | | | | | | | | -connectEnd\r\n * | | | | | | | | | -requestStart\r\n * | | | | | | | | | | | -responseStart\r\n * | | | | | | | | | | | | | -responseEnd\r\n * +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n * |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n * |-------------------networkConnect----------------|\r\n * | |---------sentRequest--------|\r\n * |------------------------------------perfTotal-----------------------------------|\r\n */\r\n var resourceEntry = ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */];\r\n var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n var propsSet = 0;\r\n var strName = \"name\";\r\n var strStart = \"Start\";\r\n var strEnd = \"End\";\r\n var strDomainLookup = \"domainLookup\";\r\n var strConnect = \"connect\";\r\n var strRedirect = \"redirect\";\r\n var strRequest = \"request\";\r\n var strResponse = \"response\";\r\n var strStartTime = \"startTime\";\r\n var strDomainLookupStart = strDomainLookup + strStart;\r\n var strDomainLookupEnd = strDomainLookup + strEnd;\r\n var strConnectStart = strConnect + strStart;\r\n var strConnectEnd = strConnect + strEnd;\r\n var strRequestStart = strRequest + strStart;\r\n var strRequestEnd = strRequest + strEnd;\r\n var strResponseStart = strResponse + strStart;\r\n var strResponseEnd = strResponse + strEnd;\r\n var strRedirectStart = strRedirect + strStart;\r\n var strRedirectEnd = strRedirect = strEnd;\r\n var strTransferSize = \"transferSize\";\r\n var strEncodedBodySize = \"encodedBodySize\";\r\n var strDecodedBodySize = \"decodedBodySize\";\r\n var strServerTiming = \"serverTiming\";\r\n if (resourceEntry) {\r\n // redirect\r\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n // domainLookup\r\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n // connect\r\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n // request\r\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n // response\r\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n // Network connection time\r\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n // Sent Request\r\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n // PerfTotal / Duration\r\n var duration = resourceEntry[STR_DURATION /* @min:%2eduration */];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, STR_DURATION, duration);\r\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n var serverTiming = resourceEntry[strServerTiming];\r\n if (serverTiming) {\r\n var server_1 = {};\r\n arrForEach(serverTiming, function (value, idx) {\r\n var name = normalizeJsName(value[strName] || \"\" + idx);\r\n var newValue = server_1[name] || {};\r\n objForEachKey(value, function (key, val) {\r\n if (key !== strName && isString(val) || isNumber(val)) {\r\n if (newValue[key]) {\r\n val = newValue[key] + \";\" + val;\r\n }\r\n if (val || !isString(val)) {\r\n // Only set the value if it has a value and it's not an empty string\r\n newValue[key] = val;\r\n }\r\n }\r\n });\r\n server_1[name] = newValue;\r\n });\r\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n }\r\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n }\r\n else {\r\n if (ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */]) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = props;\r\n }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n var self = this;\r\n self[_DYN_OPEN_DONE /* @min:%2eopenDone */] = false;\r\n self.setRequestHeaderDone = false;\r\n self[_DYN_SEND_DONE /* @min:%2esendDone */] = false;\r\n self[_DYN_ABORT_DONE /* @min:%2eabortDone */] = false;\r\n // True, if onreadyStateChangeCallback function attached to xhr, otherwise false\r\n self[_DYN_STATE_CHANGE_ATTACHE13 /* @min:%2estateChangeAttached */] = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceId, spanId, logger, traceCtx) {\r\n var _a;\r\n var self = this;\r\n var _logger = logger;\r\n var strResponseText = \"responseText\";\r\n // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n // this.XXXX = null\r\n self[_DYN_PERF_MARK /* @min:%2eperfMark */] = null;\r\n self.completed = false;\r\n self.requestHeadersSize = null;\r\n self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = null;\r\n self.responseReceivingDuration = null;\r\n self.callbackDuration = null;\r\n self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] = null;\r\n self[_DYN_ABORTED /* @min:%2eaborted */] = 0;\r\n self.pageUrl = null;\r\n self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = null;\r\n self.requestSize = 0;\r\n self[_DYN_METHOD /* @min:%2emethod */] = null;\r\n self[_DYN_STATUS /* @min:%2estatus */] = null;\r\n self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = null;\r\n self.responseStartedTime = null;\r\n self[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = null;\r\n self.callbackFinishedTime = null;\r\n self.endTime = null;\r\n self.xhrMonitoringState = new XHRMonitoringState();\r\n self.clientFailure = 0;\r\n self[_DYN_TRACE_ID /* @min:%2etraceID */] = traceId;\r\n self[_DYN_SPAN_ID /* @min:%2espanID */] = spanId;\r\n self[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx === null || traceCtx === void 0 ? void 0 : traceCtx.getTraceFlags();\r\n if (traceCtx) {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = (_a = {},\r\n _a[_DYN_TRACE_ID0 /* @min:traceId */] = traceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */](),\r\n _a[_DYN_SPAN_ID1 /* @min:spanId */] = traceCtx.getSpanId(),\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = traceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */](),\r\n _a);\r\n }\r\n else {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = null;\r\n }\r\n dynamicProto(ajaxRecord, self, function (self) {\r\n self.getAbsoluteUrl = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? urlGetAbsoluteUrl(self[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) : null;\r\n };\r\n self.getPathName = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self[_DYN_METHOD /* @min:%2emethod */], self[_DYN_REQUEST_URL /* @min:%2erequestUrl */])) : null;\r\n };\r\n self[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */] = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n var _a;\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n if (self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n id: \"|\" + self[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + self[_DYN_SPAN_ID /* @min:%2espanID */],\r\n target: self[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */]()\r\n },\r\n _a[_DYN_NAME /* @min:name */] = self.getPathName(),\r\n _a.type = ajaxType,\r\n _a[_DYN_START_TIME /* @min:startTime */] = null,\r\n _a.duration = self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */],\r\n _a.success = (+(self[_DYN_STATUS /* @min:%2estatus */])) >= 200 && (+(self[_DYN_STATUS /* @min:%2estatus */])) < 400,\r\n _a.responseCode = (+(self[_DYN_STATUS /* @min:%2estatus */])),\r\n _a[STR_PROPERTIES] = { HttpMethod: self[_DYN_METHOD /* @min:%2emethod */] },\r\n _a);\r\n var props = dependency[STR_PROPERTIES];\r\n if (self[_DYN_ABORTED /* @min:%2eaborted */]) {\r\n props[_DYN_ABORTED /* @min:%2eaborted */] = true;\r\n }\r\n if (self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]) {\r\n // Set the correct dependency start time\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */].setTime(self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]);\r\n }\r\n // Add Ajax perf details if available\r\n _populatePerfData(self, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (objKeys(self.requestHeaders)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */];\r\n }\r\n }\r\n if (getResponse) {\r\n var response = getResponse();\r\n if (response) {\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = response[_DYN_CORRELATION_CONTEXT /* @min:%2ecorrelationContext */];\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response[_DYN_HEADER_MAP /* @min:%2eheaderMap */]) {\r\n if (objKeys(response.headerMap)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props.responseHeaders = response[_DYN_HEADER_MAP /* @min:%2eheaderMap */];\r\n }\r\n }\r\n if (self[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */]) {\r\n if (self[_DYN_STATUS /* @min:%2estatus */] >= 400) {\r\n var responseType = response.type;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n props.responseText = response.responseText ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + response[strResponseText] : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n if (responseType === \"json\") {\r\n props.responseText = response.response ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + JSON.stringify(response[_DYN_RESPONSE /* @min:%2eresponse */]) : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n }\r\n else if (self[_DYN_STATUS /* @min:%2estatus */] === 0) {\r\n props.responseText = response[_DYN_STATUS_TEXT /* @min:%2estatusText */] || \"\";\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n };\r\n self[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */] = function () {\r\n var _a;\r\n var partA = null;\r\n var traceCtx = self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */];\r\n if (traceCtx && (traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */] || traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */])) {\r\n partA = {};\r\n var traceExt = partA[Extensions.TraceExt] = (_a = {},\r\n _a[_DYN_TRACE_ID /* @min:traceID */] = traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */],\r\n _a.parentID = traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */],\r\n _a);\r\n if (!isNullOrUndefined(traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */])) {\r\n traceExt[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n }\r\n }\r\n return partA;\r\n };\r\n });\r\n }\r\n// Removed Stub for ajaxRecord.prototype.getAbsoluteUrl.\r\n// Removed Stub for ajaxRecord.prototype.getPathName.\r\n// Removed Stub for ajaxRecord.prototype.CreateTrackItem.\r\n// Removed Stub for ajaxRecord.prototype.getPartAProps.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n ajaxRecord.__ieDyn=1;\n\n return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n//# sourceMappingURL=ajaxRecord.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { DisabledPropertyName, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, createDistributedTraceContextFromTrace, createTelemetryItem, createTraceParent, dateTimeUtilsNow, formatTraceParent, isInternalApplicationInsightsEndpoint } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentFunc, InstrumentProto, _throwInternal, arrForEach, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOn, generateW3CId, getExceptionName, getGlobal, getIEVersion, getLocation, getPerformance, isFunction, isNullOrUndefined, isString, isXhrSupported, mergeEvtNamespace, onConfigChange, strPrototype, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isWebWorker, objFreeze, scheduleTimeout, strIndexOf, strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_ADD_REQUEST_CONTEXT, _DYN_AJAX_DIAGNOSTICS_MES16, _DYN_AJAX_PERF_LOOKUP_DEL10, _DYN_CONTEXT, _DYN_CORE, _DYN_CORRELATION_CONTEXT, _DYN_DISABLE_AJAX_TRACKIN9, _DYN_DISABLE_FETCH_TRACKI11, _DYN_ENABLE_AJAX_ERROR_ST5, _DYN_ENABLE_AJAX_PERF_TRA6, _DYN_ENABLE_REQUEST_HEADE4, _DYN_ENABLE_RESPONSE_HEAD12, _DYN_ERROR_STATUS_TEXT, _DYN_EXCEPTION, _DYN_EXCLUDE_REQUEST_FROM8, _DYN_GET_ABSOLUTE_URL, _DYN_GET_ALL_RESPONSE_HEA15, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADERS, _DYN_HEADER_MAP, _DYN_INCLUDE_CORRELATION_2, _DYN_INST, _DYN_LENGTH, _DYN_MAX_AJAX_CALLS_PER_V7, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI14, _DYN_RESPONSE_TEXT, _DYN_SEND_DONE, _DYN_SET_REQUEST_HEADER, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE13, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN_TRACK_DEPENDENCY_DAT3, _DYN__ADD_HOOK, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\nimport { ajaxRecord } from \"./ajaxRecord\";\r\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar strAjaxData = \"ajaxData\";\r\nvar STR_FETCH = \"fetch\";\r\nvar ERROR_HEADER = \"Failed to monitor XMLHttpRequest\";\r\nvar ERROR_PREFIX = \", monitoring data for this ajax call \";\r\nvar ERROR_POSTFIX = ERROR_PREFIX + \"may be incorrect.\";\r\nvar ERROR_NOT_SENT = ERROR_PREFIX + \"won't be sent.\";\r\nvar CORRELATION_HEADER_ERROR = \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\";\r\nvar CUSTOM_REQUEST_CONTEXT_ERROR = \"Failed to add custom defined request context as configured call back may missing a null check.\";\r\nvar FAILED_TO_CALCULATE_DURATION_ERROR = \"Failed to calculate the duration of the \";\r\n// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\r\nvar _markCount = 0;\r\n/** @Ignore */\r\nfunction _supportsFetch() {\r\n var _global = getGlobal();\r\n if (!_global ||\r\n isNullOrUndefined(_global.Request) ||\r\n isNullOrUndefined(_global.Request[strPrototype]) ||\r\n isNullOrUndefined(_global[STR_FETCH])) {\r\n return null;\r\n }\r\n return _global[STR_FETCH];\r\n}\r\n/**\r\n * Determines whether ajax monitoring can be enabled on this document\r\n * @returns True if Ajax monitoring is supported on this page, otherwise false\r\n * @ignore\r\n */\r\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance) {\r\n var _a;\r\n var result = false;\r\n if (isXhrSupported()) {\r\n var proto = XMLHttpRequest[strPrototype];\r\n result = !isNullOrUndefined(proto) &&\r\n !isNullOrUndefined(proto.open) && // eslint-disable-line security/detect-non-literal-fs-filename -- false positive\r\n !isNullOrUndefined(proto.send) &&\r\n !isNullOrUndefined(proto.abort);\r\n }\r\n var ieVer = getIEVersion();\r\n if (ieVer && ieVer < 9) {\r\n result = false;\r\n }\r\n if (result) {\r\n // Disable if the XmlHttpRequest can't be extended or hooked\r\n try {\r\n var xhr = new XMLHttpRequest();\r\n xhr[strAjaxData] = {};\r\n // Check that we can update the prototype\r\n var theOpen = XMLHttpRequest[strPrototype].open;\r\n XMLHttpRequest[strPrototype].open = theOpen;\r\n }\r\n catch (e) {\r\n // We can't decorate the xhr object so disable monitoring\r\n result = false;\r\n _throwInternalCritical(ajaxMonitorInstance, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", (_a = {},\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _a));\r\n }\r\n }\r\n return result;\r\n}\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr) {\r\n var result = \"\";\r\n try {\r\n if (xhr && xhr[strAjaxData] && xhr[strAjaxData][_DYN_REQUEST_URL /* @min:%2erequestUrl */]) {\r\n result += \"(url: '\" + xhr[strAjaxData][_DYN_REQUEST_URL /* @min:%2erequestUrl */] + \"')\";\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 1 /* eLoggingSeverity.CRITICAL */, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 2 /* eLoggingSeverity.WARNING */, msgId, message, properties, isUserAct);\r\n}\r\n/** @Ignore */\r\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\r\n // tslint:disable-next-line\r\n return function (args) {\r\n var _a;\r\n _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, (_a = {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(args[_DYN_INST /* @min:%2einst */])\r\n },\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(args.err),\r\n _a));\r\n };\r\n}\r\nfunction _indexOf(value, match) {\r\n if (value && match) {\r\n return strIndexOf(value, match);\r\n }\r\n return -1;\r\n}\r\nfunction _addHandler(container, id, theFunc) {\r\n var theHandler = {\r\n id: id,\r\n fn: theFunc\r\n };\r\n container.push(theHandler);\r\n return {\r\n remove: function () {\r\n arrForEach(container, function (initializer, idx) {\r\n if (initializer.id === theHandler.id) {\r\n container.splice(idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n}\r\nfunction _processDependencyContainer(core, container, details, message) {\r\n var result = true;\r\n arrForEach(container, function (theFunc, idx) {\r\n try {\r\n if (theFunc.fn.call(null, details) === false) {\r\n result = false;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(core && core.logger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Dependency \" + message + \" [#\" + idx + \"] failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n return result;\r\n}\r\nfunction _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {\r\n var _a;\r\n var initializersCount = listeners[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = (_a = {},\r\n _a[_DYN_CORE /* @min:core */] = core,\r\n _a.xhr = xhr,\r\n _a.input = input,\r\n _a.init = init,\r\n _a.traceId = ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */],\r\n _a.spanId = ajaxData[_DYN_SPAN_ID /* @min:%2espanID */],\r\n _a.traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */],\r\n _a.context = ajaxData[_DYN_CONTEXT /* @min:%2econtext */] || {},\r\n _a.aborted = !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */],\r\n _a);\r\n _processDependencyContainer(core, listeners, details, \"listener\");\r\n ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] = details[_DYN_TRACE_ID0 /* @min:%2etraceId */];\r\n ajaxData[_DYN_SPAN_ID /* @min:%2espanID */] = details[_DYN_SPAN_ID1 /* @min:%2espanId */];\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = details[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n ajaxData[_DYN_CONTEXT /* @min:%2econtext */] = details[_DYN_CONTEXT /* @min:%2econtext */];\r\n }\r\n}\r\nvar BLOB_CORE = \"*.blob.core.\";\r\nexport var DfltAjaxCorrelationHeaderExDomains = objFreeze([\r\n BLOB_CORE + \"windows.net\",\r\n BLOB_CORE + \"chinacloudapi.cn\",\r\n BLOB_CORE + \"cloudapi.de\",\r\n BLOB_CORE + \"usgovcloudapi.net\"\r\n]);\r\nvar _internalExcludeEndpoints = [\r\n /https:\\/\\/[^\\/]*(\\.pipe\\.aria|aria\\.pipe|events\\.data|collector\\.azure)\\.[^\\/]+\\/(OneCollector\\/1|Collector\\/3)\\.0/i\r\n];\r\nvar _defaultConfig = objFreeze((_a = {},\r\n _a[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:maxAjaxCallsPerView */] = 500,\r\n _a[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:disableAjaxTracking */] = false,\r\n _a[_DYN_DISABLE_FETCH_TRACKI11 /* @min:disableFetchTracking */] = false,\r\n _a[_DYN_EXCLUDE_REQUEST_FROM8 /* @min:excludeRequestFromAutoTrackingPatterns */] = undefined,\r\n _a.disableCorrelationHeaders = false,\r\n _a.distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n _a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,\r\n _a.correlationHeaderDomains = undefined,\r\n _a.correlationHeaderExcludePatterns = undefined,\r\n _a.appId = undefined,\r\n _a.enableCorsCorrelation = false,\r\n _a[_DYN_ENABLE_REQUEST_HEADE4 /* @min:enableRequestHeaderTracking */] = false,\r\n _a[_DYN_ENABLE_RESPONSE_HEAD12 /* @min:enableResponseHeaderTracking */] = false,\r\n _a[_DYN_ENABLE_AJAX_ERROR_ST5 /* @min:enableAjaxErrorStatusText */] = false,\r\n _a[_DYN_ENABLE_AJAX_PERF_TRA6 /* @min:enableAjaxPerfTracking */] = false,\r\n _a.maxAjaxPerfLookupAttempts = 3,\r\n _a[_DYN_AJAX_PERF_LOOKUP_DEL10 /* @min:ajaxPerfLookupDelay */] = 25,\r\n _a.ignoreHeaders = [\r\n \"Authorization\",\r\n \"X-API-Key\",\r\n \"WWW-Authenticate\"\r\n ],\r\n _a[_DYN_ADD_REQUEST_CONTEXT /* @min:addRequestContext */] = undefined,\r\n _a.addIntEndpoints = true,\r\n _a));\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n __extends(AjaxMonitor, _super);\r\n function AjaxMonitor() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AjaxMonitor.identifier;\r\n _this.priority = 120;\r\n var _fetchInitialized; // fetch monitoring initialized\r\n var _xhrInitialized; // XHR monitoring initialized\r\n var _currentWindowHost;\r\n var _extensionConfig;\r\n var _enableRequestHeaderTracking;\r\n var _enableAjaxErrorStatusText;\r\n var _trackAjaxAttempts;\r\n var _context;\r\n var _isUsingW3CHeaders;\r\n var _isUsingAIHeaders;\r\n var _markPrefix;\r\n var _enableAjaxPerfTracking;\r\n var _maxAjaxCallsPerView;\r\n var _enableResponseHeaderTracking;\r\n var _disabledUrls;\r\n var _disableAjaxTracking;\r\n var _disableFetchTracking;\r\n var _excludeRequestFromAutoTrackingPatterns;\r\n var _addRequestContext;\r\n var _evtNamespace;\r\n var _dependencyHandlerId;\r\n var _dependencyListeners;\r\n var _dependencyInitializers;\r\n var _ignoreHeaders;\r\n var _maxAjaxPerfLookupAttempts;\r\n var _ajaxPerfLookupDelay;\r\n var _distributedTracingMode;\r\n var _appId;\r\n var _polyfillInitialized;\r\n dynamicProto(AjaxMonitor, _this, function (_self, _base) {\r\n var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"ajax\"), core && core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n _instrumentXhr();\r\n _instrumentFetch();\r\n _populateContext();\r\n }\r\n };\r\n _self._doTeardown = function () {\r\n _initDefaults();\r\n };\r\n _self.trackDependencyData = function (dependency, properties) {\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], null, dependency, properties);\r\n };\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */] = function (ajaxData, input, init, xhr) {\r\n // Test Hook to allow the overriding of the location host\r\n var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\r\n _processDependencyListeners(_dependencyListeners, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, xhr, input, init);\r\n if (input) { // Fetch\r\n if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (!init) {\r\n init = {};\r\n }\r\n // init headers override original request headers\r\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n // not using original request headers will result in them being lost\r\n var headers = new Headers(init[_DYN_HEADERS /* @min:%2eheaders */] || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n headers.set(RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n var appId = _appId || (_context && _context.appId());\r\n if (appId) {\r\n headers.set(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n headers.set(RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n init[_DYN_HEADERS /* @min:%2eheaders */] = headers;\r\n }\r\n return init;\r\n }\r\n else if (xhr) { // XHR\r\n if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n var appId = _appId || (_context && _context.appId());\r\n if (appId) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n }\r\n return xhr;\r\n }\r\n return undefined;\r\n };\r\n _self[_DYN_TRACK_DEPENDENCY_DAT3 /* @min:%2etrackDependencyDataInternal */] = function (dependency, properties, systemProperties) {\r\n if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\r\n // Hack since expected format in w3c mode is |abc.def.\r\n // Non-w3c format is |abc.def\r\n // @todo Remove if better solution is available, e.g. handle in portal\r\n if ((_distributedTracingMode === 2 /* eDistributedTracingModes.W3C */\r\n || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */)\r\n && typeof dependency.id === \"string\" && dependency.id[dependency.id[_DYN_LENGTH /* @min:%2elength */] - 1] !== \".\") {\r\n dependency.id += \".\";\r\n }\r\n if (isNullOrUndefined(dependency[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n }\r\n var item = createTelemetryItem(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */].track(item);\r\n }\r\n else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n _throwInternalCritical(_self, 55 /* _eInternalMessageId.MaxAjaxPerPVExceeded */, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\r\n }\r\n ++_trackAjaxAttempts;\r\n };\r\n _self.addDependencyListener = function (dependencyListener) {\r\n return _addHandler(_dependencyListeners, _dependencyHandlerId++, dependencyListener);\r\n };\r\n _self.addDependencyInitializer = function (dependencyInitializer) {\r\n return _addHandler(_dependencyInitializers, _dependencyHandlerId++, dependencyInitializer);\r\n };\r\n function _initDefaults() {\r\n var location = getLocation();\r\n _fetchInitialized = false; // fetch monitoring initialized\r\n _xhrInitialized = false; // XHR monitoring initialized\r\n _polyfillInitialized = false; // polyfill monitoring initialized\r\n _currentWindowHost = location && location.host && location.host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _extensionConfig = null;\r\n _enableRequestHeaderTracking = false;\r\n _enableAjaxErrorStatusText = false;\r\n _trackAjaxAttempts = 0;\r\n _context = null;\r\n _isUsingW3CHeaders = false;\r\n _isUsingAIHeaders = false;\r\n _markPrefix = null;\r\n _enableAjaxPerfTracking = false;\r\n _maxAjaxCallsPerView = 0;\r\n _enableResponseHeaderTracking = false;\r\n _disabledUrls = {};\r\n _disableAjaxTracking = false;\r\n _disableFetchTracking = false;\r\n _excludeRequestFromAutoTrackingPatterns = null;\r\n _addRequestContext = null;\r\n _evtNamespace = null;\r\n _dependencyHandlerId = 0;\r\n _dependencyListeners = [];\r\n _dependencyInitializers = [];\r\n _ignoreHeaders = null;\r\n _maxAjaxPerfLookupAttempts = 1;\r\n _ajaxPerfLookupDelay = 1;\r\n _distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n _appId = null;\r\n }\r\n function _populateDefaults(config) {\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function (details) {\r\n var config = details.cfg;\r\n var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE /* @min:%2ecore */]);\r\n _extensionConfig = ctx.getExtCfg(AjaxMonitor.identifier, _defaultConfig);\r\n _distributedTracingMode = _extensionConfig.distributedTracingMode;\r\n _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE4 /* @min:%2eenableRequestHeaderTracking */];\r\n _enableAjaxErrorStatusText = _extensionConfig[_DYN_ENABLE_AJAX_ERROR_ST5 /* @min:%2eenableAjaxErrorStatusText */];\r\n _enableAjaxPerfTracking = _extensionConfig[_DYN_ENABLE_AJAX_PERF_TRA6 /* @min:%2eenableAjaxPerfTracking */];\r\n _maxAjaxCallsPerView = _extensionConfig[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:%2emaxAjaxCallsPerView */];\r\n _excludeRequestFromAutoTrackingPatterns = [].concat(_extensionConfig[_DYN_EXCLUDE_REQUEST_FROM8 /* @min:%2eexcludeRequestFromAutoTrackingPatterns */] || [], _extensionConfig.addIntEndpoints !== false ? _internalExcludeEndpoints : []);\r\n _addRequestContext = _extensionConfig[_DYN_ADD_REQUEST_CONTEXT /* @min:%2eaddRequestContext */];\r\n _isUsingAIHeaders = _distributedTracingMode === 0 /* eDistributedTracingModes.AI */ || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n _isUsingW3CHeaders = _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */ || _distributedTracingMode === 2 /* eDistributedTracingModes.W3C */;\r\n if (_enableAjaxPerfTracking) {\r\n var iKey = config.instrumentationKey || \"unkwn\";\r\n if (iKey[_DYN_LENGTH /* @min:%2elength */] > 5) {\r\n _markPrefix = AJAX_MONITOR_PREFIX + strSubstring(iKey, iKey[_DYN_LENGTH /* @min:%2elength */] - 5) + \".\";\r\n }\r\n else {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey + \".\";\r\n }\r\n }\r\n _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:%2edisableAjaxTracking */];\r\n _maxAjaxPerfLookupAttempts = _extensionConfig.maxAjaxPerfLookupAttempts;\r\n _ajaxPerfLookupDelay = _extensionConfig[_DYN_AJAX_PERF_LOOKUP_DEL10 /* @min:%2eajaxPerfLookupDelay */];\r\n _ignoreHeaders = _extensionConfig.ignoreHeaders;\r\n _appId = _extensionConfig.appId;\r\n }));\r\n }\r\n function _populateContext() {\r\n var propExt = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (propExt) {\r\n _context = propExt.plugin[_DYN_CONTEXT /* @min:%2econtext */]; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n // discard the header if it's defined as ignoreHeaders in ICorrelationConfig\r\n function _canIncludeHeaders(header) {\r\n var rlt = true;\r\n if (header || _ignoreHeaders) {\r\n arrForEach(_ignoreHeaders, (function (key) {\r\n if (key[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === header[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) {\r\n rlt = false;\r\n return -1;\r\n }\r\n }));\r\n }\r\n return rlt;\r\n }\r\n // Fetch Stuff\r\n function _instrumentFetch() {\r\n var fetch = _supportsFetch();\r\n if (!fetch) {\r\n return;\r\n }\r\n var global = getGlobal();\r\n var isPolyfill = fetch.polyfill;\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {\r\n _disableFetchTracking = !!_extensionConfig[_DYN_DISABLE_FETCH_TRACKI11 /* @min:%2edisableFetchTracking */];\r\n _enableResponseHeaderTracking = _extensionConfig[_DYN_ENABLE_RESPONSE_HEAD12 /* @min:%2eenableResponseHeaderTracking */];\r\n if (!_disableFetchTracking && !_fetchInitialized) {\r\n _addHook(InstrumentFunc(global, STR_FETCH, {\r\n ns: _evtNamespace,\r\n // Add request hook\r\n req: function (callDetails, input, init) {\r\n var fetchData;\r\n if (!_disableFetchTracking && _fetchInitialized &&\r\n !_isDisabledRequest(null, input, init) &&\r\n // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\r\n !(isPolyfill && _xhrInitialized)) {\r\n var ctx = callDetails.ctx();\r\n fetchData = _createFetchRecord(input, init);\r\n var newInit = _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](fetchData, input, init);\r\n if (newInit !== init) {\r\n callDetails.set(1, newInit);\r\n }\r\n ctx.data = fetchData;\r\n }\r\n },\r\n rsp: function (callDetails, input) {\r\n if (!_disableFetchTracking) {\r\n var fetchData_1 = callDetails.ctx().data;\r\n if (fetchData_1) {\r\n // Replace the result with the new promise from this code\r\n callDetails.rslt = callDetails.rslt.then(function (response) {\r\n _reportFetchMetrics(callDetails, (response || {})[_DYN_STATUS /* @min:%2estatus */], input, response, fetchData_1, function () {\r\n var _a;\r\n var ajaxResponse = (_a = {\r\n statusText: (response || {})[_DYN_STATUS_TEXT /* @min:%2estatusText */]\r\n },\r\n _a[_DYN_HEADER_MAP /* @min:headerMap */] = null,\r\n _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getFetchCorrelationContext(response),\r\n _a);\r\n if (_enableResponseHeaderTracking && response) {\r\n var responseHeaderMap_1 = {};\r\n response.headers.forEach(function (value, name) {\r\n if (_canIncludeHeaders(name)) {\r\n responseHeaderMap_1[name] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_1;\r\n }\r\n return ajaxResponse;\r\n });\r\n return response;\r\n })\r\n .catch(function (reason) {\r\n _reportFetchMetrics(callDetails, 0, input, null, fetchData_1, null, { error: reason.message || dumpObj(reason) });\r\n throw reason;\r\n });\r\n }\r\n }\r\n },\r\n // Create an error callback to report any hook errors\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to monitor Window.fetch\" + ERROR_POSTFIX)\r\n }, true, isWebWorker()));\r\n _fetchInitialized = true;\r\n }\r\n else if (isPolyfill && !_polyfillInitialized) {\r\n // If fetch is a polyfill we need to capture the request to ensure that we correctly track\r\n // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\r\n // of reporting ourselves, for example React Native uses a polyfill for fetch\r\n // Note: Polyfill implementations that don't support the \"polyfill\" tag are not supported\r\n // the workaround is to add a polyfill property to your fetch implementation before initializing\r\n // App Insights\r\n _addHook(InstrumentFunc(global, STR_FETCH, {\r\n ns: _evtNamespace,\r\n req: function (callDetails, input, init) {\r\n // Just call so that we record any disabled URL\r\n _isDisabledRequest(null, input, init);\r\n }\r\n }));\r\n _polyfillInitialized = true;\r\n }\r\n }));\r\n if (isPolyfill) {\r\n // retag the instrumented fetch with the same polyfill settings this is mostly for testing\r\n // But also supports multiple App Insights usages\r\n global[STR_FETCH].polyfill = isPolyfill;\r\n }\r\n }\r\n function _hookProto(target, funcName, callbacks) {\r\n _addHook(InstrumentProto(target, funcName, callbacks));\r\n }\r\n function _instrumentXhr() {\r\n if (!_supportsAjaxMonitoring(_self)) {\r\n return;\r\n }\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {\r\n _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:%2edisableAjaxTracking */];\r\n _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE4 /* @min:%2eenableRequestHeaderTracking */];\r\n if (!_disableAjaxTracking && !_xhrInitialized) {\r\n // Instrument open\r\n _hookProto(XMLHttpRequest, \"open\", {\r\n ns: _evtNamespace,\r\n req: function (args, method, url, async) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = args[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = xhr[strAjaxData];\r\n if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, true)) {\r\n if (!ajaxData || !ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */]) {\r\n // Only create a single ajaxData (even when multiple AI instances are running)\r\n _openHandler(xhr, method, url, async);\r\n }\r\n // always attach to the on ready state change (required for handling multiple instances)\r\n _attachToOnReadyStateChange(xhr);\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, ERROR_HEADER + \".open\" + ERROR_POSTFIX)\r\n });\r\n // Instrument send\r\n _hookProto(XMLHttpRequest, \"send\", {\r\n ns: _evtNamespace,\r\n req: function (args, context) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = args[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */]) {\r\n _createMarkId(\"xhr\", ajaxData);\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](ajaxData, undefined, undefined, xhr);\r\n ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 17 /* _eInternalMessageId.FailedMonitorAjaxSend */, ERROR_HEADER + ERROR_POSTFIX)\r\n });\r\n // Instrument abort\r\n _hookProto(XMLHttpRequest, \"abort\", {\r\n ns: _evtNamespace,\r\n req: function (args) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = args[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */]) {\r\n ajaxData[_DYN_ABORTED /* @min:%2eaborted */] = 1;\r\n ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */, ERROR_HEADER + \".abort\" + ERROR_POSTFIX)\r\n });\r\n // Instrument setRequestHeader\r\n _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n ns: _evtNamespace,\r\n req: function (args, header, value) {\r\n if (!_disableAjaxTracking && _enableRequestHeaderTracking) {\r\n var xhr = args[_DYN_INST /* @min:%2einst */];\r\n if (_isMonitoredXhrInstance(xhr) && _canIncludeHeaders(header)) {\r\n xhr[strAjaxData][_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][header] = value;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, ERROR_HEADER + \".setRequestHeader\" + ERROR_POSTFIX)\r\n });\r\n _xhrInitialized = true;\r\n }\r\n }));\r\n }\r\n function _isDisabledRequest(xhr, request, init) {\r\n var isDisabled = false;\r\n var theUrl = ((!isString(request) ? (request || {}).url || \"\" : request) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // check excludeRequestFromAutoTrackingPatterns before stripping off any query string\r\n arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {\r\n var theRegex = regex;\r\n if (isString(regex)) {\r\n theRegex = new RegExp(regex);\r\n }\r\n if (!isDisabled) {\r\n isDisabled = theRegex.test(theUrl);\r\n }\r\n });\r\n // if request url matches with exclude regex pattern, return true and no need to check for headers\r\n if (isDisabled) {\r\n return isDisabled;\r\n }\r\n var idx = _indexOf(theUrl, \"?\");\r\n var idx2 = _indexOf(theUrl, \"#\");\r\n if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {\r\n idx = idx2;\r\n }\r\n if (idx !== -1) {\r\n // Strip off any Query string\r\n theUrl = theUrl.substring(0, idx);\r\n }\r\n // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n if (!isNullOrUndefined(xhr)) {\r\n // Look on the XMLHttpRequest of the URL string value\r\n isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\r\n }\r\n else if (!isNullOrUndefined(request)) { // fetch\r\n // Look for DisabledPropertyName in either Request or RequestInit\r\n isDisabled = (typeof request === \"object\" ? request[DisabledPropertyName] === true : false) ||\r\n (init ? init[DisabledPropertyName] === true : false);\r\n }\r\n // Also add extra check just in case the XHR or fetch objects where not decorated with the DisableProperty due to sealing or freezing\r\n if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {\r\n isDisabled = true;\r\n }\r\n if (isDisabled) {\r\n // Add the disabled url if not present\r\n if (!_disabledUrls[theUrl]) {\r\n _disabledUrls[theUrl] = 1;\r\n }\r\n }\r\n else {\r\n // Check to see if the url is listed as disabled\r\n if (_disabledUrls[theUrl]) {\r\n isDisabled = true;\r\n }\r\n }\r\n return isDisabled;\r\n }\r\n /// Verifies that particalar instance of XMLHttpRequest needs to be monitored\r\n /// Optional parameter. True if ajaxData must be excluded from verification\r\n /// True if instance needs to be monitored, otherwise false\r\n function _isMonitoredXhrInstance(xhr, excludeAjaxDataValidation) {\r\n var ajaxValidation = true;\r\n var initialized = _xhrInitialized;\r\n if (!isNullOrUndefined(xhr)) {\r\n ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(xhr[strAjaxData]);\r\n }\r\n // checking to see that all interested functions on xhr were instrumented\r\n return initialized\r\n // checking on ajaxData to see that it was not removed in user code\r\n && ajaxValidation;\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n // Fall back\r\n if (!distributedTraceCtx && _context && _context.telemetryTrace) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(_context.telemetryTrace);\r\n }\r\n return distributedTraceCtx;\r\n }\r\n function _openHandler(xhr, method, url, async) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = strSubstr(generateW3CId(), 0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = url;\r\n ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */] = true;\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = {};\r\n ajaxData.async = async;\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n xhr[strAjaxData] = ajaxData;\r\n }\r\n function _attachToOnReadyStateChange(xhr) {\r\n xhr[strAjaxData].xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE13 /* @min:%2estateChangeAttached */] = eventOn(xhr, \"readystatechange\", function () {\r\n var _a;\r\n try {\r\n if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {\r\n _onAjaxComplete(xhr);\r\n }\r\n }\r\n catch (e) {\r\n var exceptionText = dumpObj(e);\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), \"c00c023f\") === -1) {\r\n _throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, ERROR_HEADER + \" 'readystatechange' event handler\" + ERROR_POSTFIX, (_a = {},\r\n _a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr),\r\n _a[_DYN_EXCEPTION /* @min:exception */] = exceptionText,\r\n _a));\r\n }\r\n }\r\n }, _evtNamespace);\r\n }\r\n function _getResponseText(xhr) {\r\n try {\r\n var responseType = xhr.responseType;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n // As per the specification responseText is only valid if the type is an empty string or \"text\"\r\n return xhr[_DYN_RESPONSE_TEXT /* @min:%2eresponseText */];\r\n }\r\n }\r\n catch (e) {\r\n // This shouldn't happen because of the above check -- but just in case, so just ignore\r\n }\r\n return null;\r\n }\r\n function _onAjaxComplete(xhr) {\r\n var ajaxData = xhr[strAjaxData];\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = xhr[_DYN_STATUS /* @min:%2estatus */];\r\n function _reportXhrError(e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, 14 /* _eInternalMessageId.FailedMonitorAjaxDur */, FAILED_TO_CALCULATE_DURATION_ERROR + \"ajax call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n try {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Ajax\", _enableRequestHeaderTracking, function () {\r\n var _a;\r\n var ajaxResponse = (_a = {\r\n statusText: xhr[_DYN_STATUS_TEXT /* @min:%2estatusText */]\r\n },\r\n _a[_DYN_HEADER_MAP /* @min:headerMap */] = null,\r\n _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getAjaxCorrelationContext(xhr),\r\n _a.type = xhr.responseType,\r\n _a[_DYN_RESPONSE_TEXT /* @min:responseText */] = _getResponseText(xhr),\r\n _a.response = xhr[_DYN_RESPONSE /* @min:%2eresponse */],\r\n _a);\r\n if (_enableResponseHeaderTracking) {\r\n var headers = xhr[_DYN_GET_ALL_RESPONSE_HEA15 /* @min:%2egetAllResponseHeaders */]();\r\n if (headers) {\r\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n // the regex converts the header string into an array of individual headers\r\n var arr = strTrim(headers).split(/[\\r\\n]+/);\r\n var responseHeaderMap_2 = {};\r\n arrForEach(arr, function (line) {\r\n var parts = line.split(\": \");\r\n var header = parts.shift();\r\n var value = parts.join(\": \");\r\n if (_canIncludeHeaders(header)) {\r\n responseHeaderMap_2[header] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_2;\r\n }\r\n }\r\n return ajaxResponse;\r\n });\r\n var properties = void 0;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: xhr[_DYN_STATUS /* @min:%2estatus */], xhr: xhr });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportXhrError(null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }\r\n finally {\r\n // cleanup telemetry data\r\n try {\r\n xhr[strAjaxData] = null;\r\n }\r\n catch (e) {\r\n // May throw in environments that prevent extension or freeze xhr\r\n }\r\n }\r\n }, function (e) {\r\n _reportXhrError(e, null);\r\n });\r\n }\r\n function _getAjaxCorrelationContext(xhr) {\r\n var _a;\r\n try {\r\n var responseHeadersString = xhr[_DYN_GET_ALL_RESPONSE_HEA15 /* @min:%2egetAllResponseHeaders */]();\r\n if (responseHeadersString !== null) {\r\n var index = _indexOf(responseHeadersString[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), RequestHeaders[8 /* eRequestHeaders.requestContextHeaderLowerCase */]);\r\n if (index !== -1) {\r\n var responseHeader = xhr.getResponseHeader(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return correlationIdGetCorrelationContext(responseHeader);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {},\r\n _a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr),\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _a));\r\n }\r\n }\r\n function _createMarkId(type, ajaxData) {\r\n if (ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] && _markPrefix && _enableAjaxPerfTracking) {\r\n var performance_1 = getPerformance();\r\n if (performance_1 && isFunction(performance_1.mark)) {\r\n _markCount++;\r\n var markId = _markPrefix + type + \"#\" + _markCount;\r\n performance_1.mark(markId);\r\n var entries = performance_1.getEntriesByName(markId);\r\n if (entries && entries[_DYN_LENGTH /* @min:%2elength */] === 1) {\r\n ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */] = entries[0];\r\n }\r\n }\r\n }\r\n }\r\n function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n var perfMark = ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */];\r\n var performance = getPerformance();\r\n var maxAttempts = _maxAjaxPerfLookupAttempts;\r\n var retryDelay = _ajaxPerfLookupDelay;\r\n var requestUrl = ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */];\r\n var attempt = 0;\r\n (function locateResourceTiming() {\r\n try {\r\n if (performance && perfMark) {\r\n attempt++;\r\n var perfTiming = null;\r\n var entries = performance.getEntries();\r\n for (var lp = entries[_DYN_LENGTH /* @min:%2elength */] - 1; lp >= 0; lp--) {\r\n var entry = entries[lp];\r\n if (entry) {\r\n if (entry.entryType === \"resource\") {\r\n if (entry.initiatorType === initiatorType &&\r\n (_indexOf(entry[_DYN_NAME /* @min:%2ename */], requestUrl) !== -1 || _indexOf(requestUrl, entry[_DYN_NAME /* @min:%2ename */]) !== -1)) {\r\n perfTiming = entry;\r\n }\r\n }\r\n else if (entry.entryType === \"mark\" && entry[_DYN_NAME /* @min:%2ename */] === perfMark[_DYN_NAME /* @min:%2ename */]) {\r\n // We hit the start event\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] = perfTiming;\r\n break;\r\n }\r\n if (entry[_DYN_START_TIME /* @min:%2estartTime */] < perfMark[_DYN_START_TIME /* @min:%2estartTime */] - 1000) {\r\n // Fallback to try and reduce the time spent looking for the perf entry\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!perfMark || // - we don't have a perfMark or\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] || // - we have not found the perf entry or\r\n attempt >= maxAttempts || // - we have tried too many attempts or\r\n ajaxData.async === false) { // - this is a sync request\r\n if (perfMark && isFunction(performance.clearMarks)) {\r\n // Remove the mark so we don't fill up the performance resources too much\r\n performance.clearMarks(perfMark[_DYN_NAME /* @min:%2ename */]);\r\n }\r\n ajaxData.perfAttempts = attempt;\r\n // just continue and report the track event\r\n trackCallback();\r\n }\r\n else {\r\n // We need to wait for the browser to populate the window.performance entry\r\n // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\r\n // this is a scheduling issue for the browser implementation\r\n scheduleTimeout(locateResourceTiming, retryDelay);\r\n }\r\n }\r\n catch (e) {\r\n reportError(e);\r\n }\r\n })();\r\n }\r\n function _createFetchRecord(input, init) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = strSubstr(generateW3CId(), 0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n if (input instanceof Request) {\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = input ? input.url : \"\";\r\n }\r\n else {\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = input;\r\n }\r\n var method = \"GET\";\r\n if (init && init[_DYN_METHOD /* @min:%2emethod */]) {\r\n method = init[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n else if (input && input instanceof Request) {\r\n method = input[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n var requestHeaders = {};\r\n if (_enableRequestHeaderTracking) {\r\n var headers = new Headers((init ? init[_DYN_HEADERS /* @min:%2eheaders */] : 0) || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n headers.forEach(function (value, key) {\r\n if (_canIncludeHeaders(key)) {\r\n requestHeaders[key] = value;\r\n }\r\n });\r\n }\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = requestHeaders;\r\n _createMarkId(STR_FETCH, ajaxData);\r\n return ajaxData;\r\n }\r\n function _getFailedFetchDiagnosticsMessage(input) {\r\n var result = \"\";\r\n try {\r\n if (!isNullOrUndefined(input)) {\r\n if (typeof (input) === \"string\") {\r\n result += \"(url: '\".concat(input, \"')\");\r\n }\r\n else {\r\n result += \"(url: '\".concat(input.url, \"')\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalCritical(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to grab failed fetch diagnostics message\", { exception: dumpObj(e) });\r\n }\r\n return result;\r\n }\r\n function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {\r\n if (!ajaxData) {\r\n return;\r\n }\r\n function _reportFetchError(msgId, e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + \"fetch call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = status;\r\n _findPerfResourceEntry(STR_FETCH, ajaxData, function () {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n var properties;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: status, request: input, response: response });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportFetchError(14 /* _eInternalMessageId.FailedMonitorAjaxDur */, null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }, function (e) {\r\n _reportFetchError(18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, e, null);\r\n });\r\n }\r\n function _getFetchCorrelationContext(response) {\r\n var _a;\r\n if (response && response[_DYN_HEADERS /* @min:%2eheaders */]) {\r\n try {\r\n var responseHeader = response[_DYN_HEADERS /* @min:%2eheaders */].get(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return correlationIdGetCorrelationContext(responseHeader);\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {\r\n fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response)\r\n },\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _a));\r\n }\r\n }\r\n }\r\n function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {\r\n var _a;\r\n var result = true;\r\n var initializersCount = initializers[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = (_a = {\r\n item: dependency\r\n },\r\n _a[STR_PROPERTIES /* @min:properties */] = properties,\r\n _a.sysProperties = systemProperties,\r\n _a.context = ajaxData ? ajaxData[_DYN_CONTEXT /* @min:%2econtext */] : null,\r\n _a.aborted = ajaxData ? !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */] : false,\r\n _a);\r\n result = _processDependencyContainer(core, initializers, details, \"initializer\");\r\n }\r\n if (result) {\r\n _self[_DYN_TRACK_DEPENDENCY_DAT3 /* @min:%2etrackDependencyDataInternal */](dependency, properties, systemProperties);\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AjaxMonitor.prototype.initialize.\r\n AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\r\n this.processNext(item, itemCtx);\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyData.\r\n// Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.\r\n// Removed Stub for AjaxMonitor.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.\r\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n//# sourceMappingURL=ajax.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Application = /** @class */ (function () {\r\n function Application() {\r\n }\r\n return Application;\r\n}());\r\nexport { Application };\r\n//# sourceMappingURL=Application.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Device = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n function Device() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n return Device;\r\n}());\r\nexport { Device };\r\n//# sourceMappingURL=Device.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nvar Version = '3.0.2';\r\nvar Internal = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n function Internal(config, unloadHookContainer) {\r\n var _this = this;\r\n var unloadHook = onConfigChange((config), function () {\r\n var prefix = config.sdkExtension;\r\n _this.sdkVersion = (prefix ? prefix + \"_\" : \"\") + \"javascript:\" + Version;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n }\r\n return Internal;\r\n}());\r\nexport { Internal };\r\n//# sourceMappingURL=Internal.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Location = /** @class */ (function () {\r\n function Location() {\r\n }\r\n return Location;\r\n}());\r\nexport { Location };\r\n//# sourceMappingURL=Location.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SESSION_MANAGER = \"sessionManager\"; // Count: 3\r\nexport var _DYN_UPDATE = \"update\"; // Count: 4\r\nexport var _DYN_IS_USER_COOKIE_SET = \"isUserCookieSet\"; // Count: 4\r\nexport var _DYN_IS_NEW_USER = \"isNewUser\"; // Count: 4\r\nexport var _DYN_GET_TRACE_CTX = \"getTraceCtx\"; // Count: 3\r\nexport var _DYN_TELEMETRY_TRACE = \"telemetryTrace\"; // Count: 3\r\nexport var _DYN_APPLY_SESSION_CONTEX0 = \"applySessionContext\"; // Count: 2\r\nexport var _DYN_APPLY_APPLICATION_CO1 = \"applyApplicationContext\"; // Count: 2\r\nexport var _DYN_APPLY_DEVICE_CONTEXT = \"applyDeviceContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATION_CONT2 = \"applyOperationContext\"; // Count: 2\r\nexport var _DYN_APPLY_USER_CONTEXT = \"applyUserContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATING_SYST3 = \"applyOperatingSystemContxt\"; // Count: 2\r\nexport var _DYN_APPLY_LOCATION_CONTE4 = \"applyLocationContext\"; // Count: 2\r\nexport var _DYN_APPLY_INTERNAL_CONTE5 = \"applyInternalContext\"; // Count: 2\r\nexport var _DYN_ACCOUNT_ID = \"accountId\"; // Count: 7\r\nexport var _DYN_GET_SESSION_ID = \"getSessionId\"; // Count: 4\r\nexport var _DYN_NAME_PREFIX = \"namePrefix\"; // Count: 3\r\nexport var _DYN_SESSION_COOKIE_POSTF6 = \"sessionCookiePostfix\"; // Count: 2\r\nexport var _DYN_USER_COOKIE_POSTFIX = \"userCookiePostfix\"; // Count: 2\r\nexport var _DYN_ID_LENGTH = \"idLength\"; // Count: 4\r\nexport var _DYN_GET_NEW_ID = \"getNewId\"; // Count: 3\r\nexport var _DYN_LENGTH = \"length\"; // Count: 4\r\nexport var _DYN_AUTOMATIC_SESSION = \"automaticSession\"; // Count: 5\r\nexport var _DYN_AUTHENTICATED_ID = \"authenticatedId\"; // Count: 6\r\nexport var _DYN_ACQUISITION_DATE = \"acquisitionDate\"; // Count: 5\r\nexport var _DYN_RENEWAL_DATE = \"renewalDate\"; // Count: 4\r\nexport var _DYN_JOIN = \"join\"; // Count: 5\r\nexport var _DYN_COOKIE_SEPARATOR = \"cookieSeparator\"; // Count: 5\r\nexport var _DYN_AUTH_USER_COOKIE_NAM7 = \"authUserCookieName\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, dateNow, dumpObj, getExceptionName, isFunction, newId, onConfigChange, safeGetCookieMgr, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ACQUISITION_DATE, _DYN_AUTOMATIC_SESSION, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_RENEWAL_DATE, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nvar SESSION_COOKIE_NAME = \"ai_session\";\r\nvar ACQUISITION_SPAN = 86400000; // 24 hours in ms\r\nvar RENEWAL_SPAN = 1800000; // 30 minutes in ms\r\nvar COOKIE_UPDATE_INTERVAL = 60000; // 1 minute in ms\r\nvar Session = /** @class */ (function () {\r\n function Session() {\r\n }\r\n return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n function _SessionManager(config, core, unloadHookContainer) {\r\n var self = this;\r\n var _storageNamePrefix;\r\n var _cookieUpdatedTimestamp;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _sessionExpirationMs;\r\n var _sessionRenewalMs;\r\n dynamicProto(_SessionManager, self, function (_self) {\r\n if (!config) {\r\n config = {};\r\n }\r\n var unloadHook = onConfigChange(config, function (details) {\r\n _sessionExpirationMs = config.sessionExpirationMs || ACQUISITION_SPAN;\r\n _sessionRenewalMs = config.sessionRenewalMs || RENEWAL_SPAN;\r\n // sessionCookiePostfix takes the preference if it is configured, otherwise takes namePrefix if configured.\r\n var sessionCookiePostfix = config.sessionCookiePostfix || config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\";\r\n _storageNamePrefix = SESSION_COOKIE_NAME + sessionCookiePostfix;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */] = new Session();\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function () {\r\n // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\r\n // the number to be incorrect.\r\n var nowMs = dateNow();\r\n var isExpired = false;\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n if (!session.id) {\r\n isExpired = !_initializeAutomaticSession(session, nowMs);\r\n }\r\n if (!isExpired && _sessionExpirationMs > 0) {\r\n var timeSinceAcqMs = nowMs - session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n var timeSinceRenewalMs = nowMs - session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */];\r\n isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\r\n isExpired = isExpired || timeSinceAcqMs > _sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\r\n isExpired = isExpired || timeSinceRenewalMs > _sessionRenewalMs; // expired if the time since last renewal is more than renewal period\r\n }\r\n // renew if acquisitionSpan or renewalSpan has elapsed\r\n if (isExpired) {\r\n // update automaticSession so session state has correct id\r\n _renew(nowMs);\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > COOKIE_UPDATE_INTERVAL) {\r\n _setCookie(session, nowMs);\r\n }\r\n }\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _self.backup = function () {\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n _setStorage(session.id, session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */], session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */]);\r\n };\r\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSession(session, now) {\r\n var isValid = false;\r\n var cookieValue = _cookieManager.get(_storageNamePrefix);\r\n if (cookieValue && isFunction(cookieValue.split)) {\r\n isValid = _initializeAutomaticSessionWithData(session, cookieValue);\r\n }\r\n else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix);\r\n if (storageValue) {\r\n isValid = _initializeAutomaticSessionWithData(session, storageValue);\r\n }\r\n }\r\n return isValid || !!session.id;\r\n }\r\n /**\r\n * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param sessionData - The string stored in an ai_session cookie or local storage backup\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSessionWithData(session, sessionData) {\r\n var isValid = false;\r\n var sessionReset = \", session will be reset\";\r\n var tokens = sessionData.split(\"|\");\r\n if (tokens[_DYN_LENGTH /* @min:%2elength */] >= 2) {\r\n try {\r\n var acqMs = +tokens[1] || 0;\r\n var renewalMs = +tokens[2] || 0;\r\n if (isNaN(acqMs) || acqMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session acquisition date is 0\" + sessionReset);\r\n }\r\n else if (isNaN(renewalMs) || renewalMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session renewal date is 0\" + sessionReset);\r\n }\r\n else if (tokens[0]) {\r\n // Everything looks valid so set the values\r\n session.id = tokens[0];\r\n session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = acqMs;\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = renewalMs;\r\n isValid = true;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 9 /* _eInternalMessageId.ErrorParsingAISessionCookie */, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return isValid;\r\n }\r\n function _renew(nowMs) {\r\n var getNewId = config[_DYN_GET_NEW_ID /* @min:%2egetNewId */] || newId;\r\n _self.automaticSession.id = getNewId(config[_DYN_ID_LENGTH /* @min:%2eidLength */] || 22);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */][_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = nowMs;\r\n _setCookie(_self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */], nowMs);\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!utlCanUseLocalStorage()) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 0 /* _eInternalMessageId.BrowserDoesNotSupportLocalStorage */, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n function _setCookie(session, nowMs) {\r\n var acq = session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = nowMs;\r\n var renewalPeriodMs = _sessionRenewalMs;\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n var acqTimeLeftMs = (acq + _sessionExpirationMs) - nowMs;\r\n var cookie = [session.id, acq, nowMs];\r\n var maxAgeSec = 0;\r\n if (acqTimeLeftMs < renewalPeriodMs) {\r\n maxAgeSec = acqTimeLeftMs / 1000;\r\n }\r\n else {\r\n maxAgeSec = renewalPeriodMs / 1000;\r\n }\r\n var cookieDomain = config.cookieDomain || null;\r\n // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n // A cookie with 0 expiry in the session cookie will never expire for that browser session. If the browser is closed the cookie expires.\r\n // Depending on the browser, another instance does not inherit this cookie, however, another tab will\r\n _cookieManager.set(_storageNamePrefix, cookie[_DYN_JOIN /* @min:%2ejoin */](\"|\"), _sessionExpirationMs > 0 ? maxAgeSec : null, cookieDomain);\r\n _cookieUpdatedTimestamp = nowMs;\r\n }\r\n function _setStorage(guid, acq, renewal) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n utlSetLocalStorage(_logger, _storageNamePrefix, [guid, acq, renewal][_DYN_JOIN /* @min:%2ejoin */](\"|\"));\r\n }\r\n });\r\n }\r\n// Removed Stub for _SessionManager.prototype.update.\r\n// Removed Stub for _SessionManager.prototype.backup.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n _SessionManager.__ieDyn=1;\n\n return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n//# sourceMappingURL=Session.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\r\nvar TelemetryTrace = /** @class */ (function () {\r\n function TelemetryTrace(id, parentId, name, logger) {\r\n var _self = this;\r\n _self.traceID = id || generateW3CId();\r\n _self.parentID = parentId;\r\n var location = getLocation();\r\n if (!name && location && location.pathname) {\r\n name = location.pathname;\r\n }\r\n _self.name = dataSanitizeString(logger, name);\r\n }\r\n return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n//# sourceMappingURL=TelemetryTrace.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlRemoveStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, newId, onConfigChange, safeGetCookieMgr, safeGetLogger, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_AUTHENTICATED_ID, _DYN_AUTH_USER_COOKIE_NAM7, _DYN_COOKIE_SEPARATOR, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"../__DynamicConstants\";\r\nfunction _validateUserInput(id) {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== \"string\" ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nvar User = /** @class */ (function () {\r\n function User(config, core, unloadHookContainer) {\r\n /**\r\n * A flag indicating whether this represents a new user\r\n */\r\n this.isNewUser = false;\r\n /**\r\n * A flag indicating whether the user cookie has been set\r\n */\r\n this.isUserCookieSet = false;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _storageNamePrefix;\r\n dynamicProto(User, this, function (_self) {\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return config; }\r\n });\r\n var unloadHook = onConfigChange(config, function () {\r\n var userCookiePostfix = config[_DYN_USER_COOKIE_POSTFIX /* @min:%2euserCookiePostfix */] || \"\";\r\n _storageNamePrefix = User.userCookieName + userCookiePostfix;\r\n // get userId or create new one if none exists\r\n var cookie = _cookieManager.get(_storageNamePrefix);\r\n if (cookie) {\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n var params = cookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (params[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self.id = params[0];\r\n // we already have a cookie\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = !!_self.id;\r\n }\r\n }\r\n if (!_self.id) {\r\n _self.id = _generateNewId();\r\n var newCookie = _generateNewCookie(_self.id);\r\n _setUserCookie(newCookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n var name_1 = (config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\") + \"ai_session\";\r\n utlRemoveStorage(_logger, name_1);\r\n }\r\n // We still take the account id from the ctor param for backward compatibility.\r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = config[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] || undefined;\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: |\r\n var authCookie = _cookieManager.get(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n var authCookieString = authCookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (authCookieString[0]) {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authCookieString[0];\r\n }\r\n if (authCookieString[_DYN_LENGTH /* @min:%2elength */] > 1 && authCookieString[1]) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = authCookieString[1];\r\n }\r\n }\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n function _generateNewId() {\r\n var theConfig = (config || {});\r\n var getNewId = theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */] || newId;\r\n var id = getNewId(theConfig[_DYN_ID_LENGTH /* @min:%2eidLength */] ? config[_DYN_ID_LENGTH /* @min:%2eidLength */] : 22);\r\n return id;\r\n }\r\n function _generateNewCookie(userId) {\r\n var acqStr = toISOString(new Date());\r\n _self.accountAcquisitionDate = acqStr;\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = true;\r\n var newCookie = [userId, acqStr];\r\n return newCookie;\r\n }\r\n function _setUserCookie(cookie) {\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 = 31536000\r\n var oneYear = 31536000;\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = _cookieManager.set(_storageNamePrefix, cookie, oneYear);\r\n }\r\n _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // Validate inputs to ensure no cookie control characters.\r\n var isInvalidInput = !_validateUserInput(authenticatedUserId) || (accountId && !_validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 60 /* _eInternalMessageId.SetAuthContextFailedAccountName */, \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n return;\r\n }\r\n // Create cookie string.\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authenticatedUserId;\r\n var authCookie = _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */];\r\n if (accountId) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = accountId;\r\n authCookie = [_self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], _self.accountId][_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n }\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n _cookieManager.set(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */], encodeURI(authCookie));\r\n }\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n _self.clearAuthenticatedUserContext = function () {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = null;\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = null;\r\n _cookieManager.del(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (userId) {\r\n // Optimizations to avoid setting and processing the cookie when not needed\r\n if (_self.id !== userId || !_self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n var user_id = userId ? userId : _generateNewId();\r\n var user_cookie = _generateNewCookie(user_id);\r\n _setUserCookie(user_cookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for User.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.clearAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.update.\r\n User.cookieSeparator = \"|\";\r\n User.userCookieName = \"ai_user\";\r\n User.authUserCookieName = \"ai_authUser\";\r\n return User;\r\n}());\r\nexport { User };\r\n//# sourceMappingURL=User.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* TelemetryContext.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { CtxTagKeys, Extensions, PageView, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalLogMessage, getSetValue, hasWindow, isNullOrUndefined, isString, objKeys, setValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Application } from \"./Context/Application\";\r\nimport { Device } from \"./Context/Device\";\r\nimport { Internal } from \"./Context/Internal\";\r\nimport { Location } from \"./Context/Location\";\r\nimport { Session, _SessionManager } from \"./Context/Session\";\r\nimport { TelemetryTrace } from \"./Context/TelemetryTrace\";\r\nimport { User } from \"./Context/User\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_AUTHENTICATED_ID, _DYN_AUTOMATIC_SESSION, _DYN_GET_SESSION_ID, _DYN_LENGTH, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE } from \"./__DynamicConstants\";\r\nvar strExt = \"ext\";\r\nvar strTags = \"tags\";\r\nfunction _removeEmpty(target, name) {\r\n if (target && target[name] && objKeys(target[name])[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n delete target[name];\r\n }\r\n}\r\nfunction _nullResult() {\r\n return null;\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n function TelemetryContext(core, defaultConfig, previousTraceCtx, unloadHookContainer) {\r\n var _this = this;\r\n var logger = core.logger;\r\n dynamicProto(TelemetryContext, this, function (_self) {\r\n _self.appId = _nullResult;\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = _nullResult;\r\n _self.application = new Application();\r\n _self.internal = new Internal(defaultConfig, unloadHookContainer);\r\n if (hasWindow()) {\r\n _self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] = new _SessionManager(defaultConfig, core, unloadHookContainer);\r\n _self.device = new Device();\r\n _self.location = new Location();\r\n _self.user = new User(defaultConfig, core, unloadHookContainer);\r\n var traceId = void 0;\r\n var parentId = void 0;\r\n var name_1;\r\n if (previousTraceCtx) {\r\n traceId = previousTraceCtx.getTraceId();\r\n parentId = previousTraceCtx.getSpanId();\r\n name_1 = previousTraceCtx.getName();\r\n }\r\n _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */] = new TelemetryTrace(traceId, parentId, name_1, logger);\r\n _self.session = new Session();\r\n }\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = function () {\r\n var session = _self.session;\r\n var sesId = null;\r\n // If customer set session info, apply their context; otherwise apply context automatically generated\r\n if (session && isString(session.id)) {\r\n sesId = session.id;\r\n }\r\n else {\r\n // Gets the automatic session if it exists or an empty object\r\n var autoSession = (_self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] || {})[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n sesId = autoSession && isString(autoSession.id) ? autoSession.id : null;\r\n }\r\n return sesId;\r\n };\r\n _self[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */] = function (evt, itemCtx) {\r\n setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */](), isString);\r\n };\r\n _self[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */] = function (evt, itemCtx) {\r\n setValue(evt.ext, Extensions.OSExt, _self.os);\r\n };\r\n _self[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */] = function (evt, itemCtx) {\r\n var application = _self.application;\r\n if (application) {\r\n // evt.ext.app\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\r\n setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */] = function (evt, itemCtx) {\r\n var device = _self.device;\r\n if (device) {\r\n // evt.ext.device\r\n var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\r\n setValue(extDevice, \"localId\", device.id, isString);\r\n setValue(extDevice, \"ip\", device.ip, isString);\r\n setValue(extDevice, \"model\", device.model, isString);\r\n setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */] = function (evt, itemCtx) {\r\n var internal = _self.internal;\r\n if (internal) {\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\r\n setValue(tags, CtxTagKeys.internalSdkVersion, dataSanitizeString(logger, internal.sdkVersion, 64), isString);\r\n if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\r\n setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\r\n setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\r\n }\r\n }\r\n };\r\n _self[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */] = function (evt, itemCtx) {\r\n var location = _this.location;\r\n if (location) {\r\n setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */] = function (evt, itemCtx) {\r\n var telemetryTrace = _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */];\r\n if (telemetryTrace) {\r\n var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, { traceID: undefined, parentID: undefined });\r\n setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString, isNullOrUndefined);\r\n setValue(extTrace, \"name\", telemetryTrace.name, isString, isNullOrUndefined);\r\n setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString, isNullOrUndefined);\r\n }\r\n };\r\n _self.applyWebContext = function (evt, itemCtx) {\r\n var web = _this.web;\r\n if (web) {\r\n setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\r\n }\r\n };\r\n _self[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */] = function (evt, itemCtx) {\r\n var user = _self.user;\r\n if (user) {\r\n var tags = getSetValue(evt, strTags, []);\r\n // stays in tags\r\n setValue(tags, CtxTagKeys.userAccountId, user[_DYN_ACCOUNT_ID /* @min:%2eaccountId */], isString);\r\n // CS 4.0\r\n var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\r\n setValue(extUser, \"id\", user.id, isString);\r\n setValue(extUser, \"authId\", user[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], isString);\r\n }\r\n };\r\n _self.cleanUp = function (evt, itemCtx) {\r\n var ext = evt.ext;\r\n if (ext) {\r\n _removeEmpty(ext, Extensions.DeviceExt);\r\n _removeEmpty(ext, Extensions.UserExt);\r\n _removeEmpty(ext, Extensions.WebExt);\r\n _removeEmpty(ext, Extensions.OSExt);\r\n _removeEmpty(ext, Extensions.AppExt);\r\n _removeEmpty(ext, Extensions.TraceExt);\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for TelemetryContext.prototype.applySessionContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperatingSystemContxt.\r\n// Removed Stub for TelemetryContext.prototype.applyApplicationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyDeviceContext.\r\n// Removed Stub for TelemetryContext.prototype.applyInternalContext.\r\n// Removed Stub for TelemetryContext.prototype.applyLocationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyWebContext.\r\n// Removed Stub for TelemetryContext.prototype.applyUserContext.\r\n// Removed Stub for TelemetryContext.prototype.cleanUp.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n TelemetryContext.__ieDyn=1;\n\n return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n//# sourceMappingURL=TelemetryContext.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* PropertiesPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, PageView, PropertiesPluginIdentifier, createDistributedTraceContextFromTrace } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _InternalLogMessage, _logInternalMessage, createProcessTelemetryContext, getNavigator, getSetValue, isNullOrUndefined, onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDeepFreeze, objDefine } from \"@nevware21/ts-utils\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_GET_NEW_ID, _DYN_GET_SESSION_ID, _DYN_GET_TRACE_CTX, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_NAME_PREFIX, _DYN_SESSION_COOKIE_POSTF6, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"./__DynamicConstants\";\r\nvar undefString;\r\nvar nullValue = null;\r\nvar _defaultConfig = objDeepFreeze((_a = {},\r\n _a[_DYN_ACCOUNT_ID /* @min:accountId */] = nullValue,\r\n _a.sessionRenewalMs = 30 * 60 * 1000,\r\n _a.samplingPercentage = 100,\r\n _a.sessionExpirationMs = 24 * 60 * 60 * 1000,\r\n _a.cookieDomain = nullValue,\r\n _a.sdkExtension = nullValue,\r\n _a.isBrowserLinkTrackingEnabled = false,\r\n _a.appId = nullValue,\r\n _a[_DYN_GET_SESSION_ID /* @min:getSessionId */] = nullValue,\r\n _a[_DYN_NAME_PREFIX /* @min:namePrefix */] = undefString,\r\n _a[_DYN_SESSION_COOKIE_POSTF6 /* @min:sessionCookiePostfix */] = undefString,\r\n _a[_DYN_USER_COOKIE_POSTFIX /* @min:userCookiePostfix */] = undefString,\r\n _a[_DYN_ID_LENGTH /* @min:idLength */] = 22,\r\n _a[_DYN_GET_NEW_ID /* @min:getNewId */] = nullValue,\r\n _a));\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n __extends(PropertiesPlugin, _super);\r\n function PropertiesPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 110;\r\n _this.identifier = PropertiesPluginIdentifier;\r\n var _extensionConfig;\r\n var _distributedTraceCtx;\r\n var _previousTraceCtx;\r\n var _context;\r\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n objDefine(_self, \"context\", {\r\n g: function () {\r\n return _context;\r\n }\r\n });\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _populateDefaults(config);\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event - The event that needs to be processed\r\n */\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (!isNullOrUndefined(event)) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n itemCtx.diagLog().resetInternalMessageCount();\r\n }\r\n var theContext = (_context || {});\r\n if (theContext.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof _context.session.id !== \"string\" && theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */]) {\r\n theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */][_DYN_UPDATE /* @min:%2eupdate */]();\r\n }\r\n }\r\n var userCtx = theContext.user;\r\n if (userCtx && !userCtx[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n userCtx[_DYN_UPDATE /* @min:%2eupdate */](theContext.user.id);\r\n }\r\n _processTelemetryInternal(event, itemCtx);\r\n if (userCtx && userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */]) {\r\n userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n var message = new _InternalLogMessage(72 /* _eInternalMessageId.SendBrowserInfoOnUserInit */, ((getNavigator() || {}).userAgent || \"\"));\r\n _logInternalMessage(itemCtx.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, message);\r\n }\r\n _self.processNext(event, itemCtx);\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n var core = (unloadCtx || {}).core();\r\n if (core && core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */]) {\r\n var traceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n if (traceCtx === _distributedTraceCtx) {\r\n core.setTraceCtx(_previousTraceCtx);\r\n }\r\n }\r\n _initDefaults();\r\n };\r\n function _initDefaults() {\r\n _extensionConfig = null;\r\n _distributedTraceCtx = null;\r\n _previousTraceCtx = null;\r\n _context = null;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\r\n _self[\"_extConfig\"] = _extensionConfig;\r\n }));\r\n // This is outside of the onConfigChange as we don't want to update (replace) these values whenever a referenced config item changes\r\n _previousTraceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n _context = new TelemetryContext(core, _extensionConfig, _previousTraceCtx, _self._unloadHooks);\r\n _distributedTraceCtx = createDistributedTraceContextFromTrace(_self.context[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */], _previousTraceCtx);\r\n core.setTraceCtx(_distributedTraceCtx);\r\n _self.context.appId = function () {\r\n var breezeChannel = core.getPlugin(BreezeChannelIdentifier);\r\n return breezeChannel ? breezeChannel.plugin[\"_appId\"] : null;\r\n };\r\n }\r\n function _processTelemetryInternal(evt, itemCtx) {\r\n // Set Part A fields\r\n getSetValue(evt, \"tags\", []);\r\n getSetValue(evt, \"ext\", {});\r\n var ctx = _self.context;\r\n ctx[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */](evt, itemCtx);\r\n ctx.applyWebContext(evt, itemCtx);\r\n ctx[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */](evt, itemCtx); // legacy tags\r\n ctx[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */](evt, itemCtx); // legacy tags\r\n ctx.cleanUp(evt, itemCtx);\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for PropertiesPlugin.prototype.initialize.\r\n// Removed Stub for PropertiesPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PropertiesPlugin.__ieDyn=1;\n\n return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default PropertiesPlugin;\r\n//# sourceMappingURL=PropertiesPlugin.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nvar _AUTHENTICATED_USER_CONTEXT = \"AuthenticatedUserContext\";\r\nvar _TRACK = \"track\";\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_SNIPPET = \"snippet\";\r\nexport var STR_GET_COOKIE_MGR = \"getCookieMgr\";\r\nexport var STR_START_TRACK_PAGE = \"startTrackPage\";\r\nexport var STR_STOP_TRACK_PAGE = \"stopTrackPage\";\r\nexport var STR_FLUSH = \"flush\";\r\nexport var STR_START_TRACK_EVENT = \"startTrackEvent\";\r\nexport var STR_STOP_TRACK_EVENT = \"stopTrackEvent\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZER = \"addTelemetryInitializer\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZERS = STR_ADD_TELEMETRY_INITIALIZER + \"s\";\r\nexport var STR_POLL_INTERNAL_LOGS = \"pollInternalLogs\";\r\nexport var STR_GET_PLUGIN = \"getPlugin\";\r\nexport var STR_EVT_NAMESPACE = \"evtNamespace\";\r\nexport var STR_TRACK_EVENT = _TRACK + \"Event\";\r\nexport var STR_TRACK_TRACE = _TRACK + \"Trace\";\r\nexport var STR_TRACK_METRIC = _TRACK + \"Metric\";\r\nexport var STR_TRACK_PAGE_VIEW = _TRACK + \"PageView\";\r\nexport var STR_TRACK_EXCEPTION = _TRACK + \"Exception\";\r\nexport var STR_TRACK_DEPENDENCY_DATA = _TRACK + \"DependencyData\";\r\nexport var STR_SET_AUTHENTICATED_USER_CONTEXT = \"set\" + _AUTHENTICATED_USER_CONTEXT;\r\nexport var STR_CLEAR_AUTHENTICATED_USER_CONTEXT = \"clear\" + _AUTHENTICATED_USER_CONTEXT;\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_QUEUE = \"queue\"; // Count: 6\r\nexport var _DYN_CONNECTION_STRING = \"connectionString\"; // Count: 4\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 3\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 3\r\nexport var _DYN_DISABLE_IKEY_DEPRECA0 = \"disableIkeyDeprecationMessage\"; // Count: 2\r\nexport var _DYN_ONUNLOAD_FLUSH = \"onunloadFlush\"; // Count: 6\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 5\r\nexport var _DYN_ADD_HOUSEKEEPING_BEF1 = \"addHousekeepingBeforeUnload\"; // Count: 2\r\nexport var _DYN_UPDATE_SNIPPET_DEFIN2 = \"updateSnippetDefinitions\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { DEFAULT_BREEZE_PATH, PropertiesPluginIdentifier, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\nimport { AppInsightsCore, _throwInternal, addPageHideEventListener, addPageUnloadEventListener, cfgDfValidate, createDynamicConfig, createUniqueNamespace, doPerf, hasDocument, hasWindow, isArray, isFunction, isNullOrUndefined, isReactNative, isString, mergeEvtNamespace, onConfigChange, proxyAssign, proxyFunctions, removePageHideEventListener, removePageUnloadEventListener } from \"@microsoft/applicationinsights-core-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from \"@microsoft/applicationinsights-dependencies-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { createPromise } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, objDefine, objForEachKey, strIndexOf, throwUnsupported } from \"@nevware21/ts-utils\";\r\nimport { STR_ADD_TELEMETRY_INITIALIZER, STR_CLEAR_AUTHENTICATED_USER_CONTEXT, STR_EVT_NAMESPACE, STR_FLUSH, STR_GET_COOKIE_MGR, STR_GET_PLUGIN, STR_POLL_INTERNAL_LOGS, STR_SET_AUTHENTICATED_USER_CONTEXT, STR_SNIPPET, STR_START_TRACK_EVENT, STR_START_TRACK_PAGE, STR_STOP_TRACK_EVENT, STR_STOP_TRACK_PAGE, STR_TRACK_DEPENDENCY_DATA, STR_TRACK_EVENT, STR_TRACK_EXCEPTION, STR_TRACK_METRIC, STR_TRACK_PAGE_VIEW, STR_TRACK_TRACE } from \"./InternalConstants\";\r\nimport { _DYN_ADD_HOUSEKEEPING_BEF1, _DYN_CONNECTION_STRING, _DYN_CONTEXT, _DYN_DISABLE_IKEY_DEPRECA0, _DYN_ENDPOINT_URL, _DYN_INSTRUMENTATION_KEY, _DYN_ONUNLOAD_FLUSH, _DYN_QUEUE, _DYN_UPDATE_SNIPPET_DEFIN2, _DYN_VERSION } from \"./__DynamicConstants\";\r\nvar _internalSdkSrc;\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n STR_SNIPPET, \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\"\r\n];\r\nvar UNDEFINED_VALUE = undefined;\r\n// We need to include all properties that we only reference that we want to be dynamically updatable here\r\n// So they are converted even when not specified in the passed configuration\r\nvar defaultConfigValues = (_a = {},\r\n _a[_DYN_CONNECTION_STRING /* @min:connectionString */] = UNDEFINED_VALUE,\r\n _a[_DYN_ENDPOINT_URL /* @min:endpointUrl */] = UNDEFINED_VALUE,\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n _a.diagnosticLogInterval = cfgDfValidate(_chkDiagLevel, 10000),\r\n _a);\r\nfunction _chkDiagLevel(value) {\r\n // Make sure we have a value > 0\r\n return value && value > 0;\r\n}\r\n/**\r\n * Application Insights API\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar AppInsightsSku = /** @class */ (function () {\r\n function AppInsightsSku(snippet) {\r\n var _this = this;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var dependencies;\r\n var properties;\r\n var _sender;\r\n var _snippetVersion;\r\n var _evtNamespace;\r\n var _houseKeepingNamespace;\r\n var _core;\r\n var _config;\r\n var _analyticsPlugin;\r\n dynamicProto(AppInsightsSku, this, function (_self) {\r\n _initDefaults();\r\n objDefine(_self, \"config\", {\r\n g: function () {\r\n return _config;\r\n }\r\n });\r\n arrForEach([\"pluginVersionStringArr\", \"pluginVersionString\"], function (key) {\r\n objDefine(_self, key, {\r\n g: function () {\r\n if (_core) {\r\n return _core[key];\r\n }\r\n return null;\r\n }\r\n });\r\n });\r\n // initialize the queue and config in case they are undefined\r\n _snippetVersion = \"\" + (snippet.sv || snippet[_DYN_VERSION /* @min:%2eversion */] || \"\");\r\n snippet[_DYN_QUEUE /* @min:%2equeue */] = snippet[_DYN_QUEUE /* @min:%2equeue */] || [];\r\n snippet[_DYN_VERSION /* @min:%2eversion */] = snippet[_DYN_VERSION /* @min:%2eversion */] || 2.0; // Default to new version\r\n var cfgHandler = createDynamicConfig(snippet.config || {}, defaultConfigValues);\r\n _config = cfgHandler.cfg;\r\n _analyticsPlugin = new AnalyticsPlugin();\r\n objDefine(_self, \"appInsights\", {\r\n g: function () {\r\n return _analyticsPlugin;\r\n }\r\n });\r\n properties = new PropertiesPlugin();\r\n dependencies = new DependenciesPlugin();\r\n _sender = new Sender();\r\n _core = new AppInsightsCore();\r\n objDefine(_self, \"core\", {\r\n g: function () {\r\n return _core;\r\n }\r\n });\r\n // Will get recalled if any referenced values are changed\r\n _addUnloadHook(onConfigChange(cfgHandler, function () {\r\n if (_config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */]) {\r\n var cs = parseConnectionString(_config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */]);\r\n var ingest = cs.ingestionendpoint;\r\n _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = ingest ? (ingest + DEFAULT_BREEZE_PATH) : _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]; // only add /v2/track when from connectionstring\r\n _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = cs.instrumentationkey || _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n }\r\n }));\r\n // Outside of the onConfigChange as we only want to do this once\r\n var isErrMessageDisabled = isNullOrUndefined(_config[_DYN_DISABLE_IKEY_DEPRECA0 /* @min:%2edisableIkeyDeprecationMessage */]) ? true : _config[_DYN_DISABLE_IKEY_DEPRECA0 /* @min:%2edisableIkeyDeprecationMessage */];\r\n if (!_config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] && !isErrMessageDisabled) {\r\n _throwInternal(_core.logger, 1 /* eLoggingSeverity.CRITICAL */, 106 /* _eInternalMessageId.InstrumentationKeyDeprecation */, \"Instrumentation key support will end soon, see aka.ms/IkeyMigrate\");\r\n }\r\n _self[STR_SNIPPET /* @min:%2esnippet */] = snippet;\r\n _self[STR_FLUSH /* @min:%2eflush */] = function (async, callBack) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n doPerf(_core, function () { return \"AISKU.flush\"; }, function () {\r\n if (async && !callBack) {\r\n result = createPromise(function (resolve) {\r\n callBack = resolve;\r\n });\r\n }\r\n var waiting = 1;\r\n var flushDone = function () {\r\n waiting--;\r\n if (waiting === 0) {\r\n callBack();\r\n }\r\n };\r\n arrForEach(_core.getChannels(), function (channel) {\r\n if (channel) {\r\n waiting++;\r\n channel[STR_FLUSH /* @min:%2eflush */](async, flushDone);\r\n }\r\n });\r\n // decrement the initial \"waiting\"\r\n flushDone();\r\n }, null, async);\r\n return result;\r\n };\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */] = function (async) {\r\n if (async === void 0) { async = true; }\r\n arrForEach(_core.getChannels(), function (channel) {\r\n if (channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]) {\r\n channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]();\r\n }\r\n else {\r\n channel[STR_FLUSH /* @min:%2eflush */](async);\r\n }\r\n });\r\n };\r\n _self.loadAppInsights = function (legacyMode, logger, notificationManager) {\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n if (legacyMode) {\r\n throwUnsupported(\"Legacy Mode is no longer supported\");\r\n }\r\n function _updateSnippetProperties(snippet) {\r\n if (snippet) {\r\n var snippetVer = \"\";\r\n if (!isNullOrUndefined(_snippetVersion)) {\r\n snippetVer += _snippetVersion;\r\n }\r\n if (_self[_DYN_CONTEXT /* @min:%2econtext */] && _self[_DYN_CONTEXT /* @min:%2econtext */].internal) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.snippetVer = snippetVer || \"-\";\r\n }\r\n // apply updated properties to the global instance (snippet)\r\n objForEachKey(_self, function (field, value) {\r\n if (isString(field) &&\r\n !isFunction(value) &&\r\n field && field[0] !== \"_\" && // Don't copy \"internal\" values\r\n arrIndexOf(_ignoreUpdateSnippetProperties, field) === -1) {\r\n if (snippet[field] !== value) {\r\n snippet[field] = value;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n // initialize core\r\n _core.initialize(_config, [_sender, properties, dependencies, _analyticsPlugin], logger, notificationManager);\r\n objDefine(_self, \"context\", {\r\n g: function () { return properties[_DYN_CONTEXT /* @min:%2econtext */]; }\r\n });\r\n var sdkSrc = _findSdkSourceFile();\r\n if (sdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */]) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc = sdkSrc;\r\n }\r\n _updateSnippetProperties(_self[STR_SNIPPET /* @min:%2esnippet */]);\r\n // Empty queue of all api calls logged prior to sdk download\r\n _self.emptyQueue();\r\n _self[STR_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF1 /* @min:%2eaddHousekeepingBeforeUnload */](_self);\r\n });\r\n return _self;\r\n };\r\n _self[_DYN_UPDATE_SNIPPET_DEFIN2 /* @min:%2eupdateSnippetDefinitions */] = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n proxyAssign(snippet, _self, function (name) {\r\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n return name && arrIndexOf(_ignoreUpdateSnippetProperties, name) === -1;\r\n });\r\n };\r\n _self.emptyQueue = function () {\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (isArray(_self.snippet[_DYN_QUEUE /* @min:%2equeue */])) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n var length_1 = _self.snippet[_DYN_QUEUE /* @min:%2equeue */].length;\r\n for (var i = 0; i < length_1; i++) {\r\n var call = _self.snippet[_DYN_QUEUE /* @min:%2equeue */][i];\r\n call();\r\n }\r\n _self.snippet[_DYN_QUEUE /* @min:%2equeue */] = undefined;\r\n delete _self.snippet[_DYN_QUEUE /* @min:%2equeue */];\r\n }\r\n }\r\n catch (exception) {\r\n var properties_1 = {};\r\n if (exception && isFunction(exception.toString)) {\r\n properties_1.exception = exception.toString();\r\n }\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // eLoggingSeverity.WARNING,\r\n // _eInternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n };\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF1 /* @min:%2eaddHousekeepingBeforeUnload */] = function (appInsightsInstance) {\r\n // Add callback to push events when the user navigates away\r\n if (hasWindow() || hasDocument()) {\r\n var performHousekeeping_1 = function () {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n // appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](false);\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n if (isFunction(_self.core[STR_GET_PLUGIN /* @min:%2egetPlugin */])) {\r\n var loadedPlugin = _this.core[STR_GET_PLUGIN /* @min:%2egetPlugin */](PropertiesPluginIdentifier);\r\n if (loadedPlugin) {\r\n var propertiesPlugin = loadedPlugin.plugin;\r\n if (propertiesPlugin && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */] && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager) {\r\n propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager.backup();\r\n }\r\n }\r\n }\r\n };\r\n var added_1 = false;\r\n var analyticsPlugin_1 = appInsightsInstance.appInsights;\r\n var theConfig_1 = analyticsPlugin_1.config;\r\n if (!_houseKeepingNamespace) {\r\n _houseKeepingNamespace = mergeEvtNamespace(_evtNamespace, _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */] && _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */]());\r\n }\r\n // Will be recalled if any referenced config properties change\r\n _addUnloadHook(onConfigChange(_config, function () {\r\n // As we could get recalled, remove any previously registered event handlers first\r\n _removePageEventHandlers();\r\n var excludePageUnloadEvents = theConfig_1.disablePageUnloadEvents;\r\n if (!theConfig_1.disableFlushOnBeforeUnload) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n if (addPageUnloadEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added_1 = true;\r\n }\r\n // We also need to hook the pagehide and visibilitychange events as not all versions of Safari support load/unload events.\r\n if (addPageHideEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added_1 = true;\r\n }\r\n // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n // log the failure in this case\r\n if (!added_1 && !isReactNative()) {\r\n _throwInternal(analyticsPlugin_1.core.logger, 1 /* eLoggingSeverity.CRITICAL */, 19 /* _eInternalMessageId.FailedToAddHandlerForOnBeforeUnload */, \"Could not add handler for beforeunload and pagehide\");\r\n }\r\n }\r\n if (!added_1 && !theConfig_1.disableFlushOnUnload) {\r\n // If we didn't add the normal set then attempt to add the pagehide and visibilitychange only\r\n addPageHideEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace);\r\n }\r\n }));\r\n }\r\n };\r\n _self.getSender = function () {\r\n return _sender;\r\n };\r\n _self.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n var unloadDone = false;\r\n var result;\r\n if (isAsync && !unloadComplete) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n unloadComplete = resolve;\r\n });\r\n }\r\n function _unloadCallback(unloadState) {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n }\r\n }\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](isAsync);\r\n _removePageEventHandlers();\r\n _core.unload && _core.unload(isAsync, _unloadCallback, cbTimeout);\r\n return result;\r\n };\r\n proxyFunctions(_self, _analyticsPlugin, [\r\n STR_GET_COOKIE_MGR,\r\n STR_TRACK_EVENT,\r\n STR_TRACK_PAGE_VIEW,\r\n \"trackPageViewPerformance\",\r\n STR_TRACK_EXCEPTION,\r\n \"_onerror\",\r\n STR_TRACK_TRACE,\r\n STR_TRACK_METRIC,\r\n STR_START_TRACK_PAGE,\r\n STR_STOP_TRACK_PAGE,\r\n STR_START_TRACK_EVENT,\r\n STR_STOP_TRACK_EVENT\r\n ]);\r\n proxyFunctions(_self, _getCurrentDependencies, [\r\n STR_TRACK_DEPENDENCY_DATA,\r\n \"addDependencyListener\",\r\n \"addDependencyInitializer\"\r\n ]);\r\n proxyFunctions(_self, _core, [\r\n STR_ADD_TELEMETRY_INITIALIZER,\r\n STR_POLL_INTERNAL_LOGS,\r\n \"stopPollingInternalLogs\",\r\n STR_GET_PLUGIN,\r\n \"addPlugin\",\r\n STR_EVT_NAMESPACE,\r\n \"addUnloadCb\",\r\n \"getTraceCtx\",\r\n \"updateCfg\",\r\n \"onCfgChange\"\r\n ]);\r\n proxyFunctions(_self, function () {\r\n var context = properties[_DYN_CONTEXT /* @min:%2econtext */];\r\n return context ? context.user : null;\r\n }, [\r\n STR_SET_AUTHENTICATED_USER_CONTEXT,\r\n STR_CLEAR_AUTHENTICATED_USER_CONTEXT\r\n ]);\r\n // Using a function to support the dynamic adding / removal of plugins, so this will always return the current value\r\n function _getCurrentDependencies() {\r\n return dependencies;\r\n }\r\n function _initDefaults() {\r\n _evtNamespace = createUniqueNamespace(\"AISKU\");\r\n _houseKeepingNamespace = null;\r\n dependencies = null;\r\n properties = null;\r\n _sender = null;\r\n _snippetVersion = null;\r\n }\r\n function _removePageEventHandlers() {\r\n // Remove any registered event handlers\r\n if (_houseKeepingNamespace) {\r\n removePageUnloadEventListener(null, _houseKeepingNamespace);\r\n removePageHideEventListener(null, _houseKeepingNamespace);\r\n }\r\n }\r\n function _addUnloadHook(hooks) {\r\n _core.addUnloadHook(hooks);\r\n }\r\n });\r\n }\r\n // Analytics Plugin\r\n// Removed Stub for AppInsightsSku.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsSku.prototype.trackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.trackPageView.\r\n// Removed Stub for AppInsightsSku.prototype.trackPageViewPerformance.\r\n// Removed Stub for AppInsightsSku.prototype.trackException.\r\n// Removed Stub for AppInsightsSku.prototype._onerror.\r\n// Removed Stub for AppInsightsSku.prototype.trackTrace.\r\n// Removed Stub for AppInsightsSku.prototype.trackMetric.\r\n// Removed Stub for AppInsightsSku.prototype.startTrackPage.\r\n// Removed Stub for AppInsightsSku.prototype.stopTrackPage.\r\n// Removed Stub for AppInsightsSku.prototype.startTrackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.stopTrackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.addTelemetryInitializer.\r\n // Properties Plugin\r\n// Removed Stub for AppInsightsSku.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for AppInsightsSku.prototype.clearAuthenticatedUserContext.\r\n // Dependencies Plugin\r\n// Removed Stub for AppInsightsSku.prototype.trackDependencyData.\r\n // Misc\r\n// Removed Stub for AppInsightsSku.prototype.flush.\r\n// Removed Stub for AppInsightsSku.prototype.onunloadFlush.\r\n// Removed Stub for AppInsightsSku.prototype.loadAppInsights.\r\n// Removed Stub for AppInsightsSku.prototype.updateSnippetDefinitions.\r\n// Removed Stub for AppInsightsSku.prototype.emptyQueue.\r\n// Removed Stub for AppInsightsSku.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsSku.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsSku.prototype.addHousekeepingBeforeUnload.\r\n// Removed Stub for AppInsightsSku.prototype.getSender.\r\n// Removed Stub for AppInsightsSku.prototype.unload.\r\n// Removed Stub for AppInsightsSku.prototype.getPlugin.\r\n// Removed Stub for AppInsightsSku.prototype.addPlugin.\r\n// Removed Stub for AppInsightsSku.prototype.updateCfg.\r\n// Removed Stub for AppInsightsSku.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsSku.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsSku.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n AppInsightsSku.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for AppInsightsSku.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsSku.prototype.onCfgChange.\r\n return AppInsightsSku;\r\n}());\r\nexport { AppInsightsSku };\r\n// tslint:disable-next-line\r\nexport function _findSdkSourceFile() {\r\n if (_internalSdkSrc) {\r\n // Use the cached value\r\n return _internalSdkSrc;\r\n }\r\n var sdkSrc = null;\r\n var isModule = false;\r\n var cdns = [\r\n \"://js.monitor.azure.com/\",\r\n \"://az416426.vo.msecnd.net/\"\r\n ];\r\n try {\r\n // Try and determine whether the sdk is being loaded from the CDN\r\n // currentScript is only valid during initial processing\r\n var scrpt = (document || {}).currentScript;\r\n if (scrpt) {\r\n sdkSrc = scrpt.src;\r\n // } else {\r\n // // We need to update to at least typescript 2.9 for this to work :-(\r\n // // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n // let meta = import.meta;\r\n // sdkSrc = (meta || {}).url;\r\n // isModule = true;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n if (sdkSrc) {\r\n try {\r\n var url_1 = sdkSrc.toLowerCase();\r\n if (url_1) {\r\n var src_1 = \"\";\r\n arrForEach(cdns, function (value, idx) {\r\n if (strIndexOf(url_1, value) !== -1) {\r\n src_1 = \"cdn\" + (idx + 1);\r\n if (strIndexOf(url_1, \"/scripts/\") === -1) {\r\n if (strIndexOf(url_1, \"/next/\") !== -1) {\r\n src_1 += \"-next\";\r\n }\r\n else if (strIndexOf(url_1, \"/beta/\") !== -1) {\r\n src_1 += \"-beta\";\r\n }\r\n }\r\n _internalSdkSrc = src_1 + (isModule ? \".mod\" : \"\");\r\n return -1;\r\n }\r\n });\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n // Cache the found value so we don't have to look it up again\r\n _internalSdkSrc = sdkSrc;\r\n }\r\n return _internalSdkSrc;\r\n}\r\n//# sourceMappingURL=AISku.js.map","import { ApplicationInsights } from \"@microsoft/applicationinsights-web\";\n\ninterface UseApplicationInsightsReturn {\n logException(exception: Error, severityLevel?: number): void;\n}\n\nconst instrumentationKey = import.meta.env.VITE_ApplicationInsights__InstrumentationKey ?? \"\";\n\nconst appInsights = new ApplicationInsights({\n config: {\n instrumentationKey: instrumentationKey,\n disableCookiesUsage: true,\n },\n});\n\nif (instrumentationKey) {\n appInsights.loadAppInsights();\n}\n\nconst logException = (exception: Error, severityLevel?: number): void => {\n appInsights.trackException({ exception: exception, severityLevel: severityLevel });\n};\n\nexport default (): UseApplicationInsightsReturn => {\n return { logException };\n};\n","import App from \"@/App.vue\";\nimport { loadDirectives } from \"@/directives/DirectivesLoader\";\nimport i18n from \"@/i18n\";\nimport router from \"@/router/router\";\nimport \"@/styles/main.scss\";\nimport { createApp } from \"vue\";\nimport VueApexCharts from \"vue3-apexcharts\";\nimport useAppInsights from \"@/services/shared/useAppInsights\";\n\nconst initApp = (): void => {\n const app = createApp(App);\n loadDirectives(app);\n app.use(i18n).use(router).use(VueApexCharts).mount(\"#app\");\n\n if (import.meta.env.PROD) {\n const { logException } = useAppInsights();\n app.config.errorHandler = (err, _vm, _info) => logException(err as Error);\n }\n};\n\ninitApp();\n"],"names":["makeMap","str","expectsLowerCase","map","list","i","val","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","onRE","isOn","key","isModelListener","extend","remove","arr","el","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isDate","isRegExp","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","toRawType","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","fn","cache","camelizeRE","camelize","_","c","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","oldValue","invokeArrayFns","fns","arg","def","obj","looseToNumber","n","toNumber","_globalThis","getGlobalThis","GLOBALS_WHITE_LISTED","isGloballyWhitelisted","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","name","normalizeProps","props","klass","style","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","looseCompareArrays","a","b","equal","looseEqual","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","toDisplayString","replacer","_key","entries","val2","activeEffectScope","EffectScope","detached","currentEffectScope","fromParent","l","last","effectScope","recordEffectScope","effect","scope","getCurrentScope","onScopeDispose","createDep","effects","dep","wasTracked","trackOpBit","newTracked","initDepMarkers","deps","finalizeDepMarkers","ptr","targetMap","effectTrackDepth","maxMarkerBits","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ReactiveEffect","scheduler","parent","lastShouldTrack","shouldTrack","cleanupEffect","effect2","options","_effect","runner","stop","trackStack","pauseTracking","resetTracking","track","target","type","depsMap","trackEffects","debuggerEventExtraInfo","shouldTrack2","trigger","newValue","oldTarget","newLength","key2","triggerEffects","triggerEffect","getDepFromReactive","object","_a","isNonTrackableKeys","builtInSymbols","get$1","createGetter","shallowGet","readonlyGet","shallowReadonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","args","toRaw","isReadonly2","shallow","receiver","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","isRef","readonly","reactive","set$1","createSetter","shallowSet","isReadonly","isShallow","hadKey","result","deleteProperty","has$1","ownKeys","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","v","get","rawTarget","rawKey","has2","wrap","toReadonly","toReactive","has","size","add","set","get2","deleteEntry","clear","hadItems","createForEach","callback","thisArg","observed","createIterableMethod","method","targetIsMap","isPair","isKeyOnly","innerIterator","done","createReadonlyMethod","createInstrumentations","mutableInstrumentations2","shallowInstrumentations2","readonlyInstrumentations2","shallowReadonlyInstrumentations2","mutableInstrumentations","readonlyInstrumentations","shallowInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","shallowReactive","shallowReadonly","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isReactive","isProxy","raw","markRaw","trackRefValue","ref2","triggerRefValue","newVal","r","ref","createRef","shallowRef","rawValue","RefImpl","__v_isShallow","useDirectValue","triggerRef","unref","toValue","source","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","customRef","toRefs","propertyToRef","ObjectRefImpl","_object","_defaultValue","GetterRefImpl","_getter","toRef","defaultValue","ComputedRefImpl","getter","_setter","isSSR","self","computed","getterOrOptions","debugOptions","setter","onlyGetter","warn","msg","assertNumber","callWithErrorHandling","instance","err","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","cur","exposedInstance","errorInfo","errorCapturedHooks","appErrorHandler","logError","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","p","findInsertionIndex","id","start","end","middle","getId","queueJob","job","queueFlush","flushJobs","invalidateJob","queuePostFlushCb","cb","flushPreFlushCbs","seen","flushPostFlushCbs","deduped","comparator","diff","check","devtools","buffer","setDevtoolsHook","hook","_b","event","newHook","emit","rawArgs","modelArg","modifiersKey","number","trim","handlerName","handler","onceHandler","normalizeEmitsOptions","comp","appContext","asMixin","cached","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","pushScopeId","popScopeId","withScopeId","_id","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","renderComponentRoot","Component","vnode","withProxy","propsOptions","slots","attrs","render","renderCache","data","setupState","inheritAttrs","fallthroughAttrs","proxyToUse","normalizeVNode","render2","getFunctionalFallthrough","blockStack","createVNode","Comment","root","keys","shapeFlag","filterModelListeners","cloneVNode","filterSingleRoot","children","singleRoot","child","isVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","component","nextProps","nextChildren","patchFlag","emits","hasPropsChanged","dynamicProps","emitsOptions","nextKeys","updateHOCHostEl","isSuspense","SuspenseImpl","n1","n2","container","anchor","parentComponent","parentSuspense","isSVG","slotScopeIds","rendererInternals","mountSuspense","patchSuspense","hydrateSuspense","createSuspenseBoundary","normalizeSuspenseChildren","Suspense","triggerEvent","eventListener","patch","createElement","hiddenContainer","suspense","setActiveBranch","unmount","newBranch","newFallback","activeBranch","pendingBranch","isInFallback","isHydrating","isSameVNodeType","timeout","pendingId","move","next","parentNode","parentSuspenseId","isSuspensible","isVNodeSuspensible","resume","sync","vnode2","parentComponent2","container2","delayEnter","anchor2","hasUnresolvedAncestor","fallbackVNode","isSVG2","mountFallback","setupRenderEffect","isInPendingSuspense","hydratedEl","asyncSetupResult","handleSetupResult","placeholder","parentSuspense2","doRemove","node","hydrateNode","isSlotChildren","normalizeSuspenseSlot","s","block","trackBlock","isBlockTreeEnabled","openBlock","currentBlock","closeBlock","queueEffectWithSuspense","branch","watchEffect","doWatch","watchPostEffect","watchSyncEffect","INITIAL_WATCHER_VALUE","watch","immediate","deep","flush","onTrack","onTrigger","currentInstance","forceTrigger","isMultiSource","isShallow$1","traverse","cleanup","onCleanup","baseGetter","ssrCleanup","isInSSRComponentSetup","useSSRContext","queuePostRenderEffect","unwatch","instanceWatch","publicThis","createPathGetter","setCurrentInstance","unsetCurrentInstance","path","segments","withDirectives","directives","internalInstance","getExposeProxy","bindings","dir","modifiers","invokeDirectiveHook","oldBindings","binding","useTransitionState","state","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionPropsValidators","BaseTransitionImpl","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","rawProps","mode","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","leavingHooks","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","BaseTransition","leavingVNodes","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","callHook","callAsyncHook","hook2","hooks","leavingVNode","afterHook","cancelHook","called","cancelled","isKeepAlive","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","extraOptions","isAsyncWrapper","defineAsyncComponent","loader","loadingComponent","errorComponent","delay","suspensible","userOnError","pendingRequest","resolvedComp","retries","retry","load","thisRequest","resolve","reject","createInnerComp","onError","loaded","error","delayed","ce","KeepAliveImpl","sharedContext","current","_unmount","storageContainer","instance2","vnodeHook","invokeVNodeHook","resetShapeFlag","pruneCache","filter","getComponentName","pruneCacheEntry","include","exclude","matches","pendingCacheKey","cacheSubtree","getInnerChild","onUpdated","subTree","da","rawVNode","max","cachedVNode","KeepAlive","pattern","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","DIRECTIVES","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","resolveDirective","warnMissing","selfName","registry","renderList","renderItem","index","createSlots","dynamicSlots","slot","j","renderSlot","fallback","noSlotted","validSlotContent","ensureValidVNode","rendered","createBlock","vnodes","toHandlers","preserveCaseIfNecessary","getPublicInstance","isStatefulComponent","publicPropertiesMap","resolveMergedOptions","hasSetupBinding","PublicInstanceProxyHandlers","accessCache","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","descriptor","RuntimeCompiledPublicInstanceProxyHandlers","defineProps","defineEmits","defineExpose","exposed","defineOptions","defineSlots","defineModel","withDefaults","defaults","useSlots","getContext","useAttrs","useModel","createSetupContext","normalizePropsOrEmits","mergeDefaults","opt","mergeModels","createPropsRestProxy","excludedKeys","withAsyncContext","getAwaitable","awaitable","e","applyOptions","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","components","filters","resolveInjections","methodHandler","createWatcher","provides","provide","registerLifecycleHook","register","_hook","checkDuplicateProperties","normalizeInject","inject","h","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","mergeOptions","to","from","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","isMounted","app","version","plugin","mixin","directive","rootContainer","isHydrate","currentApp","parentProvides","treatDefaultAsFactory","hasInjectionContext","initProps","isStateful","InternalObjectKey","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","propsToUpdate","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","normalizePropsOptions","extendProps","normalizedKey","validatePropName","prop","booleanIndex","getTypeIndex","stringIndex","getType","ctor","match","isSameType","expectedTypes","t","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","setRef","rawRef","oldRawRef","isUnmount","refValue","owner","oldRef","refs","_isString","_isRef","doSet","existing","hasMismatch","isSVGContainer","isComment","createHydrationFunctions","mountComponent","patchProp","createText","nextSibling","insert","createComment","isFragmentStart","onMismatch","handleMismatch","domType","nextNode","Text","Static","needToAdoptContent","hydrateFragment","hydrateElement","locateClosingAsyncAnchor","createTextVNode","hydrateChildren","dirs","forcePatchValue","vnodeHooks","parentVNode","fragmentSlotScopeIds","isFragment","next2","createRenderer","baseCreateRenderer","createHydrationRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","transition","mountChildren","setScopeId","unmountChildren","needCallTransitionHooks","scopeId","cloneIfMounted","dynamicChildren","oldProps","newProps","toggleRecurse","areChildrenSVG","patchBlockChildren","patchChildren","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","traverseStaticChildren","updateComponent","initialVNode","createComponentInstance","setupComponent","updateComponentPreRender","componentUpdateFn","bu","u","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateSubTree","scopedInitialVNode","update","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","moveType","leave","delayLeave","afterLeave","remove2","performLeave","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","removeFragment","performRemove","bum","um","allowed","ch1","ch2","len","arrI","isTeleport","isTeleportDisabled","isTargetSVG","resolveTarget","select","targetSelector","TeleportImpl","querySelector","disabled","mainAnchor","targetAnchor","mount","wasDisabled","currentContainer","currentAnchor","moveTeleport","nextTarget","updateCssVars","hydrateTeleport","isReorder","targetNode","Teleport","disableTracking","setupBlock","createElementBlock","createBaseVNode","transformVNodeArgs","transformer","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","extraProps","mergeRef","mergedProps","mergeProps","text","flag","createStaticVNode","content","numberOfNodes","createCommentVNode","asBlock","slotFlag","toMerge","incoming","emptyAppContext","uid","internalSetCurrentInstance","globalCurrentInstanceSetters","settersKey","setupResult","setupStatefulComponent","setup","setupContext","resolvedResult","finishComponentSetup","compile","installWithProxy","registerRuntimeCompiler","_compile","isRuntimeOnly","skipOptions","template","isCustomElement","compilerOptions","delimiters","componentCompilerOptions","finalCompilerOptions","getAttrsProxy","includeInferred","computed$1","propsOrChildren","ssrContextKey","initCustomFormatter","withMemo","memo","isMemoSame","_ssrUtils","ssrUtils","resolveFilter","compatUtils","svgNS","doc","templateContainer","nodeOps","tag","is","selector","before","wrapper","patchClass","transitionClasses","patchStyle","isCssString","setStyle","currentDisplay","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","patchDOMProp","needRemove","addEventListener","removeEventListener","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","patchStopImmediatePropagation","originalStop","nativeOnRE","shouldSetAsProp","defineCustomElement","hydrate2","Comp","VueCustomElement","VueElement","initialProps","defineSSRCustomElement","BaseClass","_def","_props","mutations","isAsync","styles","numberProps","camelize$1","asyncDef","declaredPropKeys","shouldReflect","shouldUpdate","dispatch","css","useCssModule","modules","mod","useCssVars","updateTeleports","vars","setVarsOnNode","setVars","setVarsOnVNode","ob","TRANSITION","ANIMATION","Transition","resolveTransitionProps","DOMTransitionPropsValidators","TransitionPropsValidators","h2","hasExplicitCallback","baseProps","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","_vtc","endId","expectedType","explicitTimeout","resolveIfNotStale","propCount","getTransitionInfo","endEvent","ended","onEnd","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","d","toMs","positionMap","newPositionMap","TransitionGroupImpl","moveClass","hasCSSTransform","callPendingCbs","recordPosition","movedChildren","applyTranslation","cssTransitionProps","removeMode","TransitionGroup","oldPos","newPos","dx","dy","clone","getModelAssigner","onCompositionStart","onCompositionEnd","vModelText","lazy","castToNumber","domValue","vModelCheckbox","modelValue","elementValue","getValue","checked","assign","found","filtered","getCheckboxValue","setChecked","vModelRadio","vModelSelect","isSetModel","selectedVal","setSelected","_binding","isMultiple","option","optionValue","vModelDynamic","callModelHook","resolveDynamicModel","tagName","initVModelForSSR","modelToUse","systemModifiers","modifierGuards","withModifiers","guard","keyNames","withKeys","eventKey","k","vShow","setDisplay","initVShowForSSR","rendererOptions","renderer","enabledHydration","ensureRenderer","ensureHydrationRenderer","createApp","containerOrSelector","normalizeContainer","createSSRApp","ssrDirectiveInitialized","initDirectivesForSSR","useToaster","isOpen","getContent","closeToaster","openToaster","show","click","buttonClasses","useManageModal","getConfig","config","eventHandler","keyBinds","keyBind","useKeyEvent","keyEvent","isListenerActiveRef","addListener","removeListener","active","closeModal","isCurrentModalActive","effectiveVariant","getIsInNonFloatingModal","executingAction","hasCustomComponent","hasCustomActions","showActions","_c","isModalContentText","confirm","action","cancel","close","callbackAvoidClose","closedHandler","parentPanelModal","DefaultModalName","inBrowser","hasSymbol","makeSymbol","generateFormatCacheKey","locale","friendlyJSONstringify","json","isNumber","isEmptyObject","escapeHtml","rawText","CompileErrorCodes","createCompileError","code","loc","domain","messages","IntlifyDevToolsHooks","pathStateMachine","literalValueRE","isLiteral","exp","stripQuotes","getPathCharType","ch","formatSubPath","trimmed","parse","subPathDepth","newChar","typeMap","actions","maybeUnescapeQuote","nextChar","resolveWithKeyValue","resolveValue","hit","DEFAULT_MODIFIER","DEFAULT_MESSAGE","DEFAULT_MESSAGE_DATA_TYPE","DEFAULT_NORMALIZE","DEFAULT_INTERPOLATE","pluralDefault","choice","choicesLength","getPluralIndex","normalizeNamed","pluralIndex","createMessageContext","pluralRule","orgPluralRule","plural","_list","_named","named","message","_modifier","normalize","interpolate","arg1","arg2","modifier","setDevToolsHook","initI18nDevTools","i18n","meta","translateDevTools","createDevToolsHook","payloads","fallbackWithSimple","fallbackWithLocaleChain","startLocale","DEFAULT_LOCALE","chain","appendBlockToChain","blocks","follow","appendLocaleToChain","tokens","appendItemToChain","VERSION","NOT_REOSLVED","MISSING_RESOLVE_VALUE","getDefaultLinkedModifiers","_compiler","_resolver","registerMessageResolver","resolver","_fallbacker","registerLocaleFallbacker","fallbacker","_additionalMeta","setAdditionalMeta","getAdditionalMeta","_fallbackContext","setFallbackContext","getFallbackContext","_cid","createCoreContext","fallbackLocale","datetimeFormats","numberFormats","pluralRules","missing","missingWarn","fallbackWarn","fallbackFormat","unresolving","postTranslation","processor","warnHtmlMessage","escapeParameter","messageCompiler","messageResolver","localeFallbacker","fallbackContext","onWarn","internalOptions","__datetimeFormatters","__numberFormatters","__meta","handleMissing","updateFallbackLocale","inc","CoreErrorCodes","createCoreError","NOOP_MESSAGE_FUNCTION","isMessageFunction","translate","parseTranslateArgs","resolvedMessage","defaultMsgOrKey","enableDefaultMsg","escapeParams","formatScope","targetLocale","resolveMessageFormat","format","cacheBaseKey","occurred","errorDetector","compileMessageFormat","ctxOptions","getMessageContextOptions","msgContext","messaged","evaluateMessage","locales","missingRet","getCompileOptions","msgCtx","arg3","datetime","overrides","parseDateTimeArgs","part","datetimeFormat","formatter","DATETIME_FORMAT_OPTIONS_KEYS","arg4","dateTime","clearDateTimeFormat","parseNumberArgs","numberFormat","NUMBER_FORMAT_OPTIONS_KEYS","clearNumberFormat","initFeatureFlags","I18nErrorCodes","createI18nError","TransrateVNodeSymbol","DatetimePartsSymbol","NumberPartsSymbol","SetPluralRulesSymbol","InejctWithOption","handleFlatJson","subKeys","lastIndex","currentObj","getLocaleMessages","__i18n","flatJson","custom","resource","deepCopy","isNotObjectOrIsArray","src","des","getComponentOptions","adjustI18nResources","global","componentOptions","createTextNode","DEVTOOLS_META","composerID","defineCoreMissingHandler","getMetaInfo","createComposer","VueI18nLegacy","__root","_isGlobal","_inheritLocale","_locale","_fallbackLocale","_messages","_datetimeFormats","_numberFormats","_missingWarn","_fallbackWarn","_fallbackRoot","_fallbackFormat","_missing","_runtimeMissing","_postTranslation","_warnHtmlMessage","_escapeParameter","_modifiers","_pluralRules","_context","trackReactivityValues","getPostTranslationHandler","setPostTranslationHandler","getMissingHandler","setMissingHandler","wrapWithDeps","argumentParser","warnType","fallbackSuccess","fallbackFail","successCondition","rt","transrateVNode","numberParts","datetimeParts","setPluralRules","rules","te","getLocaleMessage","resolveMessages","targetLocaleMessages","messageValue","tm","setLocaleMessage","mergeLocaleMessage","getDateTimeFormat","setDateTimeFormat","mergeDateTimeFormat","getNumberFormat","setNumberFormat","mergeNumberFormat","composer","baseFormatProps","getInterpolateArg","getFragmentableTag","Translation","useI18n","assignedAttrs","renderFormatter","slotKeys","partFormatter","parts","NumberFormat","DatetimeFormat","getComposer$2","i18nInternal","vueI18n","vTDirective","_process","parsedValue","parseValue","makeParams","textContent","apply","pluginOptions","useI18nComponentName","I18nInjectionKey","createI18n","__globalInjection","__allowComposition","__instances","globalScope","__global","createGlobal","symbol","__getInstance","__setInstance","__deleteInstance","injectGlobalFields","unmountApp","getI18nInstance","getGlobalComposer","getScope","getComposer","composerOptions","setupLifeCycle","legacyMode","useComponent","globalExportProps","globalExportMethods","desc","store","STORES","partialStore","useStorageService","typedGet","Next","Prev","Edit","Answer","Save","Delete","Add","New","Cancel","Continue","Save as draft","Publish","Download","Information saved successfully","first","Low","Medium","High","Employee","Administrator","Group Manager","IT Manager","Date must be today or later","Date not valid","Course has been already assigned to this group","Employee was not found. Please, refresh the page","A Group with that name already exists.","Employee Group was not found. Please, refresh the page","Some employee groups not found","Company was not found","Course not found","Selected employee is already assigned to the goal","Employees cannot be assigned to an ended goal","Employees cannot be unassigned from an ended goal","Connection to Azure with the provided data could not be done. Please confirm Client ID and secret are correct.","Expected LinkedIn files were not found. Please, make sure that 'Education', 'Languages', 'Positions', 'Profile' or 'Skills' files exist","Required field","File extension is not supported","File size exceeded","Please, update the 'Goal start date' with a date equal to or future than the current one","Application phase is still open. Please, wait for the application phase to finish before launching the goal","The number of people assigned is less than needed. Please, assign more people before launching the goal","The number of people needed cannot be exceeded","The result of the goal cannot be set until it ends","The goal result have been already set and cannot be updated","Finished goals cannot be updated","Start date not valid","End date not valid","A hobby with that name already exists.","A training with that title already exists","An interest with that title already exists","Start date is not valid","Question is already published","Question not found","Question was not found. Please, refresh the page","Questions with answers can't be updated","Some questions not found","Skill requested was not found. Please, refresh the page","A skill with that name is being created.","A skill with that name already exists.","Unexpected file format was found","Unknown error","The number of users found in the Azure Active Directory exceeds the number of purchased users","Employee not found","'","' date","Date must be earlier than or equal to today","Mode","Online","On-site","End","Field must be at most "," characters"," items","maximum","Field must be at least ","minimum","Option "," is required","Start","Type here to add...","'To' date must be after 'From' date","Uploaded file has an invalid extension"," MB max size","No document uploaded yet","You are going to delete this file. This action cannot be undone. Are your sure you want to continue?","Delete file","File too Big","The file you are trying to upload is too big.","Supported types: ","types","Field must be a valid URL","AI Assistant","Questions to Employees","Welcome to your AI Assistant. Your AI Assistant will ask you questions through the chatbot, your answers will give it information to give you the best learning path and experience in Fleebe. If you need to modify your answers, you can do it here at any time.","Expand on your answer or share your feedback (whether positive or constructive)","Type your options (separated by commas or enter)","Your administration has not configured questions yet","Role","Go to administrator area","Go to employee area","Log out","Choose a picture for your avatar","Personal Information","Birth Date","App Settings","Language","English","Español","Français","Deutsch","Italiano","Português","Goals & Challenges","Search goals and challenges","Featured Goals & Challenges","Only "," vacant positions","days"," days left","From ","My Goals & Challenges","Progress","progress","%","Your administration has not configured goals yet","My Learning","Learning","Choose a certificate to upload","Search","There are no courses with this filter","We don’t copy your searches. This is a private area.","Search results for ","searchTerm","Featured Learning for You","Type","All","Coursera","edX","LinkedIn","Intefi","Internal training","online","on-site","Rate this training","It’s very important for us to get feedback from you to customize our learning platform with the best courses adapted to you.","Send training","Training completed","Set training as completed","You are going to set a training as completed. This action cannot be undone so be sure to be right.","Go to the training","If you have some certificate or diploma that accredits a finished training, please remember to add it to your Current Experience.","Information of the on-site training","The more information you provide on Fleebe, CV, interest, ideal job... , more accurate your AI Assistant's recommendation will be to guide you to your future aspirations.","My learning path","AI Training Path to My Ideal Job","Following the parameters established in the configuration of your ideal position, our AI has created a training itinerary that can help you achieve your goal. Remember that this help is for guidance only and that you ultimately decide what is best for you.","Skills","Languages","Financial education","Beginner","Advanced","Expert","Additional learning","No suggestions in this area/level","I want my learning path to be recalculated","The recalculation will be performed unattended overnight","My training","Your learning path will not change if you do not change your ideal job.","You don't have any training completed yet","Add new training","New training","You are going to delete the selected training. This action cannot be undone. Are you sure you want to continue?","Delete training","Edit training","Description of the training","Enter a brief description","Title of the training","Enter a title","Add new interest","New interest","You are going to delete the selected interest. This action cannot be undone. Are you sure you want to continue?","Delete interest","Edit interest","Description of the interest","Title of the interest","Interests","In this section we invite you to fill in your interests, and your hobbies. Also the learnings you have made and that you find interesting to reflect.","My Interests","Current skills","Last 5 certificates and courses","Presence","Last update, ","date","Goals Achieved","General","Your general skills","Don't worry if you still don't see anything here. By completing your profile and with the day by day job flow a lot of information will appear.","Fill in your current and ideal job to complete the chart below showing the skills that are relevant for you.","To add a new skill or modify their levels, please visit My Current Job or My Ideal Job sections. If you want to replace a skill for another one you can do it clicking the Edit button below.","We don't have enough information to create the chart","Edit performance graph","Profile updating","Welcome to Fleebe","Your new professional development tool","Beginnings are tough. So follow the next steps in order to complete your profile in a fast and friendly way.","First of all...","Complete your personal profile. You know, name, age, personal picture, current job, etc. You only have to hover on the avatar icon on application right upper corner.","We are quite daring and we want to visualize in a single graph not only your degree of adaptation to your current position but also to an ideal position created by you. Can you help us? Follow the links in the cards on the right side.","For this we need two things: first, list the skills that best describe your current job; and second, do the same thing but with the skills of your ideal job, the one that you would like to have in the future. Easy, right?","If you import your profile from Linkedin, most of those skills will be loaded automatically and you only have to choose which ot them fit better in the jobs described by you. But, if you prefer it, you can do this manually.","And that's all","When you finish, you should see something like this. A quite intuitive way of visualize both your fit to your current job and to ideal one.","See an example","Start here creating your full skills profile","Or complete it in parts","Skills Profile","Select the 12 skills most relevant among all the skills you have or you would want to.","Select skills","Current Job","Select the 6 skills most relevant in your current professional experience.","Select from among all the skills that define your current position the 6 most relevant to you.","And if you want it to be faster...","Select current job skills","Get your LinkedIn profile","Ideal Job","Select the 6 skills you would like to develop for your ideal job.","Define your ideal position and add all the skills you think are necessary to perform it. Then you can select the most important ones.","Select ideal job skills","Go to My Ideal Job","Marketing profile example","Here you can see Megan's skills.","The 6 skills that match her current job (purple)","The 6 skills she would like to develop (blue)","The 12 skills that match her current experience (orange)","Whether you import them from Linkedin or create them manually, you can then select the 6 skills that best define your current and desired position for the future.","With this graph you can, at a glance, compare your current and future talent to manage your training and career plan accordingly. This also helps Human Resources managers to offer you the working conditions that best suit you or to detect, for example, undervalued or dissatisfied employees.","Help us to help you.","Megan","Barney","Digital marketing manager","Got it","Current job skills","Ideal job skills","Current experience skills","None","Taking initiative","Analytical","Creative","Problem solving","Positive attitude","Supporting","Empathizing","Social Media","Management","Marketing","Introduction","To fill in your profile chart, you need to complete the 2 principal sections about yourself: Current Experience and Ideal Job. Once these sections are completed, you will have at your disposal all the skills you need to rate and build your spider visualization.","* Remember that you will always be able to edit your skills and revise them during all your growth and learning process.","Select my Current Job Skills","Select a min. of 3 skills and a max. of 6 skills most important in my current job.","Select my Ideal Job Skills","Select a min. of 3 skills and a max. of 6 skills you would like to develop for your ideal job.","It is required that you choose between 3 and 6 skills to build your performance graph.","Search a skill","You must have a Current Job with at least 3 skills to be able to create this graph.","Go to Current Job","You must have an Ideal Job with at least 3 skills to be able to create this graph.","Go to Ideal Job","Dashboard","My Profile","Groups","Previous Experiences","My Current Job","About Me","Other Experience","Education","Edit languages","Current Position","General Skills","Language Skills","Import my LinkedIn profile","Import your LinkedIn profile","Follow the instructions below to import your LinkedIn profile.","Click this link to access to your LinkedIn profile (log in if it's necessary): ","Configure the content you want to import. LinkedIn offers you some alternatives.","Click the button Request file (the download will be ready in about 24 hours).","Two emails will send to you with the instructions you have to follow. The first one contents the information you need to upload here. The second one is about your LinkedIn activity and account history, and we don't need it.","Download the file.","Click the button bellow and select the .zip file downloaded from your computer.","And that's all. If everything goes well, all your data will be charged here. Check if your current experience is ok. If not, you can edit it in LinkedIn and repeat the operation (recommended) or edit it inside this application by click in the button Edit, next to each experience.","Browse to upload the LinkedIn profile","Profile successfully imported","Check your positions dates and introduce the level of your skills, and lastly define if your educations have been online or on site.","In this section it is important that you upload your curriculum, the experience will be more personalized if we know the starting point. On the other hand, you must differentiate between the skills you have generated during your professional life and the skills learned in your current position when filling in the fields.","Management Skills","Edit general skills","Edit language skills","Delete Skill being used on Performance Graph","You are trying to delete a skill that is being used on the Performance Graph. If after deleting this skill there are less than 3 skills the graph will not be created.","Present","Tell me something about you","About you","Upload your curriculum","Delete curriculum","You are going to delete curriculum. This action cannot be undone. Are you sure you want to continue?","Edit your current position","Edit your job position","Add current job","Add new experience","Title","Enter the job position","Description of the job","Enter the job description","Company","Enter the company","Location","Enter the job location","Delete experience","You are going to delete the selected experience. This action cannot be undone. Are you sure you want to continue?","Edit your education","Add new education","Education title","Institution","Enter an institution","Description","Enter a description","Enter a location","From","To","In progress","Delete education","You are going to delete the selected education. This action cannot be undone. Are you sure you want to continue?","Registration from Azure Active Directory (Ad) Guide","

To generate the Service Principal, please go to Azure Ad, and follow next steps:

  1. Go to Azure Active Directory and create a new Application in App Registration.
  2. Enter a name at the 'Name' field.\n\n
  3. In Supported account types select the 'Single Tenant' option and click the 'Register' button.
  4. When your App is already created, go to 'API Permissions' section and add a new one of type 'User.Read.All'.
  5. Now you need to add a Client Secret, we recommend 24 months of expiration date. Now copy the Client Secret.

Steps to connect with Fleebe:

  1. Copy the 'Application Client ID' from the previous step to the 'Service Principal Client Id' field.
  2. Copy the 'Client Secret' to the 'Service Principal Client Secret' field.
  3. Click the 'Validate' button, and you should see the number of users of your AD.
","Tenant Id","Purchase Subscription ID","Service principal client Id","Enter the service principal Id","Service principal client Secret","Enter the service principal secret","The following amount of users will be imported from Azure Active Directory after the sign up process","Validate","Sign up","Subscription could not be completed","We are sorry, the subscription could not be completed because the number of purchased users (","purchasedUsers",") in Azure Active Directory. Please restart the purchase process.","Restart purchase in Microsoft AppSource","Your session ended","You finished your session. To come back again, click on the button.","Sign in Fleebe","Not enough permissions","You need to be administrator to enter the requested page. To continue using the site, click on the button.","Go back to Fleebe","Tenant unauthorized","The tenant you are using to log in is not allowed in the application. Please confirm you are registered to use Fleebe and continue.","User unauthorized","The account you are using to log in is not allowed in the application. Please confirm you are registered to use Fleebe and continue. If you have multiple accounts, try logging out and sign in again.","% employee answered","Start wherever you want","Start the experience with your AI assistant whenever you want by filling out the four general cards below these infobox.","Complete your organization profile","Fill in all your company`s corporate data with its main characteristics: How big your organization is? where it's located?","Complete company profile","Create the skills your organization needs","Your organization is different and unique, therefore, it has specific needs that you know as administrator. Create them to start looking for talent.","Create skills","Create a form to get feedback from employees","Your employees are talented, therefore their opinion is valuable. Create here a form to get your feedback.","Create form","Create goals and challenges for your organization","Keep your teams and employees motivated, create common objectives and goals bringing value to the company.","Create goals & challenges","The new AI assistance to help your employees learning path to their own preferences and lifestyle","Search for employees","Current Experience","Curriculum","Employee has not provided information yet","Employee has not provided experience information yet","Employee has not provided education information yet","Employee has not provided languages yet","Employee has not provided general skills yet","Employee has not provided the ideal job information yet","These are the responses provided by the employee","Employee has not provided interest information yet","Employee has not provided learning information yet","Employee has not provided hobbies yet","Create new survey form","Configure the questions for your company and choose which of them should be visible to your employees","Add new question","Level","Use this component for the employee to select a level of education, experience or talent, etc. quickly.","Try to make the statement as simple as possible so that the answers are not ambiguous and the information provided really adds value. Establish clear and well contrasted levels so that there are no doubts in the answer.","Enter the question statement","Single Selection","Use this component to select a single option from several available ones.","Try to make the statement as simple as possible so that the answers are not ambiguous and the information provided really adds value. Establish clear and well contrasted options so that there are no doubts in the answer.","Multiple Selection","Use this component to select multiple correct options.","Long Open Answer","Use this type of components for open answers where the employee can make longer descriptions.","Try to make the statement as clear and simple as possible so that the answers are not ambiguous and the information provided really adds value.","Short Open Answer","Use this component for short answers.","Tags","Use this component when the employee has to enter answers in the form of labels.","Select question type","Configure question","Save question","Enter the answer options","You need at least two options but you can add all the ones you need.","optionIndex","Option title","Enter the answer levels","Low level","Medium level","High level","Preview","Question has errors in configuration. Go to previous step and configure it properly.","tag 1","tag 2","option 1","option 2","Create KPIs","You can create KPIs of the sent questionnaires in order to visualize the range of responses. Select the chart icon to see the results for each questions you are looking for.","Survey questions","See all questions","Search in questions","Created questions","Sent questions","Send questions","Don't send questions","Question preview","#","Participation(%)"," more"," groups","Question","Date","There are no questions with this filter","Delete question","Your are going to delete the question '","'. Are you sure?","Show in Dashboard","Remove from Dashboard","Descend","Ascend","This question has not been answered yet","Participation","Others","No content yet","All questions have already been published.","Applications closed","Draft","Open for application","Corporate Goals","Create a public goal to applicants","We launched this new goal with the aim of developing the full potential of each of our employees while focusing on their needs and abilities. Be the one who draws up the transformation plan according to your personal and professional goals.","Create a public goal","Create a private goal and select a team","We've identified the skills you need to advance your career. This proposed goal will allow you to develop or strengthen them. Continuous transformation is essential for the evolution of your professional career.","Create a private goal","New goals and challenges","Search goals for team","Visibility","Public","Private","Application phase","Open","Closed","Finished","Launched","Published","Status","Start date (asc)","Start date (desc)","End date (asc)","End date (desc)","Title (asc)","Title (desc)","Add new goal","Goal dates: ","Goal team","Save team and goal"," skills"," education"," languages","Delete goal: ","You are going to delete the selected goal \"","\". All the progress and information about this one will disappear and this action cannot be undone. Are you sure you want to continue?","Goal was successfully deleted","New goal","Enter the title of the goal or challenge","Description of the goal","Type here a brief description","Link with more information","Add a link with more information","Number of people needed","Country","Enter country","City","Enter city","Application closing","Goal open for applications","Choose a picture for the cover","Upload picture","Skills needed","Overview","General skills","Please choose the General Skills required for the goal","Language skills","Please choose the Language Skills required for the goal","Goal has been successfully created","Goal has been successfully updated","Confirm publishing","You are going to publish the goal. After this point, you won't be able to edit some of the fields. Please continue only if you are sure goal is ready.","Goal is open for applications","Goal is not open for applications","Goal has been successfully edited","More information","Team's goal progress","Percentage of adaptation to the objective","More than 80% of skills is considered a good ratio to achieve the proposed objectives. Below 50% it is advisable to recruit or replace members with others with the specific skills needed.","Add a team member from the applicants list","The AI have chosen a team automatically but you can edit it manually. The goal won't start until you validate the team.","Just finished the application date, the AI engine will filter the applicants automatically to select the ones who are the best choice. So then, you will see only the applicants number needed to create the team for the goal.","Still open","You are going to launch the goal. Please continue only if you are sure the goal is ready to be launched.","Confirm launching","You are going to set the goal result. Please, continue only if you are sure the result is the correct one.","Confirm "," result","Dates for candidates application","application","Goal "," end date"," start date","Stand by","Waiting for candidates","Dates for goal achievement","Edit goal","firstName","lastName","Candidates who are applying"," applicants","Matching with the goal","Search an employee","Find people for the goal","Employees on charge of this goal","Selected employees","You are going to remove this employee for the goal's team. You can select it for another goal or add it again later. Are you sure you want to continue?","Remove employee","Employees","Launch goal","No employees assigned yet","The candidate application phase is still open","Goal is still in draft phase","The team is built but goal has not started yet","The team has not been built yet","Published for applicants","The goal was a failure","The goal has ended. Please select the global evaluation that best fits the final result of the goal.","The goal was a success","You have not provided information yet","Goal has been successfully launched","Goal result has been set successfully","Team skills","Internal Promotions","Company Settings","Save profile","General Information","Name","Feedback email","General company information successfully updated","Step","Mr. Fleebe for Teams","Mr. Chatbot","Go to
Teams Administration","Upload the downloaded application.","Assign permissions","Take it easy... The chatbot needs time to refresh and become avaiable.","Mr. Fleebe for Slack","Add to Slack","Click on the 'Add to Slack' button.","If the slack workspace dropdown is displayed, select the desired one.","Accept the conditions","Azure Information","Service Principal Id","Service Principal Secret","**************************","Purchase Subscription Id","Azure company information successfully updated","Search skills","Add new skill","Moderation pending","Approved","Requester","Moderator","There are no skills with this filter","Pending Moderation","Edit Skill","Delete skill","Moderate","If you delete the skill, it will be deleted the skill and the employee request. Do you want to proceed?","Skill validated","The skill has been validated. From now, employees can select it to complete their curriculum","By age","By group","Motivation","Employees motivational range","There's no selected content yet"," in "," employees ","category"," employee in "," employees in "," (from "," years old)"," (to ","Search a hobby","When chart is finally built, click on the colored areas to see how employees relate to the selected hobbies.","Main hidden hobbies","Talent Detection","View all employees","Learning in the Company","Search trainings","Create the training your company needs","If it's necessary, you can also create courses that suit your company's needs.","Add training","The training has been successfully created","Type here","Start date","End date","Duration (hours)","Topics (separated by commas)","Type topics","On-site information","Address","Enter address","Floor","Enter floor","Room","Enter room","Schedule","Enter schedule","Start time","End time","Attach image cover","Type here the URL of the course","Contact the provider to obtain a valid link for the course.","Url of the training","E.g. https://www.training.com/course/name-of-the-course/","Create training","Spanish","Delete course","You are going to delete this course. This action cannot be undone. Are your sure you want to continue?","Close","French","German","Italian","Portuguese","Today","Yesterday","Last update","N/A","Yes","No","Back"," results"," employees assigned","Choose a file to upload","time"," min"," h","Are your sure you want to continue?","Search by name, surname or email","Email","Surname","User","People needed","Goal start date","Goal end date","Goal progress","Coworker with this goal","Coworkers with this goal","Participate","Reject","Reject my application"," colleagues registered","My Groups","View profile","View questions","Questions","Survey Questions","Search questions","Delete questions","View KPIs","View Questions","New questions","Participation (%)","Send date","Remove question from group","Edit question","Send questions to groups","Select the recipients you want to send the survey. Only an admin can create a recipient group. If you can't find the group you need, please contact with your Human Resources administrator.","Send","Group name","People","Answers to '","No answer yet","Show question answers","count","total","People have answered","Pin this chart to view it in the dashboard","Unpin this chart from the dashboard","Show question KPI","I agree to share my information with the company","Can't find the skill?","Can't find the language?","Add new language","Search for a skill","Search for a language","Pending for approval skills:","Pending for approval languages:","Create new skill","Create new language","The new skill needs to be validated by HR admin.","The new language needs to be validated by HR admin.","Skill type","Create Skill","Create Language","Rows per page ","Go to first page","Go to previous page","Go to next page","Go to last page","Tip","Kind Reminder","Feedback","Bug","Please write your feedback here. Thank you very much.","Please specify how to reproduce this bug or include a screenshot.","The goal hasn't started yet","The goal is finished","You don't have any goals yet","Employee doesn't have any goals yet","Duration","Topics","My Ideal Job","Learning path","Company training","What would be your ideal job right now? Complete it here to be guided in achieving your goals!","Add ideal job","Update your ideal job","Add a title for your ideal job","Add a description for your ideal job","Recommended Learning","Hobbies","Edit hobbies","Category","Search for a hobby","Can't find the hobby?","Add new hobby","Create new hobby","Create Hobby","Sport","Music","Culture","Technology","Other","No hobbies defined","Age","--","Votes","Employee Groups","Roles","Mr. Fleebe","Search Employee Groups","Add new Group","no people"," people","no learning"," learning","There are no groups with this filter","Delete Employee Group","You are going to delete this employee group. This action cannot be undone. Are your sure you want to continue?","Edit Employee Group","New group","Import employee list","How to import a group.","Import a document of a valid format. The first column must be 'Email' and should contain the emails of the employees you want in the group.","No Column Named Email.","There must be a column named 'Email'.
To name a column, the first row in the column must be 'Email'. Please upload a new document with this column name.","All Values Are Not Emails.","Not all the values under the 'Email' column are a valid email:

","

Please check the format.","Emails Not Found.","The following emails where not found between the employees:

","

Other emails where added to the group.","Employees Added to Group.","All the employees were added to the group.","Employees selected ","Manage","Manager","Viewer","Current Group Employees and Roles","Questions Management","Learning Assigned to This Group","Select training","Search courses for this group","Permissions Management","Edit group","Manage group","Siguiente","Anterior","Editar","Responder","Guardar","Eliminar","Agregar","Nuevo","Cancelar","Continuar","Guardar como borrador","Publicar","Descargar","Información guardada correctamente","Bajo","Medio","Alto","Empleado","Mánager de grupo","Administrador","IT Mánager","La fecha debe ser hoy o más tarde","Fecha no válida","El curso ya ha sido asignado a este grupo","No se encontró al empleado. Por favor, actualice la página","Ya existe un grupo con ese nombre.","No se encontró el grupo de empleados. Por favor, actualice la página","No se encontraron varios grupos de empleados","Curso no encontrado","Compañía no encontrada","El empleado seleccionado ya está asignado al objetivo","Los empleados no pueden ser asignados a un objetivo finalizado","No se puede desasignar a los empleados de un objetivo finalizado","No se pudo realizar la conexión a Azure con los datos proporcionados. Confirme que el ID de cliente y el secreto son correctos.","No se encontraron los archivos esperados de LinkedIn. Por favor, asegúrese de que existen archivos de 'Educación', 'Idiomas', 'Posiciones', 'Perfil' o 'Habilidades'","Campo obligatorio","La extensión de archivo no es compatible","Tamaño de archivo excedido","Por favor, actualice la 'Fecha de inicio del objetivo' con una fecha igual o futura que la actual","La fase de aplicación sigue abierta. Por favor, espere a que finalice la fase de solicitud antes de lanzar el objetivo","El número de personas asignadas es menor de lo necesario. Por favor, asigne más personas antes de lanzar el objetivo","No se puede superar el número de personas necesarias","El resultado del objetivo no se puede establecer hasta que finalice","El resultado del objetivo ya se ha establecido y no se puede actualizar","Los objetivos finalizados no pueden actualizarse","Fecha de inicio no válida","Fecha de fin no válida","Ya existe un hobby con ese nombre.","Ya existe una formación con ese título","Ya existe un interés con ese título","La fecha de inicio no es válida","La pregunta ya está publicada","No se encontró la pregunta","No se encontró la pregunta. Por favor, actualice la página","Las preguntas con respuestas no se pueden actualizar","No se encontraron algunas preguntas","No se encontró la habilidad solicitada. Por favor, actualice la página","Se está creando una habilidad con ese nombre.","Ya existe una habilidad con ese nombre.","Se encontró un formato de archivo inesperado","Error desconocido","El número de usuarios encontrados en Azure Active Directory supera el número de usuarios comprados","No se encontró al empleado","la fecha '","La fecha debe ser anterior o igual a hoy","Modo","En línea","In situ","Fin","El campo debe tener como máximo "," caracteres","El campo debe ser como máximo "," elementos","El campo debe ser como mínimo ","Se requiere la opción ","Inicio","Escriba aquí para agregar...","La fecha 'hasta' debe ser posterior a la fecha 'desde'","El archivo cargado tiene una extensión no válida"," MB tamaño máximo","Todavía no se ha cargado ningún documento","Vas a eliminar este archivo. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?","Eliminar archivo","Archivo demasido grande","El archivo que intentas cargar es demasiado grande.","Tipos admitidos: ","El campo debe ser una URL válida","Asistente IA","Preguntas a los empleados","Bienvenido a tu asistente de IA. Tu asistente de IA te hará preguntas a través del chatbot, tus respuestas te darán información para brindarte la mejor ruta de aprendizaje y experiencia en Fleebe. Si necesitas modificar tus respuestas, puedes hacerlo aquí en cualquier momento.","Amplía tu respuesta o comparte tus comentarios (ya sean positivos o constructivos)","Escribe tus opciones (separadas por comas o enter)","Su administrador aún no ha configurado las preguntas","Rol","Ir al área de administrador","Ir al área de empleados","Cerrar sesión","Elige una imagen para tu avatar","Información personal","Fecha de nacimiento","Configuración de la aplicación","Idioma","Objetivos y desafíos","Objetivos y desafíos de búsqueda","Objetivos y desafíos destacados","Solo "," puestos vacantes"," días restantes","De ","Mis metas y desafíos","Progreso","Tu administración aún no ha configurado metas","Mi aprendizaje","Aprendizaje","Elige un certificado para cargar","Buscar","No hay cursos con este filtro","No copiamos ™tus búsquedas. Esta es un área privada.","Resultados de búsqueda para ","Aprendizaje destacado para ti","Tipo","Todos","Formación interna","en línea","in situ","Califica esta formación","Es ™muy importante para nosotros obtener tus comentarios para personalizar nuestra plataforma de aprendizaje con los mejores cursos adaptados a usted.","Enviar formación","Formación completada","Establecer entrenamiento como completado","Vas a establecer un entrenamiento como completado. Esta acción no se puede deshacer, así que asegúrate de que sea correcta.","Ir a la formación","Si tienes algún certificado o diploma que acredite una capacitación terminada, recuerda agregarlo a tu experiencia actual.","Información de la formación in situ","Cuanta más información proporciones a Fleebe Corporate: CV, interés, trabajo ideal ... , más precisa será la recomendación de tu asistente de IA para guiarte hacia tus aspiraciones futuras.","Mi ruta de aprendizaje"," Capacitación de IA Camino a mi trabajo ideal","Siguiendo los parámetros establecidos en la configuración de tu posición ideal, nuestra IA ha creado un itinerario de entrenamiento que puede ayudarte a conseguir tu objetivo. Recuerde que esta ayuda es solo para orientación y que, en última instancia, tú decides qué es lo mejor para ti","Habilidades","Idiomas","Educación financiera","Principiante","Avanzado","Experto","Aprendizaje adicional","No hay sugerencias en esta área/nivel","Deseo que se recalcule mi ruta de aprendizaje","El recálculo se realizará de forma desatendida durante la noche","Mi entrenamiento","Tu camino de aprendizaje no cambiará si no cambias tu trabajo ideal.","Todavía no tienes ningún entrenamiento completado","Agregar nueva capacitación","Nueva formación","Vas a eliminar el entrenamiento seleccionado. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?","Eliminar formación","Editar entrenamiento","Descripción de la formación","Introduzca una breve descripción","Título de la formación","Introduce un título","Añade un nuevo interés","Nuevo interés","Vas a eliminar el interés seleccionado. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?","Eliminar interés","Editar interés","Descripción del interés","Introduce una breve descripción","Título del interés","Intereses","En esta sección te invitamos a completar tus intereses y aficiones. También los aprendizajes que has hecho y que te parecen interesantes para reflexionar.","Mis intereses","Habilidades actuales","Últimos 5 certificados y cursos","Presencia","Última actualización, ","Objetivos alcanzados","Sus habilidades generales","No te preocupes si sigues sin ver nada aquí. Al completar su perfil y con el flujo de trabajo diario aparecerá mucha información.","Completa tu trabajo actual e ideal para completar la tabla a continuación que muestra las habilidades que son relevantes para ti.","Para agregar una nueva habilidad o modificar sus niveles, visite las secciones Mi trabajo actual o Mi trabajo ideal. Si desea reemplazar una habilidad por otra, puede hacerlo haciendo clic en el botón Editar a continuación.","No tenemos suficiente información para crear el gráfico","Editar gráfico de rendimiento","Actualización de perfil","Bienvenido a Fleebe","Tu nueva herramienta de desarrollo profesional","Los comienzos son difíciles. Así que sigue los siguientes pasos para completar tu perfil de una manera rápida y amigable.","En primer lugar...","Completa tu perfil personal. Ya sabes, nombre, edad, foto personal, trabajo actual, etc. Solo tienes que pasar el cursor sobre el icono del avatar en la esquina superior derecha de la aplicación.","Somos bastante atrevidos y queremos visualizar en un solo gráfico no solo tu grado de adaptación a tu posición actual sino también a una posición ideal creada por ti. ¿Nos puedes ayudar? Sigue los enlaces en las tarjetas en el lado derecho.","Para esto necesitamos dos cosas: primero, enumera las habilidades que mejor describen tu trabajo actual; Y segundo, haz lo mismo pero con las habilidades de tu trabajo ideal, el que te gustaría tener en el futuro. Fácil, ¿verdad?","Si importas tu perfil desde Linkedin, la mayoría de esas habilidades se cargarán automáticamente y solo tendrás que elegir cuál de ellas encaja mejor en los trabajos descritos por ti. Pero, si lo prefieres, puedes hacerlo manualmente.","Y eso es todo","Cuando termines, deberías ver algo como esto. Una forma bastante intuitiva de visualizar tanto su ajuste a su trabajo actual como al ideal.","Ver un ejemplo","Comienza aquí creando tu perfil completo de habilidades","o completarlo en partes","Perfil de habilidades","Selecciona las 12 habilidades más relevantes entre todas las habilidades que tienes o desearías.","Seleccionar habilidades","Trabajo actual","Seleccione las 6 habilidades más relevantes en tu experiencia profesional actual.","Selecciona de entre todas las habilidades que definen tu posición actual, las 6 más relevantes para ti.","Y si quieres que sea más rápido...","Seleccionar habilidades laborales actuales","Obtén tu perfil de LinkedIn","Trabajo ideal","Selecciona las 6 habilidades que te gustaría desarrollar para tu trabajo ideal.","Define tu posición ideal y añade todas las habilidades que creas necesarias para realizarla. Luego puedes seleccionar los más importantes."," Seleccione tus habilidades laborales ideales","Ir a mi trabajo ideal","Ejemplo de perfil de marketing","Aquí puedes ver las habilidades de Megan.","Las 6 habilidades que coinciden con tu trabajo actual (púrpura)","Las 6 habilidades que te gustaría desarrollar (azul)","Las 12 habilidades que coinciden con tu experiencia actual (naranja)","Ya sea que las importes desde Linkedin o las crees manualmente, puede seleccionar las 6 habilidades que mejor definan tu posición actual y deseada para el futuro.","Con este gráfico puedes, de un vistazo, comparar tu talento actual y futuro para gestionar tu formación y plan de carrera en consecuencia. Esto también ayuda a los responsables de Recursos Humanos a ofrecerte las condiciones de trabajo que mejor se adaptan a ti o a detectar, por ejemplo, empleados infravalorados o insatisfechos.","Ayúdanos a ayudarte.","Gerente de marketing digital","Entendido","Habilidades laborales actuales","Habilidades laborales ideales","Habilidades de experiencia actual","Ninguno","Tomar la iniciativa","Analítico","Creativo","Resolución de problemas","Actitud positiva","Empatía","Dirección","Introducción","Para completar tu tabla de perfil, debes completar las 2 secciones principales sobre ti: Experiencia actual y Trabajo ideal. Una vez completadas estas secciones, tendrás a tu disposición todas las habilidades que necesitas para calificar y construir tu visualización de arañas.","* Recuerda que siempre podrás editar tus habilidades y revisarlas durante todo tu proceso de crecimiento y aprendizaje.","Seleccionar mis habilidades laborales actuales","Selecciona un mínimo de 3 habilidades y un máximo de 6 habilidades más importantes en mi trabajo actual.","Selecciona mis habilidades laborales ideales","Selecciona un mínimo de 3 habilidades y un máximo de 6 habilidades que te gustaría desarrollar para tu trabajo ideal.","Es necesario que elijas entre 3 y 6 habilidades para construir tdu gráfico de rendimiento.","Buscar una habilidad","Debe tener un trabajo actual con al menos 3 habilidades para poder crear este gráfico.","Ir a Mi trabajo actual","Debe tener un trabajo ideal con al menos 3 habilidades para poder crear este gráfico.","Ir a Mi trabajo ideal","Tablero","Mi perfil","Grupos","Experiencias previas","Mi trabajo actual","Acerca de mí","Otra experiencia","Educación","Editar idiomas","Posición actual","Habilidades generales","Habilidades lingüísticas ","Mis objetivos y desafíos","Importar mi perfil de LinkedIn","Importa tu perfil de LinkedIn","Siga las instrucciones a continuación para importar tu perfil de LinkedIn.","Haga clic en este enlace para acceder a tu perfil de LinkedIn (inicie sesión si es necesario): ","Configure el contenido que desea importar. LinkedIn te ofrece algunas alternativas.","Haga clic en el botón Request file (la descarga estará lista en aproximadamente 24 horas).","Dos emails te enviará las instrucciones que debes seguir. El first one contiene la información que necesitas cargar aquí. El segundo es sobre tu actividad en LinkedIn y el historial de tu cuenta, y no lo necesitamos.","Download el archivo.","Haga clic en el botón de abajo y seleccione el archivo .zip descargado de su computadora.","And that's all. Si todo va bien, todos tus datos se colocarán aquí. Comprueba si tu experiencia actual está bien. Si no, puedes editarlo en LinkedIn y repetir la operación (recomendado) o editarlo dentro de esta aplicación haciendo clic en el botón Editar, junto a cada experiencia.","Navegar para subir el perfil de LinkedIn","Perfil importado correctamente","Verifique las fechas de tus posiciones e introduce el nivel de tus habilidades, y por último define si tu educación ha sido en línea o en el sitio.","En esta sección es importante que subas tu currículum, la experiencia será más personalizada si conocemos el punto de partida. Por otro lado, debes diferenciar entre las habilidades que has generado durante tu vida profesional y las habilidades aprendidas en tu puesto actual al rellenar los campos.","Habilidades directivas","Editar habilidades generales","Editar habilidades lingüísticas","Eliminar habilidad que se está utilizando en el gráfico de rendimiento","Está intentando eliminar una habilidad que se está utilizando en el gráfico de rendimiento. Si después de eliminar esta habilidad quedan menos de 3 habilidades no se creará el gráfico.","Presente","Cuéntame algo sobre ti","Acerca de ti","Sube tu currículum","Eliminar currículo","Va a eliminar el currículo. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?","Edita tu posición actual","Edita tu puesto de trabajo","Agregar trabajo actual","Agregar nueva experiencia","Título","Introduce el puesto de trabajo","Descripción del trabajo","Introduce la descripción del trabajo","Empresa","Introduce la empresa","Ubicación","Introduce la ubicación del trabajo","Iniciar","Eliminar experiencia","Vas a eliminar la experiencia seleccionada. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?","Edita tu educación","Agregar nueva educación","Título educativo","Institución","Introduce una institución","Descripción","Introduce una descripción","Introduce una ubicación","De","Para","En curso","Eliminar educación","Vas a eliminar la educación seleccionada. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?","Guía de registro desde Azure Active Directory (Ad)","

Para generar la entidad de servicio, vaya a Azure AD y siga los pasos siguientes:

  1. Vaya a Azure Active Directory y crea una nueva aplicación en Registro de aplicaciones.
  2. Escribe un nombre en el campo 'Nombre'.\n\n
  3. En Tipos de cuenta compatibles, seleccione la opción 'Inquilino único' y haga clic en el botón 'Registrar'.
  4. Cuando tu aplicación ya esté creada, vaya a la sección 'Permisos de API' y agrega una nueva de tipo 'User.Read.All'.
  5. Ahora necesitas agregar un secreto de cliente, Recomendamos 24 meses de fecha de vencimiento. Ahora copie el secreto de cliente.

Pasos para conectarse con Fleebe:

  1. Copie el 'ID de cliente de aplicación' del paso anterior en el campo 'Id. de cliente de entidad de servicio'.
  2. Copie el 'secreto de cliente' en el campo 'Secreto de cliente de entidad de servicio'.
  3. Haga clic en el botón 'Validar' y debería ver el número de usuarios de su AD.
","ID. de inquilino","ID. de suscripción de compra","ID. de cliente principal de servicio","Escriba el identificador de entidad de servicio","Secreto de cliente principal de servicio","Escriba el secreto de entidad de servicio","La siguiente cantidad de usuarios se importará desde Azure Active Directory después del proceso de registro","Validar","Iniciar sesión","La subscripción no se ha completado","Lo sentimos, no se ha podido completar la subscripción debido a que la cantidad de usuarios comprados (",") en Azure Active Directory. Por favor, reinicie el proceso de compra.","Reiniciar compra en Microsoft AppSource","Su sesión finalizó","Has finalizado tu sesión. Para volver de nuevo, haga clic en el botón.","Iniciar sesión en Fleebe Corporate","No hay suficientes permisos","Debe ser administrador para ingresar a la página solicitada. Para continuar usando el sitio, haga clic en el botón.","Vuelve a Fleebe Corporate","Arrendatario no autorizado","La cuenta que está utilizando para iniciar sesión no está registrada en la aplicación. Por favor, confirme que esté registrado para usar Fleebe Corporate y continúe.","Vuelve a Fleebe Corportae","Usuario no autorizado","La cuenta que está utilizando para iniciar sesión no está permitida en la aplicación. Confirme que esté registrado para usar Fleebe Corporate y continúe. Si tiene varias cuentas, intente cerrar sesión e iniciar sesión de nuevo.","% de empleados respondidos","Bienvenido a Fleebe Corporate","Empieza donde quieras","Comienza la experiencia con tu asistente de IA cuando lo desees. Completa las cuatro tarjetas generales debajo de estas infobox.","Completa el perfil de tu organización","Rellena todos los datos corporativos de tu empresa con sus principales características: ¿Qué tan grande es tu organización? ¿Dónde se encuentra?","Perfil completo de la empresa","Crea las habilidades que tu organización necesita","Tu organización es diferente y única, por lo tanto, tiene necesidades específicas que bien sabe el administrador. Créalos para empezar a buscar talento","Crear habilidades","Crear un formulario para obtener comentarios de los empleados","Tus empleados son talentosos, por lo tanto, su opinión es valiosa. Cree aquí un formulario para obtener sus comentarios.","Crear formulario","Crea objetivos y desafíos para su organización","Mantén motivados a tus equipos y empleados, crea objetivos y metas comunes que aporten valor a la empresa.","Crear objetivos y desafíos","La nueva asistencia de IA para ayudar a tus empleados a aprender la ruta hacia sus propias preferencias y estilo de vida","Buscar empleados...","Experiencia actual","El empleado aún no ha proporcionado información","El empleado aún no ha proporcionado información sobre la experiencia","El empleado aún no ha proporcionado información educativa","El empleado aún no ha proporcionado idiomas","El empleado aún no ha proporcionado habilidades generales","El empleado aún no ha proporcionado la información de trabajo ideal","Asistente de IA","Estas son las respuestas proporcionadas por el empleado","El empleado aún no ha proporcionado información de interés","El empleado aún no ha proporcionado información de aprendizaje","El empleado aún no ha proporcionado pasatiempos","Crear nuevo formulario de encuesta","Configura las preguntas para tu empresa y elija cuáles de ellas deben ser visibles para tus empleados","Agregar nueva pregunta","Nivel","Utilice este componente para que el empleado seleccione un nivel de educación, experiencia o talento, etc. rápidamente.","Trate de hacer la declaración lo más simple posible para que las respuestas no sean ambiguas y la información proporcionada realmente agregue valor. Establece niveles claros y bien contrastados para que no haya dudas en la respuesta.","Introduzca la declaración de la pregunta","Selección única","Utiliza este componente para seleccionar una sola opción entre varias disponibles.","Trata de hacer la declaración lo más simple posible para que las respuestas no sean ambiguas y la información proporcionada realmente agregue valor. Establece opciones claras y bien contrastadas para que no haya dudas en la respuesta.","Introduce la declaración de la pregunta","Selección múltiple","Utilice este componente para seleccionar varias opciones correctas.","Respuesta abierta larga","Utiliza este tipo de componentes para respuestas abiertas donde el empleado puede hacer descripciones más largas.","Trata de hacer la declaración lo más clara y simple posible para que las respuestas no sean ambiguas y la información proporcionada realmente agregue valor.","Respuesta abierta corta","Usar este componente para respuestas cortas.","Etiquetas","Utiliza este componente cuando el empleado tenga que introducir respuestas en forma de etiquetas.","Seleccionar tipo de pregunta","Configurar pregunta","Guardar pregunta","Introduce las opciones de respuesta","Necesitas al menos dos opciones, pero puede agregar todas las que necesites.","Título de la opción","Introduzce los niveles de respuesta","Nivel bajo","Nivel medio","Nivel alto","Vista previa","La pregunta tiene errores en la configuración. Vaya al paso anterior y configúralo correctamente.","opción 1","opción 2","Crea KPIs","Puedes crear KPIs de los cuestionarios enviados para visualizar el rango de respuestas. Selecciona el ícono del gráfico para ver los resultados de cada pregunta.","Preguntas de encuesta","Ver todas las preguntas","Buscar en preguntas","Preguntas creadas","Preguntas enviadas","Enviar preguntas","No enviar preguntas","Vista previa de la pregunta","Participación(%)"," más"," grupos","Pregunta","Fecha","No hay preguntas con este filtro","Eliminar pregunta","Vas a eliminar la pregunta '","'. ¿Estás seguro?","Mostrar en el panel","Eliminar del panel","Descenso","Ascender","Esta pregunta aún no ha sido respondida","Participación","Otros","Aún no hay contenido","Todas las preguntas definidas son públicas","Aplicaciones cerradas","Borrador","Abierto para aplicación","Objetivos corporativos","Crear un objetivo público para los solicitantes","Lanzamos este nuevo objetivo con el objetivo de desarrollar todo el potencial de cada uno de nuestros empleados mientras nos enfocamos en sus necesidades y habilidades. Sé quien elabore el plan de transformación de acuerdo con tus objetivos personales y profesionales","Crear un objetivo público","Crear un objetivo privado y seleccionar un equipo","Hemos identificado las habilidades que necesitas para avanzar en tu carrera. Esta meta propuesta te permitirá desarrollarlas o fortalecerlas. La transformación continua es esencial para la evolución de tu carrera profesional.","Crear un objetivo privado","Nuevos objetivos y desafíos","Buscar objetivos para el equipo","Visibilidad","Público","Privado","Fase de aplicación","Abierto","Cerrado","Terminado","Lanzado","Publicado","Estado","Fecha de inicio (asc)","Fecha de inicio (desc)","Fecha de finalización (asc)","Fecha de finalización (desc)","Título (asc)","Título (desc)","Agregar nuevo objetivo","Fechas de gol: ","Equipo de gol","Salvar equipo y gol"," habilidades"," educación"," lenguajes","Eliminar objetivo: ","Va a eliminar el objetivo seleccionado \"","\". Todo el progreso y la información sobre este desaparecerá y esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?","El objetivo se eliminó correctamente","Nuevo objetivo","Introduce el título del objetivo o desafío","Descripción del objetivo","Escriba aquí una breve descripción","Enlace con más información","Agregar un enlace con más información","Número de personas necesarias","País","Introduce el país","Ciudad","Introducir ciudad","Cierre de la aplicación","Objetivo abierto para aplicaciones","fin","Elige una imagen para la portada","Subir imagen","Habilidades necesarias","Información general","Elige las habilidades generales requeridas para el objetivo","Habilidades lingüísticas","Por favor, elige las habilidades lingüísticas necesarias para el objetivo","El objetivo se ha creado correctamente","El objetivo se ha actualizado correctamente","Confirmar publicación","Vas a publicar el objetivo. Después de este punto, no podrá editar algunos de los campos. Por favor, continúe solo si está seguro de que el objetivo está listo.","Escribe aquí una breve descripción","El objetivo está abierto para aplicaciones","El objetivo no está abierto para aplicaciones","El objetivo se ha editado correctamente","Más información","Progreso del objetivo del equipo","Porcentaje de adaptación al objetivo","Más del 80% de las habilidades se considera un buen ratio para alcanzar los objetivos propuestos. Por debajo del 50% es aconsejable reclutar o reemplazar miembros con otros con las habilidades específicas necesarias.","Agregar un miembro del equipo de la lista de solicitantes","La IA ha elegido un equipo automáticamente, pero puedes editarlo manualmente. El objetivo no comenzará hasta que valides al equipo.","Recién finalizada la fecha de solicitud, el motor de IA filtrará a los solicitantes automáticamente para seleccionar los que sean la mejor opción. Entonces, solo verás el número de solicitantes necesarios para crear el equipo para el objetivo.","Permanece abierto","Vas a lanzar el objetivo. Por favor, continúa solo si está seguro de que el objetivo está listo para ser lanzado.","Confirmar lanzamiento","Vas a establecer el resultado del objetivo. Por favor, continúa solo si está seguro de que el resultado es el correcto.","Confirmar "," resultado","Fechas para la solicitud de candidatos","Aplicar","Objetivo "," fecha final"," fecha de inicio","Esperando candidatos","Fechas para el logro del objetivo","Editar objetivo","Candidatos que están solicitando"," candidatos","Coincidiendo con el objetivo","Buscar objetivos y desafíos","Encuentra personas para el objetivo","Empleados a cargo de este objetivo","Empleados seleccionados","Vas a eliminar a este empleado del equipo del objetivo. Puede seleccionarlo para otro objetivo o agregarlo nuevamente más tarde. ¿Estás seguro de que quieres continuar?","Eliminar empleado","Empleados","Objetivo de lanzamiento","No hay empleados asignados todavía","Sigue abierta la fase de solicitud de candidatos","El objetivo todavía está en fase de borrador","El equipo está creado pero la meta aún no ha comenzado","El equipo todavía no se ha creado","Publicado para candidatos","El objetivo fue un fracaso","El objetivo ha finalizado. Seleccione la evaluación global que mejor se ajuste al resultado final del objetivo.","El objetivo fue un éxito","Todavía no has proporcionado información","El objetovo se ha lanzado correctamente","El resultado del objetivo se ha establecido correctamente","Habilidades de equipo","Promociones internas","Configuración de la empresa","Guardar perfil","Nombre","Email de feedback","Información general de la empresa actualizada correctamente","Paso","Mr. Fleebe en Teams","Ir a Administración de Teams","Subir la aplicación descargada","Asignar permisos","Tómalo con calma... El chatbot necesita tiempo para refrescar y estar disponible.","Mr. Fleebe en Slack","Añadir a Slack","Hacer click en el botón 'Añadir a Slack'","Si se muestra el desplegable de espacio de trabajo de slack, seleccionar el deseado","Aceptar las condiciones","Información de Azure","Id. de entidad de servicio","Secreto de entidad de servicio","*****************","Id. de inquilino","ID de suscripción de compra","Información de la compañía de Azure actualizada correctamente","Habilidades de búsqueda","Agregar nueva habilidad","Moderación pendiente","Aprobado","Solicitante","Moderador","No hay habilidades con este filtro","Pendiente de moderación","Editar habilidad","Eliminar habilidad","Moderar","Si elimina la habilidad, se eliminará la habilidad y la solicitud del empleado. ¿Quieres continuar?","Habilidad validada","La habilidad ha sido validada. A partir de ahora, los empleados pueden seleccionarlo para completar su currículum","Por edad","Por grupo","Búsqueda","Motivación","Rango de motivación de los empleados","Todavía no hay contenido seleccionado"," en "," empleados "," empleado en "," empleados en "," (desde "," años)","Busca un hobby","Cuando finalmente se construya el gráfico, haga clic en las áreas coloreadas para ver cómo los empleados se relacionan con los hobbies seleccionados.","Principales hobbies ocultos","Detección de talento","Ver todos los empleados","Aprendizaje en la empresa","Buscar formaciones","Cree la formación que su empresa necesita","Si es necesario, también puede crear cursos que se adapten a las necesidades de su empresa.","Añadir formación","La formación se ha creado correctamente","Agregar nueva formación","Editar formación","Escriba aquí","Fecha de inicio","Fecha de finalización","Duración (horas)","Temas (separados por comas)","Escriba temas","Información in situ","Introduzca el país","Introduzca la dirección","Piso","Introducir piso","Sala","Entrar en la sala","Programación","Introducir programación","Hora inicio","Hora fin","Adjuntar portada de imagen","Escriba aquí la URL del curso","Póngase en contacto con el proveedor para obtener un enlace válido para el curso.","URL de la formación","Por ejemplo, https://www.training.com/course/name-of-the-course/","Crear formación","Inglés","Eliminar curso","Vas a eliminar este curso. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?","Cerrar","Francés","Alemán","Portugués","Aún no ha proporcionado información","Hoy","Ayer","Última actualización","Sí","Atrás"," resultados"," solicitantes"," empleados asignados","Elija un archivo para cargar","¿Estás seguro de querer continuar?","Buscar por Nombre, Apellido y Email","Correo electrónico","Apellido","Usuario","Se necesita gente","Fecha de inicio del objetivo","Fecha de finalización del objetivo","Progreso de objetivos","Coworker con este objetivo","Coworkers con este objetivo","Participar","Rechazar mi solicitud"," colegas registrados","Mis Grupos","Ver perfil","Ver preguntas","Preguntas","Preguntas del formulario","Buscar preguntas","Borrar preguntas","Nuevas preguntas","Tus empleados tienen talento por lo que su opinión es valiosa. Crea desde aquí un formulario para recibir sus comentarios.","Participación (%)","Enviada","Ver KPIs","Ver Preguntas","Eliminar pregunta del grupo","Editar pregunta","Enviar preguntas a grupos","Selecciona los grupos de destinatarios a los que deseas enviar la encuesta. Solo un administrador puede crear un grupo de destinatarios. Si no puedes encontrar el grupo que buscas, por favor ponte en contacto con tu administrador de Recursos Humanos.","Enviar","Nombre del grupo","Miembros","Respuestas a '","Sin respuesta","Mostrar respuestas","Personas han respondido","Anclar esta gráfica para verla en el panel","Desanclar esta gráfica del panel","Ver KPI","Acepto compartir mi información con la empresa","¿No encuentras la habilidad?","¿No encuentras el idioma?","Agregar nuevo idioma","Buscar un idioma","Pendiente de habilidades de aprobación:","Idiomas pendientes de aprobación:","Crear nueva habilidad","Crear nuevo idioma","La nueva habilidad debe ser validada por el administrador de recursos humanos.","El nuevo idioma debe ser validado por el administrador de recursos humanos.","Tipo de habilidad","Crear habilidad","Crear idioma","Filas por página","Ir a la primera página","Ir a la página anterior","Ir a la página siguiente","Ir a la última página","Consejo","Amable recordatorio","Por favor, escriba aquí el feedback. Muchas gracias.","Por favor, especifique como reproducir este bug o incluya un pantallazo.","El objetivo aún no ha comenzado","El objetivo está terminado","Todavía no tienes ningún objetivo","El empleado aún no tiene ningún objetivo","Duración","Temas","Mi trabajo ideal","Ruta de aprendizaje","Entrenamiento de la compañía","¿Cuál sería tu trabajo ideal en este momento? ¡Complétalo aquí para ser guiado en el logro de tus metas!","Agregar trabajo ideal","Actualiza tu trabajo ideal","Añade un título para tu trabajo ideal","Añade una descripción para tu trabajo ideal","Aprendizaje recomendado","Editar pasatiempos","Categoría","¿No encuentras el hobby?","Añadir nuevo hobby","Crear nuevo hobby","Crear hobby","Deportes","Música","Cultura","Tecnología","No hay hobbies definidos","Edad","Votos","Grupos de empleados","Competencias","Buscar grupos de empleados","Añadir nuevo grupo","Cursos","sin personas"," personas","sin cursos"," cursos","No hay grupos con estos filtros","Eliminar grupo de empleados","Vas a eliminar este grupo de empleados. Esta acción no se puede deshacer. ¿Estás seguro de que quieres continuar?","Editar grupo de empleados","Nuevo grupo","Importar lista de empleados","Cómo importar un grupo.","Importa un fichero con un formato válido. La primera columna debe denominarse 'Email' y contener los emails de los empleados que quieres añadir al grupo.","No existe la columna 'Email'.","Debe exisitir una columna denominada 'Email'.
Para nombrar la columna, el texto de la primera fila de la columna debe ser 'Email'. Por favor, importa un nuevo fichero que incluya esta columna.","Ninguno de los valores es un email válido.","No todos los valores de la columna 'Email' son emails válidos:

","

Por favor, revisa el formato.","No se han encontrado los emails.","Los siguientes emails no se han encontrado entre los empleados:

","

El resto de emails han sido añadidos al grupo.","Empleados añadidos al grupo.","Todos los empleados han sido añadidos al grupo.","Buscar empleados","Seleccionados ","Gestionar","Mánager","Empleados y roles","Gestión de preguntas","Cursos asignados a este grupo","Seleccionar curso","Añadir nuevo curso","Sin conctenido de momento","Buscar cursos para este grupo","Gestión de Permisos","Apellidos","Editar grupo","Gestionar grupo","Suivant","Précédent","Modifier","Réponse","Enregistrer","Supprimer","Ajouter","Nouveau","Annuler","Continuer","Enregistrer en tant que brouillon","Publier","Informations sauvegardées avec succès","Faible","Employé","Dirigeant de groupe, chef de groupe","Administrateur","Responsable informatique","La date doit être aujourd’hui ou plus tard","Date non valide","Le cours a déjà été attribué à ce groupe","Employé introuvable. Veuillez actualiser la page","Un groupe portant ce nom existe déjà.","Le groupe d'employés est introuvable. Veuillez actualiser la page","Certains groupes d'employés sont introuvables","La société n'a pas été trouvée","Cours introuvable","L’employé sélectionné est déjà affecté à l’objectif","Les employés ne peuvent pas être affectés à un objectif terminé","Les employés ne peuvent pas être désaffectés d’un objectif terminé","La connexion à Azure avec les données fournies n’a pas pu être établie. Veuillez confirmer que l’ID client et le secret sont corrects.","Les fichiers LinkedIn attendus n’ont pas été trouvés. S’il vous plaît, assurez-vous que les fichiers 'Education', 'Langues', 'Postes', 'Profil' ou 'Compétences' existent","Champ obligatoire","L’extension de fichier n’est pas prise en charge","Taille du fichier dépassée","Veuillez mettre à jour la 'Date de début de l’objectif' avec une date égale ou future à la date actuelle","La phase d’application est toujours ouverte. S’il vous plaît, attendez la fin de la phase de candidature avant de lancer l’objectif","Le nombre de personnes affectées est inférieur aux besoins. S’il vous plaît, affectez plus de personnes avant de lancer l’objectif","Le nombre de personnes nécessaires ne peut être dépassé","Le résultat de l’objectif ne peut pas être défini tant qu’il n’est pas terminé","Le résultat de l’objectif a déjà été défini et ne peut pas être mis à jour","Les objectifs terminés ne peuvent pas être mis à jour","Date de début invalide","Date de fin invalide","Un passe-temps portant ce nom existe déjà.","Une formation portant ce titre existe déjà","Un intérêt portant ce titre existe déjà","La date de début n’est pas valide","La question est déjà publiée","La question n’a pas été trouvée","La question n’a pas été trouvée. S’il vous plaît, rafraîchissez la page","Les questions avec réponses ne peuvent pas être mises à jour","Certaines questions introuvables","La compétence demandée est introuvable. S’il vous plaît, rafraîchissez la page","Une compétence portant ce nom est en cours de création.","Une compétence portant ce nom existe déjà.","Un format de fichier inattendu a été trouvé","Erreur inconnue","Le nombre d'utilisateurs trouvés dans Azure Active Directory dépasse le nombre d'utilisateurs achetés","Employé introuvable","La date doit être antérieure ou égale à aujourd’hui","En ligne","Sur site","Le champ doit comporter au maximum "," caractères","Le champ doit être au maximum ","Le champ doit être au moins ","L’option "," est obligatoire","Démarrer","Tapez ici pour ajouter...","La date 'à' doit être postérieure à la date 'De'","Le fichier téléchargé a une extension non valide","Aucun document téléchargé encore","Vous allez supprimer ce fichier. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?","Supprimer le fichier","Fichier trop gros","Le fichier que vous essayez de télécharger est trop volumineux.","Types pris en charge: ","Le champ doit être une URL valide","Questions aux employés","Bienvenue dans votre assistant IA. Votre assistant IA vous posera des questions via le chatbot, vos réponses lui donneront des informations pour vous donner le meilleur parcours d’apprentissage et l’expérience dans Fleebe. Si vous avez besoin de modifier vos réponses, vous pouvez le faire ici à tout moment.","Développez votre réponse ou partagez vos commentaires (positifs ou constructifs)","Tapez vos options (séparées par des virgules ou entrée)","Votre administration n’a pas encore configuré les questions","Rôle","Aller à la zone administrateur","Aller à l’espace employé","Déconnexion","Choisissez une image pour votre avatar","Informations personnelles","Date de naissance","Paramètres de l’application","Langue","Objectifs & Défis","Objectifs et défis de recherche","Objectifs et défis en vedette","Uniquement "," postes vacants"," jours restants","Mes objectifs et défis","Progrès","Votre administration n’a pas encore configuré les objectifs","Mon apprentissage","Apprentissage","Choisissez un certificat à télécharger","Rechercher","Il n’y a pas de cours avec ce filtre","Nous ne copions ™pas vos recherches. Il s’agit d’un espace privé.","Résultats de recherche pour ","Apprentissage sélectionné pour vous","Tous","Formation interne","en ligne","sur site","Évaluez cette formation","Il est très important pour nous d’obtenir ™des commentaires de votre part pour personnaliser notre plateforme d’apprentissage avec les meilleurs cours adaptés à vous.","Formation terminée","Envoyer la formation","Définir la formation comme terminée","Vous allez définir une formation comme terminée. Cette action ne peut pas être annulée, alors assurez-vous d’avoir raison.","Aller à la formation","Si vous avez un certificat ou un diplôme qui accède à une formation terminée, n’oubliez pas de l’ajouter à votre expérience actuelle.","Informations de la formation sur site","Plus vous fournissez d’informations sur Fleebe, CV, intérêt, Emploi idéal... , plus la recommandation de votre assistant IA sera précise pour vous guider vers vos aspirations futures.","Mon parcours d’apprentissage","Parcours de formation à l’IA vers mon emploi idéal","En suivant les paramètres établis dans la configuration de votre position idéale, notre IA a créé un itinéraire d’entraînement qui peut vous aider à atteindre votre objectif. Rappelez-vous que cette aide n’est fournie qu’à titre indicatif et que vous décidez en fin de compte de ce qui vous convient le mieux.","Compétences","Langues","Éducation financière","Débutant","Avancé","Apprentissage supplémentaire","Aucune suggestion dans ce domaine/niveau","Je veux que mon parcours d'apprentissage soit recalculé","Le recalcul sera effectué sans surveillance pendant la nuit","Ma formation","Votre parcours d’apprentissage ne changera pas si vous ne changez pas votre emploi idéal.","Aucune formation n’est encore terminée","Ajouter une nouvelle formation","Nouvelle formation","Vous allez supprimer la formation sélectionnée. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?","Supprimer la formation","Modifier la formation","Description de la formation","Entrez une brève description","Titre de la formation","Entrez un titre","Ajouter un nouvel intérêt","Nouvel intérêt","Vous allez supprimer l’intérêt sélectionné. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?","Supprimer l’intérêt","Modifier l’intérêt","Description de l’intérêt","Titre de l’intérêt","Intérêts","Dans cette section, nous vous invitons à compléter vos intérêts et vos loisirs. Aussi les apprentissages que vous avez faits et que vous trouvez intéressants à réfléchir.","Mes intérêts","5 derniers certificats et cours","Présence","Dernière mise à jour, ","Objectifs atteints","Général","Vos compétences générales","Ne vous inquiétez pas si vous ne voyez toujours rien ici. En complétant votre profil et avec le flux d’emploi au jour le jour, beaucoup d’informations apparaîtront.","Remplissez votre emploi actuel et idéal pour compléter le tableau ci-dessous montrant les compétences qui sont pertinentes pour vous.","Pour ajouter une nouvelle compétence ou modifier ses niveaux, veuillez visiter les sections Mon emploi actuel ou Mon emploi idéal. Si vous souhaitez remplacer une compétence par une autre, vous pouvez le faire en cliquant sur le bouton Modifier ci-dessous.","Nous n’avons pas assez d’informations pour créer le graphique","Modifier le graphique de performance","Mise à jour du profil","Bienvenue à Fleebe","Votre nouvel outil de développement professionnel","Les débuts sont difficiles. Suivez donc les prochaines étapes afin de compléter votre profil de manière rapide et conviviale.","Tout d’abord...","Complétez votre profil personnel : nom, âge, photo personnelle, emploi actuel, etc. Vous n’avez qu’à survoler l’icône de l’avatar dans le coin supérieur droit de l’application.","Nous sommes assez audacieux et nous voulons visualiser dans un seul graphique non seulement votre degré d’adaptation à votre poste actuel mais aussi à une position idéale créée par vous. Pouvez-vous nous aider? Suivez les liens dans les cartes sur le côté droit.","Pour cela, nous avons besoin de deux choses: premièrement, énumérez les compétences qui décrivent le mieux votre emploi actuel; Et deuxièmement, faites la même chose mais avec les compétences de votre emploi idéal, celui que vous aimeriez avoir à l’avenir. Facile, non?","Si vous importez votre profil depuis Linkedin, la plupart de ces compétences seront chargées automatiquement et vous n’aurez qu’à choisir celles qui correspondent le mieux aux emplois que vous avez décrits. Mais, si vous préférez, vous pouvez le faire manuellement.","Et c’est tout","Quand vous avez terminé, vous devriez voir quelque chose comme ça. Une façon assez intuitive de visualiser à la fois votre adéquation à votre emploi actuel et à votre emploi idéal.","Voir un exemple","Commencez ici en créant votre profil de compétences complet","Ou complétez-le en plusieurs parties","Profil de compétences","Sélectionnez les 12 compétences les plus pertinentes parmi toutes les compétences que vous avez ou que vous voudriez.","Sélectionner des compétences","Emploi actuel","Sélectionnez les 6 compétences les plus pertinentes dans votre expérience professionnelle actuelle.","Sélectionnez parmi toutes les compétences qui définissent votre poste actuel les 6 plus pertinentes pour vous.","Et si vous voulez que ce soit plus rapide...","Sélectionnez les compétences professionnelles actuelles","Obtenez votre profil LinkedIn","Job idéal","Sélectionnez les 6 compétences que vous souhaitez développer pour votre emploi idéal.","Définissez votre position idéale et ajoutez toutes les compétences que vous jugez nécessaires pour l’exécuter. Ensuite, vous pouvez sélectionner les plus importants.","Sélectionnez les compétences professionnelles idéales","Aller à mon emploi idéal","Exemple de profil marketing","Ici, vous pouvez voir les compétences de Megan.","Les 6 compétences qui correspondent à son emploi actuel (violet)","Les 6 compétences qu’elle aimerait développer (bleu)","Les 12 compétences qui correspondent à son expérience actuelle (orange)","Que vous les importiez depuis Linkedin ou que vous les créiez manuellement, vous pouvez ensuite sélectionner les 6 compétences qui définissent le mieux votre position actuelle et souhaitée pour l’avenir.","Avec ce graphique, vous pouvez, en un coup d’œil, comparer vos talents actuels et futurs pour gérer votre formation et votre plan de carrière en conséquence. Cela aide également les responsables des ressources humaines à vous offrir les conditions de travail qui vous conviennent le mieux ou à détecter, par exemple, les employés sous-évalués ou insatisfaits.","Aidez-nous à vous aider.","Responsable marketing digital","J’ai compris","Compétences professionnelles actuelles","Compétences professionnelles idéales","Compétences d’expérience actuelles","Aucun","Support","Prendre l’initiative","Analytique","Créatif","Résolution de problèmes","Attitude positive","Faire preuve d’empathie","Médias sociaux","Gestion","Pour remplir votre tableau de profil, vous devez remplir les 2 sections principales vous concernant: Expérience actuelle et Emploi idéal. Une fois ces sections terminées, vous aurez à votre disposition toutes les compétences dont vous avez besoin pour évaluer et construire votre visualisation d’araignées.","* Rappelez-vous que vous serez toujours en mesure de modifier vos compétences et de les réviser pendant tout votre processus de croissance et d’apprentissage.","Sélectionnez mes compétences professionnelles actuelles","Sélectionnez un min. de 3 compétences et un max. de 6 compétences les plus importantes dans mon emploi actuel.","Sélectionnez mes compétences professionnelles idéales","Sélectionnez un min. de 3 compétences et un max. de 6 compétences que vous souhaitez développer pour votre emploi idéal.","Il est nécessaire que vous choisissiez entre 3 et 6 compétences pour construire votre graphique de performance.","Rechercher une compétence","Vous devez avoir un emploi actuel avec au moins 3 compétences pour pouvoir créer ce graphique.","Aller à l'emploi actuel","Vous devez avoir un Job idéal avec au moins 3 compétences pour pouvoir créer ce graphique.","Aller à l'emploi idéal","Tableau de bord","Mon profil","Groupes","Expériences précédentes","Mon emploi actuel","À propos de moi","Autre expérience","Modifier les langues","Position actuelle","Compétences générales","Compétences linguistiques","Importer mon profil LinkedIn","Importez votre profil LinkedIn","Suivez les instructions ci-dessous pour importer votre profil LinkedIn.","Cliquez sur ce lien pour accéder à votre profil LinkedIn (connectez-vous si nécessaire): ","Configurez le contenu que vous souhaitez importer. LinkedIn vous propose quelques alternatives.","Cliquez sur le bouton Request file (le téléchargement sera prêt dans environ 24 hours).","Two emails vous enverra les instructions que vous devez suivre. Le first one contient les informations que vous devez télécharger ici. Le second concerne votre activité LinkedIn et l’historique de votre compte, et nous n’en avons pas besoin.","Download le fichier.","Cliquez sur le bouton ci-dessous et sélectionnez le fichier .zip téléchargé depuis votre ordinateur.","And that’s all. Si tout se passe bien, toutes vos données seront facturées ici. Vérifiez si votre expérience actuelle est correcte. Sinon, vous pouvez le modifier dans LinkedIn et répéter l’opération (recommandé) ou le modifier dans cette application en cliquant sur le bouton Modifier, à côté de chaque expérience.","Parcourir pour télécharger le profil LinkedIn","Profil importé avec succès","Vérifiez les dates de vos postes et présentez le niveau de vos compétences, et enfin définissez si vos formations ont été en ligne ou sur place.","Dans cette section, il est important que vous téléchargiez votre programme, l’expérience sera plus personnalisée si nous connaissons le point de départ. D’autre part, vous devez faire la différence entre les compétences que vous avez générées au cours de votre vie professionnelle et les compétences acquises dans votre poste actuel lorsque vous remplissez les champs.","Compétences en gestion","Généralités","Modifier les compétences générales","Modifier les compétences linguistiques","Supprimer la compétence utilisée sur le graphique de performances","Vous essayez de supprimer une compétence qui est utilisée sur le graphique de performance. Si après avoir supprimé cette compétence il y a moins de 3 compétences le graphique ne sera pas créé.","Présent","Dis-moi quelque chose sur toi","À propos de vous","Dites-moi quelque chose sur vous","Téléchargez votre curriculum","Supprimer le curriculum","Vous allez supprimer le curriculum. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?","Modifier votre position actuelle","Modifier votre poste","Ajouter la tâche actuelle","Ajouter une nouvelle expérience","Titre","Entrez le poste","Description du poste","Entrez la description du poste","Société","Entrez dans la société","Emplacement","Entrez l’emplacement de la tâche","Travail actuel","Supprimer l’expérience","Vous allez supprimer l’expérience sélectionnée. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?","Modifier votre éducation","Ajouter une nouvelle éducation","Titre de l’éducation","Entrer dans un établissement","Entrez une description","Entrez un emplacement","À","En cours","Supprimer l’éducation","Vous allez supprimer l’éducation sélectionnée. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?","Guide d’inscription à partir d’Azure Active Directory (Ad)","

Pour générer le principal de service, accédez à Azure Ad et suivez les étapes suivantes :

  1. Accédez à Azure Active Directory et créez une application dans App Registration.
  2. Entrez un nom dans le champ 'Nom'.\n\n
  3. Dans Types de comptes pris en charge, sélectionnez l’option 'Locataire unique' et cliquez sur le bouton 'Enregistrer'.
  4. Lorsque votre application est déjà créée, allez dans la section 'Autorisations API' et ajoutez-en une nouvelle de type 'User.Read.All'.
  5. Vous devez maintenant ajouter une clé secrète client, Nous recommandons 24 mois de date d’expiration. Copiez maintenant la clé secrète client.

Steps pour vous connecter avec Fleebe:

  1. Copiez l’ID du client d’application de l’étape précédente dans le champ 'ID client principal du service'.
  2. Copiez la 'Clé secrète client' dans le champ 'Clé secrète client principale de service'.
  3. Cliquez sur le bouton 'Valider' et vous devriez voir le nombre d’utilisateurs de votre AD.
","ID de locataire","ID d’abonnement","ID client principal de service","Entrez l’ID principal du service","Secret client principal de service","Entrez le secret principal du service","Le nombre suivant d’utilisateurs sera importé à partir d’Azure Active Directory après le processus d’inscription","Valider","Chantez","L'abonnement n'a pas pu être complété","Nous sommes désolés, l'abonnement n'a pas pu être complété car le nombre d'utilisateurs achetés (",") dans Azure Active Directory. Veuillez relancer le processus d'achat.","Redémarrer l'achat dans Microsoft AppSource","Votre session s’est terminée","Vous avez terminé votre session. Pour revenir, cliquez sur le bouton.","Se connecter à Fleebe","Pas assez d’autorisations","Vous devez être administrateur pour accéder à la page demandée. Pour continuer à utiliser le site, cliquez sur le bouton.","Retour à Fleebe","Locataire non autorisé","Le locataire que vous utilisez pour vous connecter n’est pas autorisé dans l’application. Veuillez confirmer que vous êtes inscrit pour utiliser Fleebe et continuer.","Utilisateur non autorisé","Le compte que vous utilisez pour vous connecter n’est pas autorisé dans l’application. Veuillez confirmer que vous êtes inscrit pour utiliser Fleebe et continuer. Si vous avez plusieurs comptes, essayez de vous déconnecter et reconnectez-vous.","Emploi idéal","% d’employés répondus","Commencez où vous voulez","Commencez l’expérience avec votre assistant IA quand vous le souhaitez en remplissant les quatre cartes générales sous ces infobox.","Complétez le profil de votre organisation","Remplissez toutes les données d’entreprise de votre entreprise avec ses principales caractéristiques: Quelle est la taille de votre organisation? où est-il situé?","Profil complet de l’entreprise","Créez les compétences dont votre organisation a besoin","Votre organisation est différente et unique, par conséquent, elle a des besoins spécifiques que vous savez avoir un administrateur. Créez-les pour commencer à chercher des talents.","Créer des compétences","Créer un formulaire pour obtenir les commentaires des employés","Vos employés sont talentueux, donc leur opinion est précieuse. Créez ici un formulaire pour obtenir vos commentaires.","Créer un formulaire","Créez des objectifs et des défis pour votre organisation","Gardez vos équipes et vos employés motivés, créez des objectifs communs et des buts apportant de la valeur à l’entreprise.","Créer des objectifs et des défis","La nouvelle assistance IA pour aider vos employés à apprendre à leurs propres préférences et style de vie","Recherche d’employés...","Expérience actuelle","L’employé n’a pas encore fourni d’informations","L’employé n’a pas encore fourni d’informations sur l’expérience","L’employé n’a pas encore fourni d’informations sur la formation","L’employé n’a pas encore fourni de langues","L’employé n’a pas encore fourni de compétences générales","L’employé n’a pas encore fourni les informations idéales sur le poste","Ce sont les réponses fournies par le salarié","L’employé n’a pas encore fourni d’informations d’intérêt","L’employé n’a pas encore fourni d’informations d’apprentissage","L’employé n’a pas encore fourni de passe-temps","Créer un nouveau formulaire d’enquête","Configurez les questions pour votre entreprise et choisissez celles qui doivent être visibles par vos employés","Ajouter une nouvelle question","Niveau","Utilisez ce composant pour que l’employé sélectionne rapidement un niveau d’éducation, d’expérience ou de talent, etc.","Essayez de rendre la déclaration aussi simple que possible afin que les réponses ne soient pas ambiguës et que les informations fournies ajoutent vraiment de la valeur. Établissez des niveaux clairs et bien contrastés afin qu’il n’y ait aucun doute dans la réponse.","Entrez l’énoncé de la question","Sélection unique","Utilisez ce composant pour sélectionner une seule option parmi plusieurs options disponibles.","Essayez de rendre la déclaration aussi simple que possible afin que les réponses ne soient pas ambiguës et que les informations fournies ajoutent vraiment de la valeur. Établissez des options claires et bien contrastées afin qu’il n’y ait aucun doute dans la réponse.","Sélection multiple","Utilisez ce composant pour sélectionner plusieurs options correctes.","Réponse longue ouverte","Utilisez ce type de composants pour les réponses ouvertes où l’employé peut faire des descriptions plus longues.","Essayez de rendre la déclaration aussi claire et simple que possible afin que les réponses ne soient pas ambiguës et que les informations fournies apportent une réelle valeur ajoutée.","Réponse ouverte courte","Utilisez ce composant pour les réponses courtes.","Essayez de rendre la déclaration aussi claire et simple que possible afin que les réponses ne soient pas ambiguës et que les informations fournies ajoutent vraiment de la valeur.","Utilisez ce composant lorsque l’employé doit saisir des réponses sous forme d’étiquettes.","Sélectionnez le type de question","Configurer la question","Enregistrer la question","Entrez les options de réponse","Vous avez besoin d’au moins deux options mais vous pouvez ajouter toutes celles dont vous avez besoin.","Titre de l’option","Entrez les niveaux de réponse","Niveau bas","Niveau moyen","Haut niveau","Aperçu","La question comporte des erreurs de configuration. Passez à l’étape précédente et configurez-le correctement.","balise 1","balise 2","Créer des KPI","Vous pouvez créer des KPI des questionnaires envoyés afin de visualiser l'éventail des réponses. Sélectionnez l'icône du graphique pour voir les résultats pour chaque question que vous recherchez.","Questions d’enquête","Voir toutes les questions","Recherche dans les questions","Questions créées","Questions envoyées","Envoyer des questions","N’envoyez pas de questions","Aperçu des questions"," de plus"," groupes","Il n’y a pas de questions avec ce filtre","Supprimer la question","Vous allez supprimer la question '","'. Êtes-vous sûr?","Afficher dans le tableau de bord","Supprimer du tableau de bord","Descendre","Cette question n’a pas encore reçu de réponse","Autres","Pas encore de contenu","Toutes les questions définies sont publiques","Candidatures fermées","Ouvrir à l’application","Objectifs de l’entreprise","Créer un objectif public pour les candidats","Nous avons lancé ce nouvel objectif dans le but de développer le plein potentiel de chacun de nos employés tout en se concentrant sur leurs besoins et leurs capacités. Soyez celui qui élabore le plan de transformation en fonction de vos objectifs personnels et professionnels.","Créer un objectif public","Créer un objectif privé et sélectionner une équipe","Nous avons identifié les compétences dont vous avez besoin pour faire progresser votre carrière. Cet objectif proposé vous permettra de les développer ou de les renforcer. La transformation continue est essentielle à l’évolution de votre carrière professionnelle.","Créer un objectif privé","Nouveaux objectifs et défis","Objectifs de recherche pour l’équipe","Visibilité","Privé","Phase d’application","Ouvrir","Fermé","Terminé","Brouillon","Lancé","Publié","Statut","Date de début (asc)","Date de début (desc)","Date de fin (asc)","Date de fin (desc)","Titre (asc)","Titre (desc)","Ajouter un nouvel objectif","Dates des buts: ","Équipe de but","Sauver l’équipe et le but"," compétences"," langues","Supprimer l’objectif: ","Vous allez supprimer l’objectif sélectionné \"","\". Tous les progrès et les informations sur celui-ci disparaîtront et cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?","L’objectif a été supprimé avec succès","Nouvel objectif","Entrez le titre de l’objectif ou du défi","Description de l’objectif","Tapez ici une brève description","Lien avec plus d’informations","Ajouter un lien avec plus d’informations","Nombre de personnes nécessaires","Pays","Entrez le pays","Ville","Entrez la ville","Fermeture de l’application","Objectif ouvert aux candidatures","Choisissez une image pour la couverture","Télécharger l’image","Compétences requises","Vue d’ensemble","Veuillez choisir les compétences générales requises pour l’objectif","Veuillez choisir les compétences linguistiques requises pour l’objectif","L’objectif a été créé avec succès","L’objectif a été mis à jour avec succès","Confirmer la publication","Vous allez publier l’objectif. Après ce point, vous ne pourrez plus modifier certains champs. Veuillez continuer uniquement si vous êtes sûr que l’objectif est prêt.","L’objectif est ouvert aux candidatures","L’objectif n’est pas ouvert aux applications","L’objectif a été modifié avec succès","Plus d’informations","Progression de l’objectif de l’équipe","Pourcentage d’adaptation à l’objectif","Plus de 80% des compétences sont considérées comme un bon ratio pour atteindre les objectifs proposés. En dessous de 50%, il est conseillé de recruter ou de remplacer des membres par d’autres personnes ayant les compétences spécifiques requises.","Ajouter un membre de l’équipe à partir de la liste des candidats","L’IA a choisi une équipe automatiquement mais vous pouvez la modifier manuellement. L’objectif ne commencera pas tant que vous n’aurez pas validé l’équipe.","Vient de terminer la date de candidature, le moteur d’IA filtrera automatiquement les candidats pour sélectionner ceux qui sont le meilleur choix. Ainsi, vous ne verrez que le nombre de candidats nécessaires pour créer l’équipe pour l’objectif.","Toujours ouvert","Vous allez lancer l’objectif. Veuillez continuer uniquement si vous êtes sûr que l’objectif est prêt à être lancé.","Confirmer le lancement","Vous allez définir le résultat de l’objectif. S’il vous plaît, continuez seulement si vous êtes sûr que le résultat est le bon.","Confirmer ","Dates de candidature des candidats","Date de fin de l’objectif ","title","Date de début de l’objectif ","Standby","En attente de candidats","Dates de réalisation des objectifs","Modifier l’objectif","Candidats qui postulent"," candidats","Correspondance avec l’objectif","Trouver des personnes pour l’objectif","Employés en charge de cet objectif","Employés sélectionnés","Vous allez supprimer cet employé pour l’équipe de l’objectif. Vous pouvez le sélectionner pour un autre objectif ou l’ajouter à nouveau plus tard. Êtes-vous sûr de vouloir continuer?","Supprimer l’employé","Employés","Objectif de lancement","Aucun employé encore affecté","La phase de candidature est toujours ouverte","L’objectif est encore en phase de brouillon","L’équipe est construite mais l’objectif n’a pas encore commencé","L’équipe n’a pas encore été construite","Progression","Publié pour les candidats","L’objectif a été un échec","L’objectif est terminé. Veuillez sélectionner l’évaluation globale qui correspond le mieux au résultat final de l’objectif.","L’objectif a été un succès","Vous n’avez pas encore fourni d’informations","L’objectif a été lancé avec succès","Le résultat de l’objectif a été défini avec succès","Compétences d’équipe","Promotions internes","Paramètres de l’entreprise","Enregistrer le profil","Informations générales","Nom","E-mail de commentaires","Informations générales sur l’entreprise mises à jour avec succès","Pas","M. Fleebe en MsTeams","M. Chatbot","Télécharger","Accédez à Administration des équipes","Télécharger l'application téléchargée","attribuer des autorisations","Allez-y doucement... Le chatbot a besoin de temps pour se rafraîchir et devenir disponible.","M. Fleebe sur Slack","Ajouter à Slack","Cliquez sur le bouton 'Ajouter à Slack'","Si la liste déroulante de l'espace de travail lâche s'affiche, sélectionnez celle que vous souhaitez","Acceptez les conditions","Informations Azure","ID principal de service","Secret principal de service","Informations sur la société Azure mises à jour avec succès","Compétences de recherche","Ajouter une nouvelle compétence","Modération en attente","Approuvé","Toutes","Demandeur","modérateur","Il n’y a pas de compétences avec ce filtre","En attente de modération","Modifier la compétence","Supprimer la compétence","Modéré","Si vous supprimez la compétence, il sera supprimé la compétence et la demande de l’employé. Voulez-vous continuer?","Compétence validée","La compétence a été validée. Désormais, les employés peuvent le sélectionner pour compléter leur cursus","Par âge","Par groupe","Employé(e)","Gamme motivationnelle des employés","Il n’y a pas encore de contenu sélectionné"," dans "," employés "," employé dans "," employés dans "," (depuis "," ans)"," (pour ","Rechercher un passe-temps","Lorsque le graphique est enfin construit, cliquez sur les zones colorées pour voir comment les employés se rapportent aux passe-temps sélectionnés.","Principaux passe-temps cachés","Détection des talents","Voir tous les employés","Apprendre dans l’entreprise","Créez la formation dont votre entreprise a besoin","Si nécessaire, vous pouvez également créer des cours adaptés aux besoins de votre entreprise.","Ajouter une formation","La formation a été créée avec succès","Tapez ici","Date de début","Date de fin","Durée (heures)","Sujets (séparés par des virgules)","Informations sur site","Adresse","Entrez l’adresse","Étage","Salle","Entrer dans la salle","Planification","Entrer la planification","Heure de début","Heure de fin","Joindre la couverture de l’image","Tapez ici l’URL du cours","Contactez le fournisseur pour obtenir un lien valide pour le cours.","URL de la formation","Par exemple https://www.training.com/course/name-of-the-course/","Créer une formation","Anglais","espagnol","Supprimer le cours","Vous allez supprimer ce cours. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer?","Fermer","Espagnol","Allemand","Italien","Portugais","Aujourd’hui","Hier","Dernière mise à jour","Oui","Non","Retour"," résultats"," demandeurs"," employés affectés","Choisissez un fichier à télécharger","Êtes-vous sûr de vouloir continuer?","Recherche par nom, prénom et e-mail","Utilisateur","Personnes recherchées","Date de début de l’objectif","Date de fin de but","Progression de l’objectif","Collaborateur avec cet objectif","Collaborateurs avec cet objectif","Participer","Rejeter","Rejeter ma demande"," collègues inscrits","Mes groupes","Recherche d'employés","Voir le profil","Afficher les questions","Des questions","Questions de l'enquête","Questions de recherche","Supprimer des questions","Nouvelles questions","Vos employés sont talentueux, donc leur avis est précieux. Créez ici un formulaire pour obtenir vos commentaires.","Envoyer la date","Voir les KPI","Supprimer la question du groupe","Modifier la question","Envoyer des questions aux groupes","Sélectionnez les destinataires auxquels vous souhaitez envoyer l'enquête. Seul un administrateur peut créer un groupe de destinataires. Si vous ne trouvez pas le groupe dont vous avez besoin, veuillez contacter votre administrateur des ressources humaines.","Envoyer","Nom de groupe","Personnes","Réponses à '","Recherche","Pas encore de réponse","Afficher les réponses aux questions","Les gens ont répondu","Épinglez ce graphique pour l'afficher dans le tableau de bord","Retirer ce graphique du tableau de bord","Afficher la question KPI","J’accepte de partager mes informations avec l’entreprise","Vous ne trouvez pas la compétence?","Vous ne trouvez pas la langue?","Ajouter une nouvelle langue","Recherche d’une langue","En attente d’approbation compétences:","En attente d’approbation langues:","Créer une nouvelle compétence","Créer une nouvelle langue","La nouvelle compétence doit être validée par l’administrateur RH.","La nouvelle langue doit être validée par l’administrateur RH.","Type de compétence","Créer une compétence","Créer une langue","Lignes par page","Aller à la première page","Aller à la page précédente","Aller à la page suivante","Aller à la dernière page","Gentil rappel","Veuillez écrire vos commentaires ici. Merci beaucoup.","Veuillez préciser comment reproduire ce bogue ou inclure une capture d'écran.","L’objectif n’a pas encore commencé","L’objectif est terminé","Vous n’avez pas encore d’objectifs","L’employé n’a pas encore d’objectifs","Durée","Mon métier idéal","Parcours d’apprentissage","Formation en entreprise","Quel serait votre travail idéal en ce moment? Complétez-le ici pour être guidé dans l’atteinte de vos objectifs !","Ajouter un emploi idéal","Mettez à jour votre emploi idéal","Ajoutez un titre pour votre emploi idéal","Ajouter une description pour votre emploi idéal","Apprentissage recommandé","Modifier les passe-temps","Catégorie","Loisirs","Recherche d’un passe-temps","Vous ne trouvez pas le passe-temps?","Ajouter un nouveau passe-temps","Créer un nouveau passe-temps","Créer un passe-temps","Musique","Technologie","Autre","Aucun passe-temps défini","Âge","Vote os","Groupes d'employés","Rôles","Rechercher des groupes d'employés","Ajouter un nouveau groupe"," personnes"," cours","Il n'y a aucun groupe avec ce filtre","Supprimer le groupe d'employés","Vous allez supprimer ce groupe d'employés. Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir continuer ?","Modifier le groupe d'employés","Nouveau groupe","Importer la liste des employés","Comment importer un groupe.","Importer un document d'un format valide. La première colonne doit être 'Email' et les suivantes les emails des employés que vous voulez dans le groupe.","Aucune colonne nommée Email.","Il doit y avoir une colonne nommée 'Email'.
Pour nommer une colonne, la première ligne de la colonne doit être 'Email'. Veuillez télécharger un nouveau document avec ce nom de colonne.","Toutes les valeurs ne sont pas des e-mails.","Toutes les valeurs de la colonne 'E-mail' ne correspondent pas à une adresse e-mail valide :

","

Veuillez vérifier le format.","E-mails introuvables.","Les e-mails suivants n'ont pas été trouvés entre les employés :

","

D'autres e-mails ont été ajoutés au groupe.","Employés ajoutés au groupe.","Tous les employés ont été ajoutés au groupe.","Employés sélectionnés ","Gérer","Directeur","Téléspectateur","Employés et rôles actuels du groupe","Gestion des questions","Apprentissage attribué à ce groupe","Sélectionnez la formation","Rechercher des cours pour ce groupe","Gestion des autorisations","Nom de famille","E-mail","Modifier le groupe","Gérer le groupep","getFromStore","dateTimesFormatsConfig","getLocale","intent","es","en","fr","bind","toString","getPrototypeOf","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","isArrayBufferView","prototype","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","forEach","allOwnKeys","findKey","_global","isContextDefined","merge","caseless","assignValue","targetKey","stripBOM","inherits","constructor","superConstructor","descriptors","toFlatObject","sourceObj","destObj","propFilter","endsWith","searchString","position","toArray","isTypedArray","TypedArray","forEachEntry","iterator","pair","matchAll","regExp","isHTMLForm","toCamelCase","p1","p2","reduceDescriptors","reducer","reducedDescriptors","freezeMethods","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","ALPHA","DIGIT","ALPHABET","generateString","alphabet","length","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isAsyncFn","isThenable","utils$1","AxiosError","request","response","utils","customProps","axiosError","httpAdapter","isVisitable","removeBrackets","renderKey","dots","token","isFlatArray","predicates","toFormData","formData","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","params","encoder","_encode","buildURL","url","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","InterceptorManager$1","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","isStandardBrowserEnv","product","isStandardBrowserWebWorkerEnv","platform","URLSearchParams","FormData","Blob","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","DEFAULT_CONTENT_TYPE","stringifySafely","parser","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","matcher","deleted","deleteHeader","targets","asStrings","accessors","defineAccessor","AxiosHeaders$1","transformData","isCancel","CanceledError","settle","validateStatus","cookies","expires","secure","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","href","requestURL","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","progressBytes","rate","inRange","isXHRAdapterSupported","xhrAdapter","requestData","requestHeaders","responseType","onCanceled","username","password","fullPath","onloadend","responseHeaders","timeoutErrorMessage","xsrfValue","protocol","knownAdapters","adapters","nameOrAdapter","adapter","throwIfCancellationRequested","dispatchRequest","reason","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","validators","deprecatedWarnings","validator","formatMessage","opts","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","CancelToken$1","spread","isAxiosError","payload","HttpStatusCode","HttpStatusCode$1","createInstance","defaultConfig","axios","promises","axios$1","courseNoImage","fleebeAppUrl","imageDefaultForCourses","ISODateFormat","isISODateString","parseISO","dateParsed","interceptIsoDates","body","ISODateTimeFormat","isISODateTimeString","interceptIsoDateTimes","openUrl","newTab","accountBaseUrl","getSignInUrl","redirectUrl","logOutUrl","handleNonAuthentication","redirectToLogin","returnUrl","redirectTo","targetUrl","showErrorIfNeeded","showError","exception","problemDetails","showErrorProblemDetails","showUnknownError","errorMessages","errorMessage","incrementCallCount","decrementCallCount","networkStateStore","DEBOUNCE_SEARCH_TIMEOUT","DEBOUNCE_GET_AS_LOADING","useLoading","setLoading","loadingInService","loadingInCall","callFinished","endLoading","timeOut","setLoadingCaller","useHttpClient","loading","api","originalResponse","invokeApi","post","put","httpDelete","caller","delayLoading","startLoading","appBaseUrl","BASE_URL","spaConfig","useSpaConfigurationService","fetchConfiguration","language","getSpaConfiguration","AppFocus","scrollToTop","AppScrollTop","_vnode","scrollTo","bindingValue","isVisible","AppScrollTo","clickOutsideEvent","clickOutside","_el","loadDirectives","isBrowser","isESModule","applyToParams","newParams","TRAILING_SLASH_RE","removeTrailingSlash","parseURL","parseQuery","location","currentLocation","query","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery","stripBase","pathname","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","fromSegments","toSegments","lastToSegment","toPosition","segment","NavigationType","NavigationDirection","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","createBaseLocation","createCurrentLocation","search","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","fromState","pauseListeners","listen","teardown","beforeUnloadListener","history","destroy","buildState","back","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","push","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","isRouteLocation","route","isRouteName","START_LOCATION_NORMALIZED","NavigationFailureSymbol","NavigationFailureType","createRouterError","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","REGEX_CHARS_RE","tokensToParser","score","segmentScores","tokenIndex","subSegmentScore","repeatable","optional","regexp","re","subPattern","stringify","avoidDuplicatedSlash","param","compareScoreArray","comparePathParserScore","aScore","bScore","isLastScoreNegative","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","previousState","finalizeSegment","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","record","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","alias","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","insertMatcher","matcherRef","getRoutes","isRecordChildOf","paramsFromLocation","matched","parentMatcher","mergeMetaFields","normalizeRecordProps","propsObject","partialOptions","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","searchParams","searchParam","eqPos","currentValue","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","handlers","reset","guardToPromiseFn","enterCallbackArray","valid","guardReturn","guardCall","extractComponentsGuards","guardType","guards","rawComponent","isRouteComponent","componentPromise","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","routeMatched","currentMatched","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","guardEvent","RouterLinkImpl","link","elClass","getLinkClass","RouterLink","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","injectedRoute","routeToDisplay","injectedDepth","depth","initialDepth","matchedRoute","matchedRouteRef","viewRef","oldInstance","oldName","currentName","ViewComponent","routePropsOption","routeProps","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matcherLocation","targetParams","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","runWithContext","installedApps","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","readyHandlers","errorHandlers","ready","isReady","scrollBehavior","started","reactiveRoute","recordFrom","recordTo","useRoute","UserRole","clearKey","setLocale","user","userLocale","isAuthenticated","currentUser","useAuthenticationService","getUser","redirectToLogOut","checkRole","role","authenticationGuard","useFeatureFlags","getFeatureFlags","featureFlagName","featureManagementOptions","featureGuard","checkFeatureFlag","_imports_0$6","_withScopeId","_popScopeId","_hoisted_2","_createElementVNode","_imports_0","_hoisted_3","_sfc_render","_ctx","_cache","_imports_0$5","isCallable","isNullOrUndefined","isIndex","RULES","resolveRule","FormContextKey","FieldContextKey","IS_ABSENT","isClient","isLocator","isTypedSchema","isYupValidator","hasCheckedAttr","isContainerValue","isEmptyContainer","isNotNestedPath","isNativeMultiSelect","isNativeSelect","isFormSubmitEvent","evt","isEvent","isEqual","klona","x","cleanupNonNestedPath","getFromPath","acc","propKey","setInPath","unset","unsetPath","pathValues","idx","keysOf","injectWithSelf","vm","resolveNextCheckboxValue","checkedValue","uncheckedValue","debounceAsync","ms","timer","resolves","applyModelModifiers","withLatest","onDone","latestRun","pending","unravel","lazyToRef","getBoundValue","hasValueBinding","normalizeEventValue","input","files","selectedOption","normalizeRules","curr","buildParams","rule","parsedRule","parseRule","provided","mapValueToLocator","createLocator","locator","crossTable","extractLocators","DEFAULT_CONFIG","field","currentConfig","validate","shouldBail","errors","_validate","validateFieldWithTypedSchema","pipeline","_generateFieldError","normalizedContext","rulesKeys","_test","isYupError","yupToTypedSchema","yupSchema","fillTargetValues","fieldCtx","validateTypedSchema","validationResult","results","validateObjectSchema","validations","strings","fieldResult","isAllValid","validationResults","ID_COUNTER","useFieldState","init","setInitialValue","_useFieldValue","setErrors","_useFieldErrors","_useFieldMeta","setState","form","modelRef","resolveInitialValue","resolveModelValue","normalizeErrors","useField","useCheckboxField","_useField","validateOnMount","bails","label","validateOnValueUpdate","controlled","keepValueOnUnmount","modelPropName","syncVModel","controlForm","normalizeOptions","injectedForm","markedForRemoval","useVModel","handleChange","handleBlur","normalizedRules","rulesValue","extractRuleFromSchema","validateCurrentValue","validateWithStateMutation","validateValidStateOnly","validate$1","shouldValidate","setTouched","isTouched","unwatchValue","lastWatchedValue","watchValue","oldVal","resetField","setValue","dependencies","rulesVal","depAcc","depName","depValue","oldDeps","getCurrentModelValue","fieldName","patchCheckboxApi","checkedVal","handleCheckboxChange","propName","emitName","propValue","FORM_COUNTER","resolveInitialValues","providedValues","useForm","formId","controlledModelPaths","RESET_LOCK","fieldsByPath","isSubmitting","submitCount","fieldArrays","formValues","errorBag","setErrorBag","setFieldErrorBag","useErrorBag","bag","getFirstFieldAtPath","fieldOrGroup","fieldExists","fieldNames","names","fieldBailsMap","initialErrors","keepValuesOnUnmount","initialValues","originalInitialValues","setInitialValues","useFormInitialValues","useFormMeta","controlledValues","debouncedSilentValidation","_validateSchema","debouncedValidation","validateSchema","formResult","fieldsById","formCtx","currentErrorsPaths","validation","setFieldError","applyFieldMutation","f","wasValidated","makeSubmissionFactory","onlyControlled","onValidationError","submittedValues","setFieldTouched","setValues","setFieldValue","resetForm","returnVal","handleSubmit","registerField","unregisterField","validateField","stageInitialValue","unsetInitialValue","setFieldInitialValue","useFieldModel","isFieldGroup","mutation","mutateAllFields","fields","fieldInstance","clonedValue","createModel","newValues","insertFieldAtPath","rawField","fieldPath","fieldAtPath","removeFieldFromPath","newPath","oldPath","initialErrorMessage","isGroup","shouldKeepValue","currentGroupValue","valueIdx","updateOriginal","schemaValue","submitForm","currentValues","MERGE_STRATEGIES","isDirty","calculateFlags","mergeMethod","flags","updateFields","wasTouched","normalizeErrorItem","Cache","maxSize","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","MAX_CACHE_SIZE","pathCache","setCache","getCache","propertyExpr","split","normalizePath","safe","isQuoted","iter","isBracket","shouldBeQuoted","hasLeadingNumber","hasSpecialChars","reWords","words","upperFirst","join","camelCase","pascalCase","snakeCase","kebabCase","sentenceCase","titleCase","tinyCase","toposortModule","edges","toposort","uniqueNodes","nodes","cursor","sorted","visited","outgoingEdges","makeOutgoingEdges","nodesHash","makeNodesHash","edge","predecessors","nodeRep","outgoing","errorToString","regExpToString","symbolToString","SYMBOL_REGEXP","printNumber","printSimpleValue","quoteStrings","typeOf","printValue","strReg","ValidationError","errorOrErrors","mixed","originalValue","castMsg","string","boolean","array","isSchema","Condition","then","otherwise","_branch","builder","Reference","prefix","createValidation","panic","test","skipAbsent","abortEarly","createError","nextParams","invalid","handleResult","validOrError","shouldSkip","_result","getIn","lastPart","lastPartDebug","_part","isTuple","ReferenceSet","description","newItems","removeItems","copy","Schema","spec","combined","mergedSpec","conditions","prevSchema","condition","_options$strict","_options$abortEarly","_options$recursive","resolvedSchema","allowOptionality","formattedValue","formattedResult","strict","initialTests","runOptions","fired","tests","panicOnce","nextOnce","nestedErrors","originalParent","testOptions","validated","isStrict","nullable","isExclusive","enums","valids","invalids","strip","returnsTrue","create$8","MixedSchema","create$7","BooleanSchema","_raw","rEmail","rUrl","rUUID","isTrimmed","objStringTag","create$6","StringSchema","strValue","regex","excludeEmptyString","isNaN$1","create$5","NumberSchema","less","more","_method","avail","isoReg","parseIsoDate","numericKeys","minutesOffset","timestamp","struct","invalidDate","create$4","DateSchema","cast","limit","sortFields","excludedEdges","excludes","addNode","depPath","findIndex","ii","_err$path","sortByKeyOrder","parseJson","deepPartial","partial","fieldSchema","nextArray","deepHas","unknown","known","defaultSort","create$3","ObjectSchema","_options$stripUnknown","intermediateValue","innerOptions","isChanged","exists","fieldValue","inputValue","fieldSpec","recursive","objectErrors","fieldErrors","nextFields","schemaOrRef","dft","_innerOptions","shape","additions","picked","fromGetter","newObj","noAllow","unknownKeys","allow","_innerOptions2","create$2","ArraySchema","_opts","castArray","castElement","innerType","arrayErrors","_options$originalValu2","_options$originalValu","innerTypeErrors","original","rejector","panelClasses","handleClick","otherClasses","classes","getBase64","file","reader","base64AndTypeContent","base64Content","exportFilesToBase64","fileList","base64FileList","convertToBytes","sizeInMB","allowedExtensions","basicAllowedImageExtensions","allowedImageExtensions","excelAllowedExtensions","LONG_ACCEPTED_TYPES","maxFileSizeInMB","fileSize1MB","convertMIMEToExtension","mime","extension","useModal","openModal","shortFileNameLength","openTextModal","useUploadDocument","fileInput","upload","clearFileSelector","deleteDocument","resetFileSelector","getFileFromInputAndClear","getValidLengthFileName","fileName","deleteDocumentClick","fileInputChanged","acceptString","maxNumberOfTags","maximumNumberOfOptionsInQuestion","guidTextLength","smallTextLength","mediumTextLength","largeTextLength","xLargeTextLength","minLevelAnswer","maxLevelAnswer","MAX_AUTOCOMPLETE_ITEMS_TO_SHOW","decodeDataHtml","decodeDataXml","exports","decodeMap","codePoint","output","replaceCodePoint","decodeCodePoint","__importDefault","this","decode_data_html_js_1","require$$0","decode_data_xml_js_1","require$$1","decode_codepoint_js_1","require$$2","decode_codepoint_js_2","CharCodes","BinTrieFlags","getDecoder","decodeTree","lastIdx","strIdx","cp","entity","resultIdx","excess","treeIdx","determineBranch","masked","valueLength","nodeIdx","branchCount","jumpOffset","lo","hi","mid","midVal","htmlDecoder","xmlDecoder","decodeHTML","decodeHTMLStrict","decodeXML","decode_js_1","State","isWhitespace","isEndOfTagSection","isASCIIAlpha","isHexDigit","QuoteType","Sequences","Tokenizer","cbs","xmlMode","decodeEntities","chunk","isEnd","isMatch","endOfText","actualIndex","sequence","lower","quote","entityStart","numberStart","endIndex","__createBinding","o","k2","__setModuleDefault","__importStar","Parser_1","Tokenizer_js_1","formTags","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","Parser","_d","_e","impliesClose","isImplied","_f","pos","isOpenImplied","_g","_h","_j","_k","ElementType","isTag","elem","__extends","extendStatics","__","__assign","domelementtype_1","Node","cloneNode","DataNode","_super","_this","ProcessingInstruction","NodeWithChildren","CDATA","Document","Element","attribs","isCDATA","isText","isDirective","isDocument","hasChildren","cloneChildren","clone_1","clone_2","clone_3","instruction","childs","__exportStar","node_js_1","defaultOpts","DomHandler","elementCB","element","lastNode","previousSibling","encodeHtml","restoreDiff","xmlCodeMap","encodeXML","getEscaper","encode_html_js_1","escape_js_1","htmlReplacer","encodeHTML","encodeHTMLTrieRe","encodeNonAsciiHTML","encode_js_1","EntityLevel","DecodingMode","EncodingMode","decodeStrict","escape_js_2","encode_js_2","decode_js_2","foreignNames","lib","entities_1","foreignNames_js_1","unencodedElements","replaceQuotes","formatAttributes","attributes","singleTag","renderNode","renderDirective","renderComment","renderCdata","renderTag","renderText","foreignModeIntegrationPoints","foreignElements","domhandler_1","dom_serializer_1","getOuterHTML","getInnerHTML","getText","innerText","traversal","getChildren","getParent","getSiblings","siblings","getAttributeValue","hasAttrib","getName","nextElementSibling","prevElementSibling","manipulation","removeElement","replaceElement","replacement","appendChild","sibling","append","currNext","prependChild","querying","recurse","find","_i","nodes_1","findOneChild","findOne","existsOne","findAll","legacy","querying_js_1","Checks","getAttribCheck","attrib","combineFuncs","compileTest","funcs","testElement","getElements","getElementById","getElementsByTagName","getElementsByTagType","removeSubsets","ancestor","DocumentPosition","compareDocumentPosition","nodeA","nodeB","aParents","bParents","maxIdx","sharedParent","aSibling","bSibling","uniqueSort","relative","feeds","stringify_js_1","legacy_js_1","getFeed","feedRoot","getOneElement","isValidFeed","getAtomFeed","getRssFeed","feed","entry","getMediaElements","addConditionally","fetch","pubDate","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","media","MEDIA_KEYS_STRING_1","MEDIA_KEYS_INT_1","require$$3","require$$4","require$$5","require$$6","require$$7","Parser_js_1","parseDocument","parseDOM","createDomStream","elementCb","domutils_1","parseFeed","escapeStringRegexp","isPlainObject_1","prot","isMergeableObject","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","REACT_ELEMENT_TYPE","emptyTarget","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getMergeFunction","customMerge","getEnumerableOwnPropertySymbols","getKeys","propertyIsOnObject","property","propertyIsUnsafe","mergeObject","destination","sourceIsArray","sourceAndTargetTypesMatch","deepmerge_1","cjs","module","isSpace","collectCharacters","regEx","chars","inputLength","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","currentDescriptor","candidates","parseDescriptors","tokenize","pError","candidate","lastChar","intVal","floatVal","create","picocolors_browserModule","__viteBrowserExternal","pico","terminalHighlight","CssSyntaxError","column","color","lines","maxWidth","mark","aside","bold","red","gray","gutter","spacing","cssSyntaxError","symbols","DEFAULT_RAW","Stringifier$2","semicolon","left","right","between","after","own","detect","buf","indent","step","stringifier","Stringifier","stringify_1","isClean","my","Node$5","bookmark","foundSelf","defaultType","keepBetween","inputs","fixed","emitInputs","inputsNextIndex","inputId","declaration","Declaration","urlAlphabet","customAlphabet","defaultSize","nanoid","nonSecure","SourceMapConsumer","SourceMapGenerator","existsSync","readFileSync","dirname","fromBase64","PreviousMap$2","sourceMapString","comments","baseCharsetUri","baseUri","charsetUri","uri","encoding","prevPath","previousMap","PreviousMap","fileURLToPath","pathToFileURL","isAbsolute","fromOffsetCache","sourceMapAvailable","pathAvailable","Input$4","lastLine","lineToIndex","prevIndex","endLine","endColumn","origin","consumer","fromUrl","Input","sep","MapGenerator$2","cssString","annotation","already","eol","noSource","mapping","mapGenerator","MapGenerator","comment","Rule","AtRule","Root","cleanSource","markDirtyUp","Container","exist","existIndex","decl","sample","other","dependant","LazyResult","Processor","document","Warning$2","range","warning","Warning","Result$3","Result","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","ignore","escape","escaped","escapePos","currentToken","returned","unclosed","what","endOfFile","nextToken","ignoreUnclosed","controlChar","atRule","separators","func","inQuote","prevQuote","letter","spaces","list_1","tokenizer","SAFE_COMMENT_NEIGHBOR","findLastWithPosition","Parser$1","colon","bracket","brackets","customProperty","firstSpaces","shift","open","clean","all","lastTokenType","founded","parse_1","require$$8","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","NOT_VISITORS","CHILDREN","getEvents","toStack","events","cleanMarks","postcss","LazyResult$2","onFinally","subRoot","visitors","roots","lazyResult","NoWorkResult$1","generatedCSS","generatedMap","noWorkResult","NoWorkResult","Processor$1","plugins","fromJSON","ownInputs","inputHydrated","fromJSON_1","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","initializer","warningPrinted","creator","processOpts","pluginOpts","postcss_1","htmlparser","parseSrcset","postcssParse","mediaTags","vulnerableTags","each","stringifySrcset","parsedSrcset","sanitizeHtml_1","sanitizeHtml","VALID_HTML_ATTRIBUTE_NAME","html","_recursing","tempResult","Frame","that","parentFrame","htmlParserDefaults","tagAllowed","nonTextTagsArray","allowedAttributesMap","allowedAttributesGlobMap","globRegex","allowedClassesMap","allowedClassesGlobMap","allowedClassesRegexMap","transformTagsMap","transformTagsAll","transform","transFun","skipMap","transformMap","skipText","skipTextDepth","addedText","initializeState","frame","skip","hasText","transformedTag","passedAllowedAttributesMapCheck","splitStrArray","naughtyHref","parseUrl","allowedHostname","hostname","allowedDomain","allowedSpecificClasses","allowedWildcardClasses","allowedSpecificClassesGlob","allowedSpecificClassesRegex","allowedWildcardClassesGlob","allowedClassesGlobs","filterClasses","abstractSyntaxTree","filteredAST","filterCss","stringifyStyleAttributes","lastFrame","firstIndex","scheme","allowedStyles","astRules","selectedRule","filterDeclarations","extractedAttributes","attrObject","allowedDeclarationsList","attributeObject","regularExpression","allowedGlobs","clss","glob","newTagName","newAttribs","urlRegExp","toHtml","configuration","isBlank","keepOriginalNewLines","toTitleHtml","containsInsensitive","containedText","normalizedText","normalizedContainedText","compareStrings","string1","string2","ascending","isValidUrl","concatWithAnd","texts","compareNumbers","number1","number2","formatNumber","createArray","millisecondsInDay","minutesInHour","parseDateToString","isToday","isYesterday","parseDateToMonthLongDate","isSameDay","today","removeTime","date1","date2","d1","d2","yesterday","compareDates","dayAfter","daysBetweenDates","difference","isBiggerThanToday","isEqualOrBiggerThanToday","isSmallerThanToday","isEqualOrSmallerThanToday","convertDateOnlyToLocale","offsetHours","toIsoDate","inputRequiredText","useFormSchema","endDateSchema","dateSchema","minDate","required","yupDate","attachmentSchema","extensions","yupMixed","ext","stringSchema","maxLength","yupString","todayNow","minDateApplicationAlreadySet","yupObject","useMePictureService","picture","UseEmployeeServiceResponse","numberOfItems","employeeId","jobExperienceId","educationId","savePicture","deletePicture","getEmployeePictureUrl","useEmployeeService","validAvatar","resourceSchema","attachment","attachmentError","setAttachmentName","avatarAttachment","save","refreshPage","shouldShowError","selectClasses","putEmployeeLanguage","availableLocales","handleLanguageChanged","modelValueString","modelChangeHandled","getIsoDate","handleInput","setModelValueFromProp","useMeService","profile","curriculum","aboutMe","birthDate","calculate","updateBirthDate","changed","maxDate","outOfRangeError","birthDateField","birthDateFieldError","handleSave","updatedBirthDate","newBirthDate","sendFeedback","sendBug","avatarImageUrl","pictureUrl","showPicture","hasPicture","initials","avatarClass","defaultAvatarImage","cleanUser","updatingAvatar","goToAdministratorArea","goToEmployeeArea","getFeedbackEmail","feedbackEmail","getBasicInformation","profileInfo","showMenu","newDate","iconClass","menuOptionsToShow","isLoading","useLayout","getOption","icon","urlSuffix","textKey","getTitleKey","isGroupManager","menuOptions","isUserGroupManager","tabsAllowed","tab","shouldBeShown","tabs","labelNames","series","xAxisColors","yAxisColors","chartOptions","examplePerformanceGraphSeriesValues","examplePerformanceGraphCategoryNames","fullName","employeeInformation","fullNameClass","cssClass","exampleProfileInformation","contentClasses","goToMyCurrentExperience","goToMyIdealJob","selectEmployeeSkills","selectIdealJobSkills","selectCurrentJobSkills","tipsHidden","defaultVisible","setNotVisible","showExample","icons","_imports_0$4","hasFocus","change","checkbox","focus","focusOut","inputHandle","handleCleanClicked","inputClasses","selectedItemIndex","hasInputFocus","availableItems","removeFocus","inputChanged","inputFocusIn","cleaned","focusNextItem","focusPreviousItem","chooseCurrentItem","itemClick","getRandomId","openComponentModal","componentId","stepClick","steps","useMePerformanceGraphService","lastStep","getAvailableSkills","getPerformanceGraph","updatePerformanceGraph","currentStep","currentJobSkills","currentJobSkillsSearch","currentJobSkillsAutocompleteItems","idealJobSkills","idealJobSkillsSearch","idealJobSkillsAutocompleteItems","mountFinished","currentPerformanceGraph","availableSkills","skillCountError","yupArray","modalConfig","filteredCurrentJobSkillsAutocompleteItems","filteredIdealJobSkillsAutocompleteItems","isIdealJobSkillBeingSearched","isCurrentJobSkillBeingSearched","getSkillLabel","skill","progression","currentJobSkillAutocompleteClicked","idealJobSkillAutocompleteClicked","performanceExamplePanelName","performanceGraphWizardStep","configuringPerformanceGraph","showPerformanceGraphWizard","performanceGraphUpdated","_imports_0$3","tagClasses","mainTextClasses","deleteTag","EducationMode","useMeEducationService","education","getEducations","educations","getIconClass","getTagText","retrieveEducations","selectedPageSize","firstItemShownNumber","lastItemShownNumber","lastPage","goToFirstPage","changeCurrentPage","goToPreviousPage","goToPNextPage","goToLastPage","pageSizeChanged","newCurrentPage","selected","optionSelected","setOptionSelected","changeSelected","ixFilter","selectedAll","columnOrderSuffixClass","generateHeaderClasses","isColumnSorted","orderBy","selectAllChangeHandle","columnValueExtractor","textClass","visibleActions","calculatedClass","itemValue","isTextColumn","isSelectColumn","toggleExpand","toggleSelect","SELECT_ALL","useTableHelper","sort","filterByText","paginate","getTypeFilter","getSelectOptions","getSelectOption","paginationProps","startIndex","currentFilter","currentItem","searchText","columns","searchableColumns","filterByField","order","items","col","item1","item2","comparatorResult","compareItems","skill1","skill2","fieldValue1","fieldValue2","i18Prefix","typeFilters","E","translatePrefix","enumKey","itemsExpanded","itemIsExpanded","toggleExpandedItem","internalFilters","filteredItems","itemsInView","sortedItems","visibleColumns","cssGridTemplateColumn","anySelected","userSelectionChanged","toggleSelectItem","selectedAllChanged","direction","getNewOrderDirection","orderByColumn","columnClicked","EmployeeGroupRole","group","profileSummaryInformation","je","currentJobExperiences","currentInterests","int","calculatePercent","completed","SkillProgression","SkillType","SkillLocationType","useMeSkillsService","skillType","skillUpdateRequest","getSuccessfulSkills","kpiInfo","retrieveSuccessfulSkills","progressionValue","calculateUserTotalPoints","skillProgressions","maxPointsLanguages","maxPointsGeneral","userPointsLanguages","userPointsGeneral","languagesPercentage","generalPercentage","totalPercentage","getBasicProfile","performanceGraphSeriesValues","performanceGraphCategoryNames","hasPerformanceGraphConfigured","hasPerformanceGraphWellConfigured","progressionToNumber","initPerformanceGraph","performanceGraph","editPerformanceGraph","destinationView","QuestionType","titleKey","clicked","editing","isNotAnsweredYet","edit","closed","edited","newQuestionState","backgroundSize","isEmpty","useQuestionService","questionId","answer","question","questions","q","questionIds","showInDashboard","_createElementBlock","setFocusOnErrorInput","errorElement","firstFocusableElement","getFirstFocusableOnError","useFormValidator","validateFormAndFocusError","saveHandler","keyT","saveQuestionAnswer","isFormInvalid","newQuestion","getNewQuestionState","levels","availableValues","yupNumber","textError","valueError","setFormValues","getAnswer","answerError","availableOptions","isOptionSelected","optionId","updateModelValue","selectedOptionError","tags","newTag","keypress","addTag","newTagValue","answers","tagsAsOptions","PIE_DONUTS_COLORS","g","y","A","S","C","L","P","I","T","M","X","z","Y","F","R","H","D","O","N","W","B","G","V","U","Z","$","J","Q","K","tt","et","it","at","st","ot","lt","ht","ct","dt","gt","ut","pt","ft","xt","bt","vt","mt","yt","wt","kt","At","St","Ct","Lt","Pt","It","Tt","Mt","Xt","zt","Et","Yt","Ft","Rt","Ht","Dt","Ot","Nt","Wt","Bt","installedModules","__webpack_require__","moduleId","ns","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","getCurrentScript","ieStackRegExp","ffStackRegExp","stackDetails","scriptLocation","pageSource","inlineScriptSourceRegExp","inlineScriptSource","scripts","__webpack_exports__","currentScript","external_commonjs_vue_commonjs2_vue_root_Vue_","external_root_ApexCharts_commonjs_apexcharts_commonjs2_apexcharts_","external_root_ApexCharts_commonjs_apexcharts_commonjs2_apexcharts_default","vue3_apexcharts","__el","chart","nextKey","newOptions","refresh","updateSeries","newSeries","animate","updateOptions","redrawPaths","updateSyncedCharts","toggleSeries","seriesName","showSeries","hideSeries","appendSeries","resetSeries","toggleDataPointSelection","seriesIndex","dataPointIndex","appendData","newData","zoomX","dataURI","addXaxisAnnotation","pushToMemory","addYaxisAnnotation","addPointAnnotation","removeAnnotation","clearAnnotations","reactiveProps","install","src_0","labels","superSeries","chartColors","sampleTags","sampleValue","sampleOption","editors","AIAssistantAnswerLevel","AIAssistantAnswerLongText","AIAssistantAnswerMultipleSelection","AIAssistantAnswerShortText","AIAssistantAnswerSingleSelection","AIAssistantAnswerTags","getQuestionComponentFor","kpiComponents","LevelKPI","MultipleChoiceKPI","SingleChoiceKPI","TagsKPI","getQuestionKPIComponentFor","questionType","previewers","QuestionLevelPreview","QuestionLongTextPreview","QuestionMultipleSelectionPreview","QuestionShortTextPreview","QuestionSingleSelectionPreview","QuestionTagsPreview","getPreviewerComponentFor","questionComponent","useMeQuestionsService","pageSize","currentPage","totalPages","totalItemsCount","questionsInView","getQuestions","previousPage","setCurrentPage","nextPage","refreshQuestionsInView","initialItem","finalItem","getGeneralSkills","skills","getLanguageSkills","JobExperienceType","panelName","updateAboutMe","getFormCallbackHandler","aboutMeRead","aboutMeError","acceptedExtensions","importProfile","goalsSorter","isInProgress","isNotStarted","hasResult","goal","meetsVisibilityFilter","isPrivate","isPublic","meetsApplicationPhaseFilter","isApplicationPhaseOpen","isApplicationPhaseClosed","meetsStatusFilter","isDraft","isPublished","isFinished","isEditable","isStartDateEditable","isApplicationClosingDateEditable","isDeletable","isSuccessful","isFailure","canBeLaunched","canAddEmployees","isTeamBuilt","progressColor","booleanToYesNoString","useMeGoalsService","goalId","participateInMyGoal","switchParticipationHandler","participateButtonVariant","participateButtonText","goalDetails","getMyGoalDetails","pages","pageClick","pageIndex","useDebounce","timeoutId","milliseconds","mediaQueries","useCarousel","numberOfItemsVisible","numberOfItemsToShow","setNumberOfItems","wheeling","itemWidthAdjustment","wheelHandle","eventArgs","setPage","itemPercentageWidth","pageCount","itemWidthStyle","carouselWidth","carouselTranslate","selectedGoalId","orderedGoals","goalClick","getCurriculumUrl","deleteCurriculum","saveCurriculum","curriculumError","curriculumFileChanged","uploadCurriculumFile","deleteCurriculumFile","curriculumIsDirty","setFormFields","modeOptions","getModeOption","indexOfE","titleHtml","contentHtml","truncatedContent","toggle","createEducation","updateEducation","deleteEducation","getEducationAttachmentUrl","titleRead","institutionRead","descriptionRead","locationRead","fromDateRead","toDateRead","attachmentRead","fromDate","yupBoolean","nameError","institution","institutionError","descriptionError","locationError","fromDateError","toDate","toDateError","selectedModeOption","inProgressEducation","parseEducationSubtitle","fromDateFormatted","toDateFormatted","openPanel","inProgressEducationHandler","useMeJobExperienceService","jobExperience","deleteJobExperience","updateJobExperience","createJobExperience","setCurrentJobExperience","getJobExperienceAttachmentUrl","addCurrentJobText","translateKey","companyRead","currentJob","toDateSchema","titleError","company","companyError","parseJobSubtitle","dates","useSkillService","postData","skillId","createSkill","skillTypes","selectedSkillType","skillName","skillNameError","skillDescription","skillDescriptionError","calculateHRMessage","skillTypeText","saveSkill","rangeValue","valueChange","convertToSkillProgression","convertFromSkillProgression","creating","needsToNotify","checkedSkills","searchSkillById","checkSkill","skillToBeChecked","checkSkillAndCopyProgression","handleSkillCreated","previousSelectedSkills","checkSkillSelected","handleSkillSelected","searchFunction","applyFunction","skillFound","autoCompleteItems","handleRemoveSkill","foundSkill","skillFromSelection","useMeIdealJobService","idealJob","updateSkills","updateCurrentJobExperienceSkills","setIdealJobSkills","creatingSkill","skillsUpdated","updatedSkills","needsToNotifyParam","skillsSorter","updateSelectedSkills","_reject","calculateButtonText","useMeAgreementsService","agree","sortByProgressionName","getProfileInformation","updateAgreeShareExperience","getMyGoals","generalSkills","languages","currentJobExperience","currentJobExperienceGeneralSkills","currentJobExperienceLanguageSkills","jobExperiences","myGoals","showProfileImporter","aboutMeKey","getCurrentExperience","agreeShareExperienceUpdated","filterSkills","generalSkillsUpdated","currentJobExperienceGeneralSkillsUpdated","currentJobExperienceLanguageSkillsUpdated","languagesUpdated","updatedLanguages","jobExperienceDeleted","jobExperienceCreated","jobExperienceUpdated","currentJobExperienceUpdated","educationDeleted","educationCreated","educationUpdated","profileImported","curriculumSet","newFileName","getGoalPictureUrl","hasImage","imageSrc","participating","titleClick","filterChanged","getFeaturedGoals","getMyCurrentGoals","searchCompanyGoals","featuredGoals","displaySearchCarousel","allGoals","goals","updateParticipatingHandler","alreadyParticipant","goalToUpdate","updateSearch","labelClasses","textClasses","CourseType","CourseLevel","convertLevelToDisplay","level","courseLevel","courseTypeDescription","modeDescription","useCompanyCoursesService","learningCourse","learningCourseId","imageName","course","getLearningImageCoverUrl","imageKey","LanguagesCodes","languagesCodeMapped","languageKeys","languageValues","ixLanguage","isoCode","isoCodeTwoDigits","languageTranslateKey","getLanguageName","decodeLanguage","getLanguage","getDecodeLanguageCode","possibleCodeLanguage","codeLowerCase","isoTwoCharsCode","mappedKey","getLanguages","getDurationStringFromHours","minutesPart","hours","minutes","minutesText","openTrainingUrl","_hoisted_1","_hoisted_4","_openBlock","_toDisplayString","iconName","hover","hoverValue","ratings","clickHandler","starHover","starLeave","getCourseRouteSegment","courseType","useMeCoursesService","courseId","rateInfo","getEmployeeCourseInfo","setEmployeeCourseInfo","courseDone","rateValue","initRate","courseRate","confirmCallback","isCourseDoneChange","confirmSetAsDone","saveData","assignCourse","ratedCourse","selectCourse","editCourse","deleteCourse","getCourseRate","useCourseRateRefresher","courses","getFeaturedCourses","refreshCourseRateData","featuredCourses","refreshCourseData","cardClick","headerClick","pageNumberClick","pageNumber","numbersToRender","defaultPageSize","displayGroupsOf","defaultSingleLineSizePages","currentPageSize","currentIndexPage","singleMode","begin","updatePageNumbers","numberClick","_x","sourceChanged","resultText","searchCourses","emptyResponse","searchedCourses","searchTermUsed","searchCompleted","displaySearchResults","getCourseTypeSelected","searchTermChanged","newSearchTerm","newSearch","useEventEmitterService","eventName","eventHandlers","handlerIndex","eventEmitter","selectedCourse","headerTypeClass","gridArea","levelClass","coursesOrder","contentClass","updateCalculateLearningPath","recalculate","getEmployeeLearningPath","learningPath","getAlreadyDoneCourses","loadCourses","emptyIdealJob","getMyIdealJob","setIdealJob","updateAgreeShareIdealJob","agreeShareIdealJob","setBasicData","employee","openEditor","useMeIdealLearningService","idealLearning","idealLearningId","createIdealLearning","updateIdealLearning","deleteIdealLearning","setOpenPanel","useMeInterestsService","interest","interestId","createInterest","updateInterest","deleteInterest","HobbyCategory","availableCategories","useHobbiesService","hobby","createHobby","hobbyName","hobbyNameError","hobbyCategory","getHobbies","hobbies","autocompleteItems","h1","checkedHobbies","handleHobbySelected","findAndApplyFunction","searchHobbyById","checkHobby","deleteHobby","searchHobbyByName","uncheckHobby","initialize","handleHobbyCreated","newHobbyName","previousSelectedHobbies","hobby1","hobby2","hobbyToBeChecked","hobbyToBeUnchecked","hobbiesOrdered","useMeHobbiesService","getEmployeeHobbies","updateEmployeeHobbies","getImpersonatedEmployeeHobbies","readyToShowHobbies","noContentMessage","employeeHobbies","interests","idealLearnings","agreeShareInterests","getInterests","getIdealLearnings","updateAgreeShareInterests","idealLearningCreated","idealLearningUpdated","idealLearningDeleted","interestCreated","interestUpdated","interestDeleted","searchChanged","employees","selectItem","defaultOrder","getEmployeeManagedGroups","groups","currentGroup","groupId","selectEmployee","goToQuestions","selectGroup","createTabs","iconClasses","getEmployeeGoals","getIdealJob","currentTab","setCurrentTab","tabId","currentView","backUrl","backRoute","targetRoute","lowLevelText","lowLevelTextError","mediumLevelText","mediumLevelTextError","highLevelText","highLevelTextError","emitUpdate","newOptionState","deleteOption","addAllowed","removeAllowed","emitUpdated","updateOption","addOption","nextId","useQuestionFormSchema","levelTextSchema","formScheme","modelValueType","getQuestionForm","hasOptions","titleUpdate","refreshState","optionsUpdated","levelsUpdated","newLevels","questionChanged","resultValidation","previewerComponent","sampleOptions","sampleSelection","createQuestion","updateQuestion","questionTypeItems","questionEditable","showAllErrors","isQuestionValid","editedQuestionUpdated","newState","isValid","updateOrCreateQuestion","typeSelect","advanceStepIsEditMode","ascend","descend","eg","QuestionStatus","expanded","getFullName","kpiComponent","seriesPercentage","buttonText","buttonIcon","updateKpiStatus","deleteQuestion","descendQuestionOrder","ascendQuestionOrder","toggleQuestionInDashboard","getAnswers","getQuestionKpi","selectedQuestion","previewedQuestion","currentQuestion","currentQuestionAnswers","currentQuestionKPI","canSetOrder","showActionButtons","getDashboardActions","showQuestionKPI","shouldShowKpiAction","showQuestionAnswers","dashboardActions","columnsQuestions","QuestionGroupsColumn","editQuestion","previewQuestion","tryDeleteQuestion","ascendQuestion","descendQuestion","QuestionOrder","sortHandler","disableActions","questionEdited","toggleInDashboard","closeQuestionKPI","questionTypesForKpi","isKpiQuestion","closeQuestionAnswers","selectedIds","filteredQuestions","tryDeleteSelectedQuestions","removeSelectedQuestions","sendSelectedQuestions","removeQuestion","showQuestionKpi","editable","useCompanyEmployeeGroupsService","groupIds","getGroupKpis","kpis","loadKpis","removeKpi","removeKpiById","kpiId","kpiIndex","kpi","geCompanyGroupQuestionAnswers","geCompanyGroupQuestionKpi","showGroupKPIs","hasActiveKpis","updatedQuestion","removeQuestionsFromGroup","removeSelectedQuestionsFromGroup","toggleInGroupDashboard","removeGroupKPI","ids","clearSelection","filteredGroups","send","tryUpdateQuestionData","availableQuestions","previousQuestion","updatedAvailableQuestions","getCompanyGroupsQuestions","deleteCompanyGroupQuestions","toggleQuestionInGroupDashboard","updateCompanyGroupsQuestions","updateCompanyGroupQuestions","getUnpublishedQuestions","deleteQuestions","selectedQuestionsIds","showSendQuestionsDialog","showCreateQuestionDialog","allowedGroupNames","updateQuestionData","updatedQuestions","updatedSource","fetchQuestionsData","removeQuestions","openCreateQuestionDialog","closeCreateQuestionDialog","openSendQuestionsDialog","closeSendQuestionsDialog","sendQuestions","sendQuestionsToGroups","fetchData","updateCurrentGroup","updatedGroup","fetchGroupsData","addNewQuestion","tasks","changeShowInDashboardInMemory","appRoutes","AppLayout","AppMyProfileView","AppMyProfileOverviewView","AppMyProfileDashboardView","AppMyProfileDefaultView","AppAIAssistantView","AppMyInterestsView","AppCurrentExperienceView","AppGoalsChallengesView","AppMyLearningView","AppMyLearningLearningView","AppMyLearningLearningPathView","AppMyLearningTrainingView","AppMyIdealJobView","AppMyIdealJobLearningPathView","AppMyIdealJobMyTrainingView","AppMyGroupsView","AppMyGroupsOverview","EmployeeProfileView","AppMyGroupsQuestionsView","getKpis","emitLoaded","imageQuestions","getPublishedQuestions","hasQuestionsDefined","questionStatus","hasKpis","questionDeleted","questionToggledFromTable","kpiRemoved","loadQuestions","newStatus","working","minimumOrder","maximumOrder","publishQuestions","unpublishQuestions","questionAdded","updateSelectedQuestionsStatus","publishing","messageKey","changePublishedStatusForSelectedQuestions","selectedQuestions","questionAscendedHandler","newOrder","questionToSwap","configureGrid","questionDescendedHandler","questionEditedHandler","questionDeletedHandler","nextQuestions","selectedQuestionsCount","changeQuestionStatus","newQuestionStatus","addEmployee","deleteEmployee","viewEmployee","useCompanyGoalsService","getCompanyGoalRecommendedEmployees","employeesInView","totalEmployees","searchedEmployees","refreshEmployeesInView","getEmployees","allEmployees","assigned","isSearchingByText","refreshPageOne","refreshSelectedPage","createCompanyGoal","updateCompanyGoal","startDateMinTodaySchema","stringUrlSchema","getObjectFromForm","skillsGeneralNeeded","skillsLanguageNeeded","applicationClosingSchemaNonPublic","applicationClosingSchema","editionSchema","yupBool","numberOfPeopleNeeded","numberOfPeopleNeededError","country","countryError","city","cityError","linkError","applicationClosing","applicationClosingError","startError","endError","pictureError","skillsGeneralNeededUpdated","skillsLanguageNeededUpdated","saveAsDraft","publish","getApplicationClosingSchema","editGoal","updatedGoal","employeesOrdered","goalApplicationNotClosed","getStyleValue","getCompanyGoal","currentArea","backgroundModifierClass","titleColorModifierClass","dateColorModifierClass","isApplicationDate","applyColors","noProgressionText","textMap","resultModifierClass","applicationDatesTagText","goalDatesTagText","launch","applicants","setResult","addEmployeeToCompanyGoal","deleteEmployeeFromCompanyGoal","launchCompanyGoal","setFailureCompanyGoalResult","setSuccessCompanyGoalResult","recommendingEmployees","getGoal","confirmLaunch","confirmResult","_imports_0$2","imageGoal","deleteCompanyGoal","deleteGoal","goToGoalDetail","getCompanyGoals","allowedOrders","searchTextDebounced","addingNewGoal","goalToAddOpen","editingGoal","orderingMethods","g1","g2","searchedGoals","filteredGoals","visibilityFilter","applicationPhaseFilter","statusFilter","fetchInitData","createPublicGoal","createPrivateGoal","addGoal","updateGoal","imageCustomer","imageWorld","isAdministrator","isUserAdministrator","_imports_0$1","schemaRequired","onSiteCourseDataSchema","onsiteCountry","onsiteCity","onsiteAddress","onsiteFloor","onsiteRoom","onsiteSchedule","onsiteStartTime","onsiteEndTime","getField","onsiteCountryError","onsiteCityError","onsiteAddressError","onsiteFloorError","onsiteRoomError","onsiteScheduleError","onsiteStartTimeError","onsiteEndTimeError","availableLevels","getMainCourseDataSchema","initialStartDate","companyLanguages","modeChanged","startDate","endDate","durationHours","topics","startDateError","endDateError","durationError","topicsError","createLearningCourse","updateLearningCourse","courseUrl","fullSchema","courseUrlError","selectedMode","newMode","courseData","learningCourseModel","deleteLearningCourse","getCourses","filteredCourses","deleteCourseHandle","editClick","hasCoursesDefined","coursesLoaded","hasCourses","editorCloseHandler","ageRanges","hobbiesColorMap","hobbyCategories","getHobbyCategoryFromIndex","getSeriesLabel","useCompanyTalentDetectionService","hobbyId","hobbiesCategory","fromAge","toAge","getQueryStringEmployeesByAge","getQueryStringEmployeesByGroup","getSeriesDataByAge","serviceData","chartSeriesData","requested","showNoContent","xaxisRanges","seriesColors","xaxisLabels","xaxisText","getTalentDetectionSeriesData","getSelection","_event","_chartContext","selectedDataPointsLength","selectedDataPoint","xaxisLabel","selection","getSeriesDataByGroup","percentage","employeesCount","serie","groupName","detailsClick","categoryColor","goToProfile","getEmployeesByAge","calculateSuffix","suffix","refreshEmployees","getEmployeesByGroup","getSeriesDataByAgeAndHobby","defaultSeriesColor","hobbyColor","defaultChartOptions","titleOptions","getHobbySeriesData","hobbySeriesData","getAgeRangeFromIndex","getSeriesDataByGroupAndHobby","groupsWithData","ageChartSelection","groupChartSelection","selectedHobby","onHobbyClick","setHobbyAgeSelection","setHobbyGroupSelection","onSearchClean","resetSelection","setCategoryAgeSelection","setCategoryGroupSelection","ageRange","selectAll","isFiltered","filteredIds","EmployeeAvatar","selectedEmployeesOrdered","getEmployeeName","settingsOverviewRoute","editorRoute","manageRoute","createNewGroup","editGroup","manageGroup","backToList","filterEmployeesByRole","filterEmployeesGroupsByRole","current_ansi","VALID_ANSI","CS2CP","set_ansi","reset_ansi","set_cp","reset_cp","char_codes","utf16leread","utf16beread","debom","_getchar","_getansi","$cptable","Base64_map","Base64_encode","c3","e3","e4","Base64_decode","has_buf","Buffer_from","nbfs","enc","new_raw_buf","new_unsafe_buf","s2a","a2s","ab2a","bconcat","bufs","maxlen","utf8decode","out","widx","ridx","chr0","chr1","_strrev","pad0","fill","pad_","rpad_","pad0r1","pad0r2","p2_32","pad0r","SSF_isgeneral","months","SSF_init_table","table_fmt","SSF_default_map","SSF_default_str","SSF_frac","sgn","P_2","P_1","Q_2","Q_1","SSF_parse_date_code","b2","dow","dout","SSF_fix_hijri","SSFbasedate","SSFdnthresh","SSFbase1904","datenum_local","date1904","epoch","SSF_strip_decimal","SSF_normalize_exp","SSF_small_exp","SSF_large_exp","SSF_general_num","SSF_general","SSF_format","SSF_write_date","fmt","ss0","ss","outl","outstr","commaify","pct1","write_num_pct","sfmt","mul","write_num","write_num_cm","write_num_exp","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","aval","sign","den","rr","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","cc","rnd","dd","dec","_frac","carry","flr","write_num_flt","ffmt","ri","ff","oa","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","SSF_split_fmt","in_str","SSF_abstime","fmt_is_date","eval_fmt","flen","lst","hr","ssm","nstr","jj","vv","myv","ostr","decpt","lasti","retval","cfregex2","chkcond","thresh","choose_fmt","lat","m1","m2","SSF_load","make_ssf","SSFImplicit","dateNFregex","dateNF_regex","dateNF","dateNF_fix","datestr","timestr","CRC32","signed_crc_table","table","T0","slice_by_16_tables","TT","T1","T2","T3","T4","T5","T6","T7","T8","T9","Ta","Tb","Tc","Td","Te","Tf","crc32_bstr","bstr","seed","crc32_buf","crc32_str","CFB","namecmp","filename","write_dos_date","hms","ymd","parse_dos_date","parse_extra_field","blob","prep_blob","sz","tgt","fs","get_fs","parse_zip","parse_mad","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","mv","check_get_mver","check_shifts","dir_cnt","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","ENDOFCHAIN","Paths","FileIndex","FullPaths","read_directory","build_full_paths","HEADER_SIGNATURE","nsectors","FI","FP","pl","dad","get_mfat_entry","mini","MSSZ","__readInt32LE","new_buf","cnt","sector","get_sector_list","chkd","buf_chain","modulus","addr","__toBuffer","sl","minifat_store","namelen","__utf16le","ctime","read_date","mtime","__readUInt32LE","read_file","read","init_cfb","cfb","seed_cfb","nm","rebuild_cfb","gc","_file","fullPaths","HEADER_CLSID","elt","_write","write_mad","write_zip","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","_nm","UCFullPaths","UCPaths","UCPath","write_file","write","_zlib","use_zlib","zlib","InflateRaw","InflRaw","_inflateRawSync","usz","_inflate","_deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","bl","read_bits_3","read_bits_4","read_bits_5","read_bits_7","read_bits_n","write_bits_3","write_bits_1","write_bits_8","write_bits_16","realloc","zero_fill_array","build_tree","clens","cmap","MAX","ccode","bl_count","ctree","cleni","fix_lmap","fix_dmap","dlens","_deflateRaw","DST_LN_RE","LEN_LN_RE","write_stored","boff","write_huff_fixed","addrs","mlen","len_eb","dst_eb","off","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","next_code","hcodes","inflate","outbuf","woff","OL","max_len_1","max_len_2","bits","dst","warn_or_throw","wrn","fcnt","start_cd","csz","efsz","fcsz","EF","parse_local_file","meth","crc32","_csz","_usz","ef","cfb_add","cdirs","fp","fi","crcs","sz_cd","namebuf","ContentTypeMap","get_content_type","write_base64_76","write_quoted_printable","encoded","si","parse_quoted_printable","di","oi","parse_mime","fname","cte","ctype","fdata","row","mboundary","boundary","start_di","ca","cstr","dispcnt","csl","qp","cfb_new","unsafe","fpath","cfb_del","cfb_mov","old_name","new_name","cfb_gc","ReadShift","CheckField","read_binary","infile","ks","o2","evert","basedate","datenum","dnthresh","refdate","refoffset","numdate","parse_isodur","sec","good_pd_date_1","good_pd_date","good_pd","parseDate","fixdate","cc2str","debomit","utf8write","dup","fuzzynum","lower_months","fuzzydate","split_regex","safe_split_regex","getdatastr","getdatabin","getdata","safegetzipfile","zip","getzipfile","getzipdata","getzipstr","getzipbin","zipentries","zip_add_file","zip_read","resolve_path","XML_HEADER","attregexg","tagregex1","tagregex2","tagregex","nsregex","nsregex2","parsexmltag","skip_root","skip_LC","eq","quot","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","decregex","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","parsexmlbool","utf8reada","orig","utf8readb","ww","utf8readc","utf8corpus","utf8read","matchtag","mtcache","htmldecode","entities","vtregex","vt_cache","vtvregex","vtmregex","parseVector","wtregex","wxt_helper","writextag","xlml_normalize","xlmlregex","XMLNS","XMLNS_main","read_double_le","write_double_le","bs","av","___toBuffer","___utf16le","__readUInt16LE","___hexlify","__hexlify","___utf8","__readUInt8","__utf8","___lpstr","__lpstr","___cpstr","__cpstr","___lpwstr","__lpwstr","___lpp4","__lpp4","___8lpp4","__8lpp4","___double","__double","is_buf","__readInt16LE","__readInt32BE","oI","oR","oo","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","hexstr","fld","parsenoop","recordhopper","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","shift_cell_xls","cell","shift_range_xls","encode_cell_xls","biff","encode_cell","fix_col","fix_row","encode_range_xls","encode_col","encode_row","decode_row","rowstr","unfix_row","decode_col","colstr","unfix_col","split_cell","decode_cell","decode_range","encode_range","cs","safe_decode_range","safe_format_cell","format_cell","BErr","sheet_to_workbook","sheet","sheets","sheet_add_aoa","_ws","dense","ws","_R","_C","_origin","_range","__R","__C","cell_ref","aoa_to_sheet","parse_Int32LE","parse_XLWideString","cchCharacters","parse_StrRun","parse_RichStr","rgsStrRun","dwSizeStrRun","parse_BrtCommentText","parse_XLSBCell","iStyleRef","parse_XLSBShortCell","parse_XLSBCodeName","parse_XLNullableWideString","parse_XLNameWideString","parse_RelID","parse_RkNumber","fX100","fInt","RK","parse_RfX","parse_UncheckedRfX","parse_Xnum","parse_BrtColor","xColorType","nTS","bR","bG","bB","icv","XLSIcv","rgb2Hex","parse_FontFlags","parse_ClipboardFormatOrString","ClipFmt","parse_ClipboardFormatOrAnsiString","parse_ClipboardFormatOrUnicodeString","VT_I2","VT_I4","VT_BOOL","VT_VARIANT","VT_UI4","VT_FILETIME","VT_BLOB","VT_CF","VT_VECTOR_VARIANT","VT_VECTOR_LPSTR","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","CountryEnum","XLSFillPattern","rgbify","_XLSIcv","RBErr","ct2type","new_ct","parse_ct","ctext","RELS","get_rels_path","parse_rels","currentFilePath","rels","rel","canonictarget","CT_ODS","parse_manifest","Rn","FEtag","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","EXT_PROPS","load_props_pairs","HP","TOP","hp","parse_ext_props","xml","custregex","parse_cust_props","toks","XLMLDocPropsMap","evert_XLMLDPM","xlml_set_prop","Props","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtUnalignedString","parse_VtVecLpwstrValue","parse_VtVecUnalignedLpstrValue","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_dictionary","CodePage","dict","pid","parse_BLOB","parse_ClipboardData","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","parse_PropertySetStream","clsid","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","CLSID","PSet0","rval","PSet1","parsenoop2","parslurp","parseuint16","parseuint16a","parse_Bes","parse_ShortXLUnicodeString","cch","fHighByte","parse_XLUnicodeRichExtendedString","fExtSt","fRichSt","width","cRun","cbExtRst","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","parse_ControlInfo","accel","parse_URLMoniker","extra","parse_FileMoniker","cAnti","preamble","ansiPath","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","Loc","guid","fileTime","parse_LongRGBA","parse_LongRGB","parse_XLSCell","rw","ixfe","parse_frtHeader","parse_OptXLUnicodeString","parse_XTI","iSupBook","itabFirst","itabLast","parse_RkRec","parse_AddinUdf","udfName","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","parse_RefU","parse_Ref","parse_FtCmo","parse_FtNts","parse_FtCf","parse_FtSkip","FtTab","parse_FtArray","fts","parse_BOF","parse_InterfaceHdr","parse_WriteAccess","UserName","parse_WsBool","parse_BoundSheet8","hidden","parse_SST","ucnt","strs","parse_ExtSST","extsst","parse_Row","miyRw","parse_ForceFullCalculation","fullcalc","parse_RecalcId","parse_DefaultRowHeight","fl","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","parse_Window2","parse_Pane","parse_Font","parse_LabelSst","parse_Label","parse_Format","numFmtId","fmtstr","parse_BIFF2Format","parse_Dimensions","parse_RK","rkrec","parse_MulRk","rkrecs","lastcol","parse_MulBlank","ixfes","parse_CellStyleXF","parse_XF","parse_Guts","parse_BoolErr","parse_Number","xnum","parse_XLHeaderFooter","parse_SupBook","ctab","virtPath","rgst","parse_ExternName","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_NameCmt","cchName","cchComment","parse_ShrFmla","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","parse_Obj","parse_BIFF5Obj","cmo","parse_BIFF5OT","cf","grbit","parse_TxO","controlInfo","cchText","hdr","parse_HLink","hlink","parse_HLinkTooltip","wzTooltip","parse_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","parse_ColInfo","coldx","parse_Setup","parse_ShtProps","parse_Blank","parse_Scl","parse_String","parse_ImData","env","lcb","parse_BIFF2STR","parse_BIFF2NUM","num","parse_BIFF2INT","parse_BIFF2STRING","parse_BIFF2FONTXTRA","parse_RString","DBF_SUPPORTED_VERSIONS","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_aoa","vfp","l7","nrow","fpos","rlen","current_cp","hend","dbf_to_sheet","dbf_to_workbook","_RLEN","sheet_to_dbf","ba","aoa","sheet_to_json","cols","hcnt","coltypes","colwidths","coldecimals","guess","_guess","hf","hb","rout","_n","_s","SYLK","sylk_escapes","sylk_char_regex","sylk_char_fn","decode_sylk_char","newcc","sylk_to_aoa","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","C_seen_K","C_seen_X","C_seen_S","C_seen_E","formula","rc_to_a1","shrbase","shift_formula_str","F_seen","process_col","pt2px","sylk_to_sheet","aoasht","sylk_to_workbook","write_ws_cell_sylk","a1_to_rc","write_ws_cols_sylk","rec","width2px","px2char","write_ws_rows_sylk","rows","px2pt","sheet_to_sylk","RS","coord","DIF","dif_to_aoa","dif_to_aoa_str","metadata","dif_to_sheet","dif_to_workbook","sheet_to_dif","push_field","topic","push_value","ETH","eth_to_aoa","eth_to_sheet","eth_to_workbook","sheet_to_eth_data","sheet_to_eth","PRN","set_text_arr","prn_to_aoa_str","guess_seps","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","sepcc","startcc","_re","finish_cell","fuzzyfmla","prn_to_sheet_str","prn_to_sheet","firstbyte","prn_to_workbook","sheet_to_prn","read_wb_ID","OLD_WTF","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook","lotus_to_workbook_buf","next_n","sidx","snames","realnames","refguess","sheetRows","tmpcell","WK3Enum","osheets","rnames","sheet_to_wk1","write_biff_rec","write_BOF_WK1","write_RANGE","max_R","write_INTEGER","write_NUMBER","write_LABEL","book_to_wk3","wb","write_BOF_WK3","write_XFORMAT_SHEETNAME","wsidx","write_NUMBER_17","write_LABEL_16","wscnt","parse_RANGE","parse_cell","parse_LABEL","parse_INTEGER","parse_NUMBER","parse_FORMULA","wk1_fmla_to_csf","wk1_parse_rc","FuncTab","BinOpTab","argc","argL","argR","parse_cell_3","parse_LABEL_16","parse_NUMBER_18","parse_NUMBER_17","v1","v2","parse_FORMULA_19","parse_NUMBER_25","parse_NUMBER_27","parse_FORMULA_28","parse_SHEETNAMECS","parse_SHEETNAMELP","parse_SHEETINFOQP","parse_XFORMAT","parse_rpr","rpr","font","pass","parse_rs","tregex","rpregex","parse_r","rregex","rend","rs","rs_to_html","nlregex","parse_rpr2","intro","outro","align","r_to_html","terms","sitregex","sirregex","sirphregex","parse_si","sstr0","sstr1","sstr2","parse_sst_xml","sst","parse_BrtBeginSst","parse_sst_bin","_JS2ANSI","parse_CRYPTOVersion","parse_DataSpaceVersionInfo","parse_DataSpaceMapEntry","comps","parse_DataSpaceMap","parse_DataSpaceDefinition","parse_TransformInfoHeader","parse_Primary","parse_EncryptionHeader","parse_EncryptionVerifier","parse_EncryptionInfo","vers","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","verifier","KeyData","parse_RC4CryptoHeader","parse_RC4Header","crypto_CreatePasswordVerifier_Method1","Password","Verifier","PasswordArray","PasswordDecoded","PasswordByte","Intermediate1","Intermediate2","Intermediate3","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","Index","ObfuscationArray","Temp","PasswordLastChar","PadIndex","crypto_DecryptData_Method1","Data","XorArrayIndex","XorArray","Value","crypto_MakeXorDecryptor","parse_XORObfuscation","parse_FilePassHeader","parse_FilePass","RTF","rtf_to_sheet","rtf_to_sheet_str","rowtf","rtfre","last_index","rtf_to_workbook","sheet_to_rtf","hex2RGB","rgb","rgb2HSL","H6","L2","hsl2RGB","hsl","h6","rgb_tint","hex","tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","px","char2width","chr","cycle_width","collw","find_mdw_colw","_MDW","coll","DEF_PPI","PPI","XLMLPatternTypeMap","parse_borders","themes","border","parse_fills","parse_fonts","parse_numFmts","cellXF_uint","cellXF_bool","parse_cellXfs","xf","alignment","parse_sty_xml","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","parse_BrtFmt","stFmtCode","parse_BrtFont","bls","underline","family","bCharSet","parse_BrtFill","parse_BrtXF","ixfeParent","ifmt","parse_BrtBorder","parse_sty_bin","XLSXThemeClrScheme","parse_clrScheme","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","Themes","parse_Theme","dwThemeVersion","themeXML","parse_ColorTheme","parse_FullColorExt","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","update_xfext","xfext","xfe","parse_BrtMdtinfo","parse_BrtMdb","parse_BrtBeginEsmdb","parse_xlmeta_bin","metatype","parse_xlmeta_xml","lastmeta","parse_cc_xml","parse_BrtCalcChainItem$","parse_cc_bin","parse_xlink_bin","parse_drawing","sheet_insert_comments","threaded","people","parse_comments_xml","authors","commentList","authtag","cmnttag","cm","textMatch","parse_tcmnt_xml","tidx","parse_people_xml","parse_BrtBeginComment","rfx","parse_BrtCommentAuthor","parse_comments_bin","CT_VBA","make_vba_xls","newcfb","newpath","parse_ds_bin","parse_ds_xml","parse_ms_bin","parse_ms_xml","rcregex","rcbase","rcfunc","cRel","rRel","fstr","crefregex","$0","$4","$5","shift_formula_xlsx","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","parse_RgceLocRel","parse_RgceLocRel_BIFF2","cl","rl","parse_PtgArea","area","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrIfError","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","parsetab","Cetab","parse_PtgAttrSum","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgNameX_BIFF5","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgRefErr3d","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgTbl","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","PtgListRT","parse_PtgList","parse_PtgSxName","parse_PtgSheet","parse_PtgEndSheet","parse_PtgMemAreaN","parse_PtgMemNoMemN","parse_PtgAttrNoop","PtgTypes","PtgDupes","Ptg18","Ptg19","parse_RgbExtra","parse_Rgce","ptgs","stringify_array","PtgBinOp","formula_quote_sheet_name","sname","get_ixti_raw","supbooks","XTI","get_ixti","ixtiraw","stringify_formula","nameidx","last_sp","sp","fflen","lbl","bookidx","externbook","ixtidata","lp","rp","parsedf","fnd","PtgNonDisp","_left","rgcb","parse_XLSCellParsedFormula","parse_FormulaValue","parse_Formula","cbf","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","ods_to_csf_3D","_ssfopts","default_margins","margins","defs","safe_format","fmtid","fillid","parse_ws_xml_dim","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","sheetprregex2","svsregex","parse_ws_xml","data1","data2","mtch","sheetPr","parse_ws_xml_sheetpr","parse_ws_xml_sheetpr2","svs","parse_ws_xml_sheetviews","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","_merge","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","rng","margin","seencol","coli","colm","colM","sviewregex","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","cells","cref","tagr","tagc","sstr","ftag","do_format","arrayf","sharedf","rowobj","rowrite","sheetStubs","marr","marrlen","xlen","rstarti","outa","rslice","___f","_tag","_r","parse_BrtRowHdr","parse_BrtWsDim","parse_BrtWsFmtInfo","parse_BrtWsProp","parse_BrtCellBlank","parse_BrtShortBlank","parse_BrtCellBool","fBool","parse_BrtShortBool","parse_BrtCellError","bError","parse_BrtShortError","parse_BrtCellIsst","isst","parse_BrtShortIsst","parse_BrtCellReal","parse_BrtShortReal","parse_BrtCellRk","parse_BrtShortRk","parse_BrtCellRString","parse_BrtCellSt","parse_BrtShortSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","parse_BrtHLink","relId","tooltip","display","parse_BrtPane","parse_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","BrtMarginKeys","parse_BrtMargins","parse_BrtBeginWsView","parse_BrtDVal","parse_BrtDVal14","parse_ws_bin","ai","af","RR","aii","parse_Cache","nf","parse_chart","csheet","nc","parse_cs_xml","parse_BrtCsProp","parse_cs_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","push_defaults","parse_wb_defaults","badchars","check_ws_name","_good","wbnsregex","parse_wb_xml","xmlns","dname","dnstart","parse_BrtBundleSh","parse_BrtWbProp","strName","parse_BrtFRTArchID$","parse_BrtName","parse_wb_bin","Names","parse_wb","parse_ws","parse_cs","parse_ms","parse_ds","parse_sty","parse_theme","parse_sst","parse_cmnt","parse_cc","parse_xlink","parse_xlmeta","attregexg2","attregex2","xlml_parsexmltag","xlml_parsexmltagobj","XLMLFormatMap","xlml_format","xlml_set_custprop","Custprops","oval","safe_format_xlml","process_style_xlml","stag","parse_xlml_data","csty","sid","interiors","xlml_clean_comment","parse_xlml_xml","opening","ishtml","_o","html_to_workbook","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","Workbook","wsprops","raw_Rn3","cma","cmd","ssfidx","_col","_NamedRange","_DefinedName","AutoFilter","parse_fods","pagemargins","parse_xlml","fix_read_opts","parse_compobj","CONTINUE_RT","slurp","RecordType","nextrt","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","Sheets","Directory","last_formula","cur_sheet","Preamble","lastcell","last_cell","cmnt","rngC","rngR","temp_val","XFs","palette","get_rgb","process_cell_style","xfd","addcell","file_depth","afi","objects","last_RT","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","last_lbl","seen_codepage","cpval","tmpri","fakebs8","_fr","_fc","_fe","_arraystart","_ixfe","b4idx","b2idx","noteobj","PSCLSID","parse_xls_props","DSI","DocSummary","SI","Summary","parse_xlscfb","CompObj","WB","WorkbookP","_data","html_to_sheet","mtch2","CS","hd","midx","_t","make_html_row","HTML_BEGIN","HTML_END","book_new","book_append_sheet","make_html_preamble","sheet_to_html","footer","sheet_add_dom","or_R","or_C","is_dom_element_hidden","elts","Aelts","Aelti","parse_dom_table","table_to_book","get_computed_style","get_get_computed_style_function","parse_text_p","number_formats_ods","parse_content_xml","NFtag","NF","sheetag","rowtag","SheetNames","ctag","textp","textpidx","textR","row_ol","number_format_map","mrange","mR","mC","rowpeat","colpeat","atag","_Ref","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","u8_to_dataview","u8str","u8","u8concat","u8a","popcnt","readDecimal128LE","mantissa","parse_varint49","varint","varint_to_i32","i32","parse_shallow","mappa","parse_iwa_file","mi","parse_snappy_chunk","chunks","decompress_iwa_file","parse_old_storage","rsst","dv","data_offset","ieee","parse_new_storage","d128","parse_cell_storage","parse_TSP_Reference","pb","parse_TST_TableDataList","le","rtp","rtpref","mtype","tswpsa","parse_TST_TileRowInfo","_l","_m","wide_offsets","used_storage_u8","used_storage","used_storage_offsets","offsets","parse_TST_Tile","storage","parse_TST_TableModelArchive","tile","tl","_tile","parse_TST_TableInfoArchive","tableref","parse_TN_SheetArchive","shapeoffs","parse_TN_DocumentArchive","sheetoffs","root2","parse_numbers_iwa","indices","packets","packet","docroot","iwam","fix_opts_func","get_sheet_type","safe_parse_wbrels","wbrels","safe_parse_sheet","relsPath","sheetRels","stype","dfile","drelsp","draw","chartp","crelsp","tcomments","strip_front_slash","_zip","xlsb","binname","propdata","custprops","wbsheets","wbext","wbrelsi","wbrelsfile","nmode","wsloop","snjseen","snj","parse_xlsxcfb","dsm","seds","einfo","read_cfb","read_zip","read_plaintext","main","read_plaintext_raw","read_utf16","bstrify","read_prn","readSync","ab","vu","make_json_row","defval","isempty","outi","counter","header_cnt","qreg","make_csv_row","FS","txt","sheet_to_csv","endregex","sheet_to_txt","sheet_to_formulae","cmds","sheet_add_json","js","JS","ws_get_cell_stub","json_to_sheet","RC","wb_sheet_idx","sh","roll","book_set_sheet_visibility","vis","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","author","sheet_set_array_formula","dynamic","rngstr","attachmentChanged","VALID_EMAIL_REGEX","checkAllAreEmails","checkThereIsAnEmailProperty","selectEmployees","previousValue","sanitizeParsedExcel","parsedExcel","showModal","errorType","handleExcelParsed","sanitizedParsedExcel","checkAllAreEmailsResult","selectEmployeesResult","employeeIds","selectedEmployees","getCompanyEmployeeGroup","createCompanyEmployeeGroup","updateCompanyEmployeeGroup","saveAndGoBack","saveGroup","getUpdatedGroup","removeEmployee","handleEmployeesSelectedFromExcel","selectedEmployeeIds","employeesResponse","groupResponse","getCompanyGroupEmployees","setEmployeeRole","setCourse","searching","fetchCourses","onCourseEdited","added","unassignCourse","getCompanyGroupQuestions","removeLocalQuestionsFromGroup","sendQuestionsToGroup","fetchGroupData","CompanyType","getTab","isAzureCompany","useCompanySettingsService","azureServicePrincipal","selectedLanguage","validationSchema","chatbotUrl","feedbackEmailError","getCompany","updateCompany","downloadChatBotUrl","groupsInView","getCompanyEmployeeGroups","deleteCompanyEmployeeGroup","deleteGroup","groupIndex","handleDelete","employeesFiltered","detailProps","roleFilter","getCompanyEmployeesWithGroups","getAzureInformation","updateAzureInformation","azure","servicePrincipalId","servicePrincipalIdError","servicePrincipalSecret","servicePrincipalSecretError","secretPlaceholder","servicePrincipal","putEmployeeRole","UseAuthenticationService","changeRole","stepsPrefix","currentLocale","currentMessages","messageKeys","logoUrl","logoSlackUrl","slackAuthApiUrl","scopes","redirectUri","getSlackInformation","slackData","SkillStatus","isPendingRequest","updateSkill","getSkillModified","STATUS_COLUMN","deleteSkill","skillsInView","typeFilter","getSkills","selectedSkill","handleSaved","handleClosed","handleEditionStarted","AdminCompanySettingsGeneralInfo","AdminCompanyEmployeeGroups","AdminCompanySettingsAzureInfo","AdminCompanyEmployeesWithGroups","AdminRoleUsers","ChatBotInstructions","SkillsManagement","currentComponent","tabChanged","adminRoutes","AdminLayout","AdminDashboardView","AdminDashboardOverviewView","AdminAIAssistantView","AdminAIAssistantOverviewView","AdminAIAssistantQuestionsView","AdminCompanyGoalsView","AdminCompanyGoalsOverviewView","AdminCompanyGoalsDetailsView","AdminInternalPromotionsView","AdminTalentDetectionView","AdminLearningView","AdminCompanySettingsView","AdminCompanySettingsOverview","AdminCompanyEmployeeGroupEditorView","AdminCompanyEmployeeGroupManageView","purchaseUrl","redirectToPurchasePortal","useCompanyService","azureAdServicePrincipal","getAzureAdCompany","validateServicePrincipalAndGetNumberOfUsers","signUpAzureAdCompany","tenantId","purchaseSubscriptionId","totalUsersTenant","userToken","isServicePrincipalValidated","totalUsers","showErrorModal","servicePrincipalIdKeyError","servicePrincipalSecretKeyError","validateServicePrincipal","signUp","subscriptionResponse","guestRoutes","GuestApp","GuestCreateCompanyFromAzureAdView","itAdminTabs","itManagerRoutes","ItManagerLayout","goBackToFleebe","accountsRoutes","AccountsLogoutView","AccountsAdminRequiredView","AccountsTenantUnauthorizedView","AccountsUserUnauthorizedView","UNDEF_VALUE","EMPTY","BOOLEAN","FUNCTION","NUMBER","OBJECT","PROTOTYPE","STRING","UNDEFINED","CONSTRUCTOR","SYMBOL","POLYFILL_TAG","INDEX_OF","LENGTH","DONE","VALUE","NAME","SLICE","ObjClass","ObjProto","StrCls","StrProto","MathCls","ArrCls","ArrProto","safeGet","defValue","PRIMITIVE_TYPES","_createIs","theType","_createObjIs","theName","objToString","isStrictNullOrUndefined","isDefined","isPrimitive","isError","isPromiseLike","isTruthy","objGetOwnPropertyDescriptor","objHasOwnProperty","objHasOwn","polyObjHasOwn","objForEachKey","theObject","callbackfn","_createKeyValueMap","keyType","valueType","completeFn","theMap","throwError","throwTypeError","_objFreeze","_doNothing","objAssign","objKeys","objDeepFreeze","objFreeze","objGetPrototypeOf","createEnum","createEnumKeyMap","createSimpleMap","mapClass","createTypeMap","_wellKnownSymbolMap","asString","GLOBAL_CONFIG_KEY","_globalCfg","_getGlobalValue","_getGlobalConfig","gbl","dumpObj","propertyValueDump","_unwrapFunction","funcName","polyFunc","theFunc","theArgs","_unwrapProp","mathMax","strSlice","strSubstring","strSubstr","polyStrSubstr","strLeft","_polySymbols","_globalSymbolRegistry","gblCfg","_wellKnownSymbolCache","polyNewSymbol","theSymbol","polySymbolFor","newSymbol","polyGetKnownSymbol","knownName","propMap","_createProp","objDefineProp","objDefine","propDesc","_globalLazyTestHooks","_fetchLazyTestHooks","getLazy","lazyValue","safeGetLazy","WINDOW","_cachedGlobal","_cachedWindow","_cachedDocument","_cachedNavigator","_cachedHistory","_isWebWorker","_isNode","lazySafeGetInst","getInst","getGlobal","useCached","hasDocument","getDocument","hasWindow","getWindow","hasNavigator","getNavigator","hasHistory","getHistory","isNode","isWebWorker","_symbol","_symbolFor","_symbolKeyFor","_getSymbolValue","getSymbol","resetCache","getKnownSymbol","noPoly","symbolFor","isIterator","isIterable","iterForOf","itSymbol","arrAppend","elms","elm","arrForEach","theArray","arrIndexOf","arrMap","arrReduce","arrSlice","objSetPrototypeOf","proto","_createCustomError","baseClass","_safeSetName","createCustomError","constructCb","orgName","customError","_unsupportedError","throwUnsupported","utcNow","polyUtcNow","_createTrimFn","polyStrTrim","strTrim","_fnToString","_objCtrFnString","_gblWindow","_defaultDeepCopyHandler","details","defaultDeepCopyHandlers","arrayDeepCopyHandler","plainObjDeepCopyHandler","functionDeepCopyHandler","dateDeepCopyHandler","_getSetVisited","visitMap","theEntry","_deepCopy","userHandler","newCtx","newKey","_copyProps","newEntry","objCopyProps","objDeepCopy","_doExtend","theArg","deepExtend","obj1","obj2","obj3","obj4","obj5","obj6","getLength","_perf","getPerformance","_objCreate","objCreate","polyObjCreate","tempFunc","strEndsWith","polyStrEndsWith","searchValue","chkLen","strIndexOf","REF","UNREF","HAS_REF","ENABLED","_createTimerHandler","startTimer","refreshFn","cancelFn","timerId","theTimerHandler","_unref","_ref","_hasRef","_refresh","_cancel","_setEnabled","_createTimeoutWith","overrideFn","isArr","setFn","clearFn","timerFn","scheduleTimeout","createTimeout","Constructor","Prototype","strFunction","DynInstFuncTable","DynProxyTag","DynClassName","DynClassNamePrefix","DynInstChkTag","DynAllowInstChkTag","DynProtoDefaultOptions","UnknownValue","str__Proto","DynProtoBaseProto","DynProtoGlobalSettings","DynProtoCurrent","strUseBaseInst","strSetInstFuncs","Obj","_objGetPrototypeOf","_objGetOwnProps","_gbl","_gblInst","_isObjectOrArrayPrototype","_isObjectArrayOrFunctionPrototype","_getObjProto","newProto","curProto","_forEachProp","name_1","_isDynamicCandidate","skipOwn","_throwTypeError","_getInstanceFuncs","thisTarget","instFuncs","_hasVisited","_getBaseFuncs","classProto","useBaseInst","_instFuncProxy","funcHost","instFuncTable","baseFuncs","baseProto","_getInstFunc","currentDynProtoProxy","instFunc","canAddInst","objProto","protoFunc","_getProtoFunc","_populatePrototype","className","baseInstFuncs","setInstanceFunc","_createDynamicPrototype","dynProtoProxy","instFuncs_1","_checkPrototype","thisProto","_getObjName","unknownValue","dynamicProto","theClass","delegateFunc","perfOptions","strShimFunction","strShimObject","strShimUndefined","strShimPrototype","strHasOwnProperty","__objAssignFnImpl","__assignFn","extendStaticsFn","__extendsFn","__spreadArrayFn","il","createEnumStyle","createValueMap","_DYN_TO_LOWER_CASE","_DYN_BLK_VAL","_DYN_LENGTH","_DYN_RD_ONLY","_DYN_NOTIFY","_DYN_WARN_TO_CONSOLE","_DYN_THROW_INTERNAL","_DYN_SET_DF","_DYN_WATCH","_DYN_LOGGER","_DYN_APPLY","_DYN_PUSH","_DYN_SPLICE","_DYN_HDLR","_DYN_CANCEL","_DYN_INITIALIZE","_DYN_IDENTIFIER","_DYN_IS_INITIALIZED","_DYN_GET_PLUGIN","_DYN_POLL_INTERNAL_LOGS","_DYN_NAME","_DYN_TIME","_DYN_PROCESS_NEXT","_DYN_GET_PROCESS_TEL_CONT0","_DYN_GET_NOTIFY_MGR","_DYN_ADD_NOTIFICATION_LIS1","_DYN_REMOVE_NOTIFICATION_2","_DYN_ENABLED","_DYN_STOP_POLLING_INTERNA3","_DYN_UNLOAD","_DYN_ON_COMPLETE","_DYN_VERSION","_DYN_LOGGING_LEVEL_CONSOL4","_DYN_CREATE_NEW","_DYN_TEARDOWN","_DYN_MESSAGE_ID","_DYN_MESSAGE","_DYN_IS_ASYNC","_DYN_DIAG_LOG","_DYN__DO_TEARDOWN","_DYN_UPDATE","_DYN_GET_NEXT","_DYN_SET_NEXT_PLUGIN","_DYN_USER_AGENT","_DYN_SPLIT","_DYN_NODE_TYPE","_DYN_REPLACE","_DYN_LOG_INTERNAL_MESSAGE","_DYN_TYPE","_DYN_HANDLER","_DYN_IS_CHILD_EVT","_DYN_GET_CTX","_DYN_SET_CTX","_DYN_COMPLETE","_DYN_TRACE_ID","_DYN_SPAN_ID","_DYN_TRACE_FLAGS","aggregationErrorType","throwAggregationError","sourceErrors","theMessage","srcError","doAwaitResponse","doAwait","resolveFn","rejectFn","finallyFn","doFinally","STRING_STATES","DISPATCH_EVENT","_hasInitEvent","emitEvent","evtName","populateEvent","useNewEvent","theEvt","theConsole","STR_PROMISE","NODE_UNHANDLED_REJECTION","UNHANDLED_REJECTION","_currentPromiseId","_uniquePromiseId","_unhandledRejectionTimeout","_hasPromiseRejectionEvent","dumpFnObj","_createPromise","newPromise","additionalArgs","_state","_hasResolved","_settledValue","_queue","_handled","_unHandledRejectionHandler","_thePromise","_then","onResolved","_toString","thenPromise","_processQueue","_catch","_finally","thenFinally","catchFinally","_strState","_createSettleIfFn","allowState","theValue","_notifyUnhandledRejection","_rejectFn","_createAllPromise","values_1","pending_1","_processPendingItems","timeoutItemProcessor","callbackTimeout","createAsyncPromise","_isPromiseSupported","createNativePromise","PrmCls","thePromise","_promiseCreator","createPromise","createAllPromise","UNDEFINED_VALUE","STR_EMPTY","STR_CHANNELS","STR_CORE","STR_CREATE_PERF_MGR","STR_DISABLED","STR_EXTENSION_CONFIG","STR_EXTENSIONS","STR_PROCESS_TELEMETRY","STR_PRIORITY","STR_EVENTS_SENT","STR_EVENTS_DISCARDED","STR_EVENTS_SEND_REQUEST","STR_PERF_EVENT","STR_GET_PERF_MGR","STR_DOMAIN","STR_PATH","STR_NOT_DYNAMIC_ERROR","strGetPrototypeOf","rCamelCase","rNormalizeInvalid","rLeadingNumeric","isNotNullOrUndefined","normalizeJsName","_all","strContains","toISOString","getExceptionName","valChk","srcChk","getSetValue","_createProxyFunction","srcFunc","originalArguments","proxyAssign","chkSet","_loop_1","proxyFunctionAs","overwriteTarget","proxyFunctions","functionsToProxy","theFuncName","createClassFromInterface","class_1","optimizeObject","ObjAssign","objExtend","extended","argLen","isArgArray","isArgObj","propOk","isNewArray","strDocumentMode","strLocation","strConsole","strJSON","strCrypto","strMsCrypto","strReactNative","strMsie","strTrident","strXMLHttpRequest","_isTrident","_navUserAgentCheck","_enableMocks","_useXDomainRequest","_beaconsSupported","_hasProperty","supported","getLocation","checkForMock","mockLocation","getConsole","hasJSON","getJSON","getCrypto","getMsCrypto","isReactNative","nav","isIE","userAgent","getIEVersion","userAgentStr","navigator_1","ua","tridentVer","isBeaconsSupported","isFetchSupported","withKeepAlive","isSupported","useXDomainRequest","isXhrSupported","xmlHttpRequest","UInt32Mask","MaxUInt32","SEED1","SEED2","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","random32","signed","mwcRandom32","newId","base64chars","instanceName","_dataUid","_canAcceptData","_getCache","theCache","createUniqueNamespace","includeVersion","createElmNodeData","addDefault","_isConfigDefaults","_getDefault","dynamicHandler","theConfig","cfgDefaults","isDefaultValid","fallbacks","fbValue","_resolveDefaultValue","newValue_1","_applyDefaultValue","mergeDf","reference","readOnly","blkDynamicValue","usingDefault","cfgValue","dfName","dfValue","CFG_HANDLER_LINK","BLOCK_DYNAMIC","FORCE_DYNAMIC","_cfgDeepCopy","target_1","getDynamicConfigHandler","blockDynamicConversion","_canMakeDynamic","getFunc","throwInvalidAccess","arrayMethodsToPatch","_throwDynamicError","logger","_patchArray","orgMethod","_makeDynamicObject","_getOwnPropGetter","_createDynamicProperty","detail","checkDynamic","isObjectOrArray","_getProperty","activeHandler","_setProperty","isReferenced","_setDynamicProperty","valueState","newIsObjectOrArray","isDynamic","_setDynamicPropertyState","inPlace","rdOnly","blkProp","symPrefix","symPostfix","_createState","cfgHandler","dynamicPropertySymbol","dynamicPropertyReadOnly","dynamicPropertyReferenced","dynamicPropertyBlockValue","dynamicPropertyDetail","_waitingHandlers","_watcherTimer","theState","_useHandler","prevWatcher","_notifyWatchers","notifyHandlers","watcherFailures_1","_addWatcher","_trackHandler","_createAndUseHandler","configHandler","_createDynamicHandler","newTarget","_setValue","_watch","_block","allowUpdate","prevUpd","_rdOnly","_blkPropValue","_applyDefaults","defaultValues","_logInvalidAccess","createDynamicConfig","onConfigChange","runTargetUnload","doUnloadAll","ChannelControllerPriority","_stringToBoolOrDefault","cfgDfMerge","cfgDfSet","cfgDfValidate","fallBackName","cfgDfBoolean","cfgDfString","listenerFuncs","_aiNamespace","_debugListener","_listenerProxyFunc","dbgExt","getDebugExt","_getExtensionNamespace","getDebugListener","STR_WARN_TO_CONSOLE","AiNonUserActionablePrefix","AiUserActionablePrefix","AIInternalMessagePrefix","_logFuncs","_sanitizeDiagnosticText","_logToConsole","logFunc","_InternalLogMessage","msgId","isUserAct","properties","_self","strProps","diagnosticText","safeGetLogger","core","DiagnosticLogger","_messageCount","_messageLogged","_loggingLevelConsole","_loggingLevelTelemetry","_maxInternalMessageLimit","_enableDebug","_unloadHandler","_setDefaultsFromConfig","severity","_debugExtMsg","_logInternalMessage","_areInternalMessagesThrottled","logMessage","throttleLimitMessage","throttleMessage","_getLogger","_throwInternal","_warnToConsole","strToGMTString","strToUTCString","strCookie","strExpires","strIsCookieUseDisabled","strDisableCookiesUsage","strConfigCookieMgr","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_doc","_cookieCache","_globalCookieConfig","rootDefaultConfig","_getDoc","_gblCookieMgr","inst","createCookieMgr","_isMgrEnabled","cookieMgr","_isIgnoredCookie","cookieMgrCfg","_isBlockedCookie","_isCfgEnabled","rootConfig","cookieMgrConfig","isCfgEnabled","cookieEnabled","safeGetCookieMgr","cookieCfg","_path","_domain","unloadHandler","_enabled","_getCookieFn","_setCookieFn","_delCookieFn","_getCookieValue","_setCookieValue","enabled","areCookiesSupported","gblManager","maxAgeSec","_extractParts","_isIE","nowMs","expireMs","expiry","_formatDate","location_1","uaDisallowsSameSiteNone","_formatCookieValue","thePart","theDate","cookieValue","theCookie","_runListeners","NotificationManager","perfEvtsSendAll","_listeners","sendReason","perfEvent","_finishUnload","waiting","asyncUnload","strExecutionContextKey","strParentContextKey","strChildrenContextKey","_defaultPerfManager","PerfEvent","payloadDetails","theDetails_1","childTime","childEvts","childEvt","PerfManager","manager","doPerfActiveKey","doPerf","mgrSource","getSource","perfMgr","perfEvt","currentActive","ex","getGblPerfMgr","generateW3CId","hexValues","oct","clockSequenceHi","DEFAULT_VERSION","INVALID_VERSION","INVALID_TRACE_ID","INVALID_SPAN_ID","_isValid","invalidValue","_formatValue","_formatFlags","createTraceParent","traceId","spanId","isValidTraceId","isValidSpanId","formatTraceParent","pluginStateData","_getPluginState","initializePlugins","processContext","initPlugins","lastPlugin","pluginState","thePlugin","isInitialized","sortPlugins","extA","extB","bHasProcess","createDistributedTraceContext","parentCtx","trace","newTraceFlags","strTelemetryPluginChain","strHasRunFlags","strGetTelCtx","_chainId","_getNextProxyStart","startAt","createTelemetryProxyChain","_createInternalContext","telemetryChain","_nextProxy","_onComplete","_moveNext","_resolveExtCfg","_getConfig","nextPlugin","_iterateChain","_addOnComplete","onComplete","nextProxy","completeDetails","_getExtCfg","identifier","createIfMissing","idCfg","cfg","extCfg","extConfig","createProcessTelemetryContext","internalContext","_processNext","_createNew","createProcessTelemetryUnloadContext","unloadState","createProcessTelemetryUpdateContext","updateState","firstProxy","lastProxy_1","newProxy","createTelemetryPluginProxy","hasProcessTelemetry","hasSetNext","chainId","proxyChain","_processTelemetry","_unloadPlugin","_updatePlugin","_getTelCtx","itemCtx","_processChain","processPluginFn","hasRun","hasRunContext","hasNextRun","_callProcessTelemetry","unloadCtx","_callTeardown","pluginCore","updateCtx","_callUpdate","createUnloadHandlerContainer","_addHandler","_runHandlers","createUnloadHookContainer","_hooks","_doUnload","oldHooks","_addHook","strGetPlugin","BaseTelemetryPlugin","_isinitialized","_rootCtx","_nextPlugin","_unloadHandlerContainer","_hookContainer","_initDefaults","pluginChain","_setDefaults","unloadDone","theUnloadCtx","theUnloadState","_unloadCallback","updateDone","theUpdateCtx","theUpdateState","_updateCallback","currentCtx","rootCtx","_addInitializer","_initializers","telemetryInitializer","theInitializer","_runInitializers","doNotSendItem","telemetryInitializersCount","TelemetryInitializerPlugin","_base","strValidationError","strNotificationManager","strSdkUnloadingError","strSdkNotInitialized","_createPerfManager","notificationMgr","_validateExtensions","channelPriority","allExtensions","coreExtensions","channels","extPriorities","extPriority","_isPluginPresent","_deepMergeConfig","_findWatcher","newWatcher","theListener","_addDelayedCfgListener","_registerDelayedCfgListener","unloadHdl","AppInsightsCore","_configHandler","_isInitialized","_logger","_eventQueue","_notificationManager","_perfManager","_cfgPerfManager","_cookieManager","_pluginChain","_configExtensions","_channelConfig","_channels","_isUnloading","_telemetryInitializerPlugin","_internalLogsEventName","_evtNamespace","_unloadHandlers","_traceCtx","_instrumentationKey","_cfgListeners","_extensions","_pluginVersionStringArr","_pluginVersionString","_internalLogPoller","_internalLogPollerListening","_forceStopInternalLogPoller","notificationManager","_addUnloadHook","_initDebugListener","_initPerfManager","cfgExtensions","__spreadArray","_initPluginChain","teeController","controls","channel","telemetryItem","_notifyInvalidEvent","_createTelCtx","createPerfMgr","eventQueue","_startLogPoller","alwaysStart","shouldStart","interval","isRunning","_flushInternalLogs","unloadComplete","cbTimeout","processUnloadCtx","_getPluginChain","flushComplete","_flushChannels","_getPlugin","replaceExisting","addCb","_logOrThrowError","existingPlugin","_addPlugin","removed","removedPlugins_1","_removePlugins","mergeExisting","_doUpdate","createNew","traceCtx","unloadHook","_setPluginVersions","thePlugins","_addPluginVersions","ver","newLogger","theCtx","theExtensions","pluginIdentifier","theExt","channelHosts","host","removeCb","pluginsToRemove","removeComplete","unloadChain","newConfigExtensions","newChannelConfig","newQueue","callBack","doneIterating","cbTimer","doCallback","flushCtx","handled_1","disableDbgExt","enablePerfMgr","strOnPrefix","strAttachEvent","strAddEventHelper","strDetachEvent","strRemoveEventListener","strEvents","strVisibilityChangeEvt","strPageHide","strUnload","strBeforeUnload","strPageHideNamespace","rRemoveEmptyNs","rRemoveTrailingEmptyNs","_guid","elmNodeData","eventNamespace","_normalizeNamespace","_getEvtNamespace","evtNamespace","theNamespace_1","parsedEvent","_getRegisteredEvents","aiEvts","registeredEvents","_doDetach","handlerRef","useCapture","_doAttach","_doUnregister","unRegFn","theEvent","_unregisterEvents","eventCache","evtType","mergeEvtNamespace","theNamespace","namespaces","newNamespaces","eventOn","registeredEvent","eventOff","evtName_1","found_1","regEvent","addEventHandler","removeEventHandler","_addEventListeners","excludeEvents","addEventListeners","removeEventListeners","addPageUnloadEventListener","removePageUnloadEventListener","addPageHideEventListener","_handlePageVisibility","pageUnloadAdded","removePageHideEventListener","aiInstrumentHooks","cbNames","_arrLoop","_doCallbacks","callDetails","cbArgs","hookCtx","cbks","orgEx","hookErrorCb","_createFunctionHook","aiHook","funcThis","orgArgs","funcArgs","_replaceArg","_createArgs","_getOwner","checkPrototype","checkParentProto","InstrumentProto","callbacks","InstrumentFunc","_createInstrumentHook","newFunc","theHook","InstrumentEvent","DisabledPropertyName","SampleRate","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","DEFAULT_BREEZE_PATH","strNotSpecified","strIkey","RequestHeaders","_DYN_INGESTIONENDPOINT","_DYN_TO_STRING","_DYN_REMOVE_ITEM","_DYN_COUNT","_DYN_STRINGIFY","_DYN_PATHNAME","_DYN_CORRELATION_HEADER_E0","_DYN_EXCEPTIONS","_DYN_PARSED_STACK","_DYN_PROPERTIES","_DYN_MEASUREMENTS","_DYN_SIZE_IN_BYTES","_DYN_TYPE_NAME","_DYN_SEVERITY_LEVEL","_DYN_PROBLEM_GROUP","_DYN_IS_MANUAL","_DYN__CREATE_FROM_INTERFA1","_DYN_ASSEMBLY","_DYN_HAS_FULL_STACK","_DYN_LEVEL","_DYN_METHOD","_DYN_FILE_NAME","_DYN_LINE","_DYN_DURATION","_DYN_RECEIVED_RESPONSE","dataSanitizeKeyAndAddUniqueness","origLength","dataSanitizeKey","uniqueField","dsPadNumber","nameTrunc","dataSanitizeString","valueTrunc","dataSanitizeUrl","dataSanitizeInput","dataSanitizeMessage","messageTrunc","dataSanitizeException","exceptionTrunc","dataSanitizeProperties","tempProps_1","dataSanitizeMeasurements","measurements","tempMeasurements_1","measure","dataSanitizeId","_msgId","inputTrunc","_document","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","urlParseHost","urlGetAbsoluteUrl","urlGetCompleteUrl","absoluteUrl","inclPort","fullHost","urlParseFullHost","port","_internalEndpoints","_correlationIdPrefix","isInternalApplicationInsightsEndpoint","endpointUrl","correlationIdCanIncludeCorrelationHeader","requestUrl","currentHost","requestHost","includedDomains","matchExists_1","excludedDomains","correlationIdGetCorrelationContext","responseHeader","correlationId","correlationIdGetCorrelationContextValue","keyValues","keyValue","AjaxHelperParseDependencyPath","commandName","parsedUrl","pathName","dateTimeUtilsNow","perf","dateNow","dateTimeUtilsDuration","createDistributedTraceContextFromTrace","telemetryTrace","StorageType","_canUseLocalStorage","_canUseSessionStorage","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","storageType","getGlobalInst","_getSessionStorageObject","utlCanUseSessionStorage","utlDisableStorage","utlEnableStorage","utlGetLocalStorage","utlSetLocalStorage","utlRemoveStorage","utlGetSessionStorage","utlSetSessionStorage","utlRemoveSessionStorage","_FIELDS_SEPARATOR","_FIELD_KEY_VALUE_SEPARATOR","parseConnectionString","connectionString","kvPairs","kv","kvParts","locationPrefix","Envelope","Event","NoMethod","strError","strStack","strStackDetails","strErrorSrc","strMessage","strDescription","_stringify","convertToString","_formatMessage","evtMessage","_isExceptionDetailsInternal","_isExceptionInternal","_isStackDetails","_convertStackObj","errorStack","_getOperaStack","_getStackFromErrorObj","errorObj","_formatStackTrace","_parseStack","parsedStack","frames","level_1","totalSizeInBytes_1","theFrame","_StackFrame","parsedFrame","exceptionParsedStackThreshold","acceptedLeft","acceptedRight","lSize","rSize","howMany","_getErrorType","typeName","funcNameRegex","_formatErrorCode","Exception","severityLevel","_ExceptionDetails","lineNumber","columnNumber","errorSrc","exceptions","exceptionData","problemGroup","isManual","exceptionDetailsInterface","assembly","exceptionDetails","sourceFrame","DataPoint","Metric","stdDev","dataPoint","strEmpty","msToTimeSpan","totalms","hour","isCrossOriginError","PageView","durationMs","RemoteDependencyData","success","resultCode","requestAPI","correlationContext","dependencyFields","Trace","PageViewPerformance","unused","cs4BaseData","baseType","_aiNameFunc","baseName","aiName","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","createTelemetryItem","envelopeName","customProperties","systemProperties","iKey","Extensions","CtxTagKeys","createDomEvent","PropertiesPluginIdentifier","BreezeChannelIdentifier","AnalyticsPluginIdentifier","_DYN_IS_STORAGE_USE_DISAB0","_DYN__ADD_HOOK","_DYN_CORE","_DYN_DATA_TYPE","_DYN_ENVELOPE_TYPE","_DYN_TRACK","_DYN_TRACK_PAGE_VIEW","_DYN_TRACK_PREVIOUS_PAGE_1","_DYN_SEND_PAGE_VIEW_INTER2","_DYN_SEND_PAGE_VIEW_PERFO3","_DYN_POPULATE_PAGE_VIEW_P4","_DYN_HREF","_DYN_SEND_EXCEPTION_INTER5","_DYN_EXCEPTION","_DYN_ERROR","_DYN__ONERROR","_DYN_ERROR_SRC","_DYN_LINE_NUMBER","_DYN_COLUMN_NUMBER","_DYN__CREATE_AUTO_EXCEPTI6","_DYN_ADD_TELEMETRY_INITIA7","_DYN_OVERRIDE_PAGE_VIEW_D8","_DYN_AUTO_TRACK_PAGE_VISI9","_DYN_IS_BROWSER_LINK_TRAC10","_DYN_ENABLE_AUTO_ROUTE_TR11","_DYN_ENABLE_UNHANDLED_PRO12","_DYN_AUTO_UNHANDLED_PROMI13","_DYN_IS_PERFORMANCE_TIMIN14","_DYN_GET_PERFORMANCE_TIMI15","_DYN_NAVIGATION_START","_DYN_SHOULD_COLLECT_DURAT16","_DYN_IS_PERFORMANCE_TIMIN17","_DYN_GET_ENTRIES_BY_TYPE","_DYN_RESPONSE_START","_DYN_REQUEST_START","_DYN_LOAD_EVENT_END","_DYN_RESPONSE_END","_DYN_CONNECT_END","_DYN_PAGE_VISIT_START_TIM18","PageViewManager","appInsights","overridePageViewDuration","pageViewPerformanceManager","queueTimer","itemQueue","pageViewPerformanceSent","_startTimer","allItems","doFlush","_addQueue","pageView","pageViewSent","customDuration","maxDurationLimit","processed","pageViewPerformance","MAX_DURATION_ALLOWED","botAgentNames","_isPerformanceTimingSupported","_isPerformanceNavigationTimingSupported","_isPerformanceTimingDataReady","timing","_getPerformanceTiming","_getPerformanceNavigationTiming","_shouldCollectDuration","_navigator","isGoogleBot","PageViewPerformanceManager","navigationTiming","network","dom","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","currentPageName","currentPageUrl","prevPageVisitTimeData","restartPageVisitTimer","pageName","pageUrl","prevPageVisitData","stopPageVisitTimer","currPageVisitDataStr","PageVisitData","pageVisitEndTime","pageVisitDataJsonStr","Timing","_events","strEvent","_dispatchEvent","evnt","_getReason","MinMilliSeconds","_chkConfigMilliseconds","_chkSampling","_updateStorageUsage","AnalyticsPlugin","_eventTracking","_pageTracking","_pageViewManager","_pageViewPerformanceManager","_pageVisitTimeManager","_preInitTelemetryInitializers","_isBrowserLinkTrackingEnabled","_browserLinkInitializerAdded","_enableAutoRouteTracking","_historyListenerAdded","_disableExceptionTracking","_autoExceptionInstrumented","_enableUnhandledPromiseRejectionTracking","_autoUnhandledPromiseInstrumented","_extConfig","_autoTrackPageVisitTime","_prevUri","_currUri","EventTelemetry","metric","inPv","inPvp","measurement","theError","exceptionPartB","_window","_sendCORSException","errorString","_populateDefaults","pageVisitTime","trackPageVisitTime","pageViewItem","_updateExceptionTracking","_updateLocationChange","_addDefaultTelemetryInitializers","browserLinkPaths_1","dropBrowserLinkRequests","envelope","remoteData","locn","_addUnhandledPromiseRejectionTracking","win","_history","strUndefined","_addHistoryListener","_getDistributedTraceCtx","distributedTraceCtx","namePrefix","_popstateHandler","_locationChangeHandler","traceLocationName","_location","STR_DURATION","_DYN_TAGS","_DYN_DEVICE_TYPE","_DYN_DATA","_DYN_ON_LINE","_DYN_IS_ONLINE","_DYN__GET","_DYN_ENQUEUE","_DYN_EVENTS_LIMIT_IN_MEM","_DYN_EMIT_LINE_DELIMITED_0","_DYN_CLEAR","_DYN_BATCH_PAYLOADS","_DYN_MARK_AS_SENT","_DYN_CLEAR_SENT","_DYN_BUFFER_OVERRIDE","_DYN__BUFFER__KEY","_DYN__SENT__BUFFER__KEY","_DYN__MAX__BUFFER__SIZE","_DYN_TRIGGER_SEND","_DYN__SENDER","_DYN_CUSTOM_HEADERS","_DYN_MAX_BATCH_SIZE_IN_BY1","_DYN_ONUNLOAD_DISABLE_BEA2","_DYN_IS_BEACON_API_DISABL3","_DYN_ENABLE_SESSION_STORA4","_DYN__BUFFER","_DYN_INSTRUMENTATION_KEY","_DYN_DISABLE_XHR","_DYN_ONUNLOAD_DISABLE_FET5","_DYN_CONVERT_UNDEFINED","_DYN_MAX_BATCH_INTERVAL","_DYN_BASE_TYPE","_DYN_SAMPLE_RATE","_DYN__XHR_READY_STATE_CHA6","_DYN__ON_ERROR","_DYN__ON_PARTIAL_SUCCESS","_DYN__ON_SUCCESS","_DYN_ITEMS_ACCEPTED","_DYN_ITEMS_RECEIVED","_DYN_SET_REQUEST_HEADER","_DYN_EVENTS_SEND_REQUEST","_DYN_GET_SAMPLING_SCORE","_DYN_GET_HASH_CODE_SCORE","strBaseType","strBaseData","strProperties","strTrue","_setValueIf","_extractPartAExtensions","envTags","itmExt","itmTags","extUser","extApp","extDevice","web","envData","envBaseData","envProps","extOs","extTrace","tgs","tg","theTags","EnvelopeCreator","_extractPropsAndMeasurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","envelopeType","iKeyNoDashes","EnvelopeCreatorInit","DependencyEnvelopeCreator","customMeasurements","bd","remoteDepData","EventEnvelopeCreator","eventData","ExceptionEnvelopeCreator","exData","MetricEnvelopeCreator","baseData","baseMetricData","PageViewEnvelopeCreator","currentContextId","pageTags","pageViewData","PageViewPerformanceEnvelopeCreator","TraceEnvelopeCreator","_disableEvents","createOfflineListener","parentEvtNamespace","_isListening","_onlineStatus","_enableEvents","_setOnline","_setOffline","_isOnline","_unload","BaseSendBuffer","_buffer","_bufferFullMessageSent","batch","canUseSessionStorage","newBuffer","SessionStorageSendBuffer","ArraySendBuffer","_namePrefix","getItem","setItem","bufferItems","_getBuffer","notDeliveredItems","_setBuffer","_removePayloadsFromBuffer","sentElements","unsentItems","sentItems","remaining","prefixedKey","bufferJson","buffer_1","Serializer","_serializeObject","circularReferenceCheck","_serializeStringMap","_serializeArray","contract","isRequired","isHidden","isPresent","isObj","sources","MIN_INPUT_LENGTH","HashCodeScoreGenerator","SamplingScoreGenerator","hashCodeGenerator","Sample","sampleRate","samplingPercentage","isSampledIn","FetchSyncRequestSizeLimitBytes","_getResponseText","xhr","defaultAppInsightsChannelConfig","EnvelopeTypeCreator","Sender","_consecutiveErrors","_retryAt","_lastSend","_paused","_timeoutHandle","_serializer","_stamp_specific_redirects","_headers","_syncFetchPayload","_fallbackSender","_syncUnloadSender","_offlineListener","_endpointUrl","_orgEndpointUrl","_maxBatchSizeInBytes","_beaconSupported","_customHeaders","_disableTelemetry","_convertUndefined","_isRetryDisabled","_maxBatchInterval","_sessionStorageUsed","_bufferOverrideUsed","_enableSendPromise","_clearScheduledTimer","_checkMaxSize","_setupTimer","_doUnloadSend","diagLog","senderConfig","customHeader","bufferOverride","_validateInstrumentationKey","sendPostFunc","_xdrSender","_xhrSender","_fetchSender","_beaconSender","_fetchKeepAliveSender","diagLogger","_isSampledIn","defaultEnvelopeIkey","aiEnvelope_1","doNotSendItem_1","countOfItemsInPayload","_checkResponsStatus","_formatErrorMessageXhr","async","forcedSender","_notifySendRequest","ieVer","failed","errors_1","extracted","_isRetriable","_resendPayload","xdr","responseText","_parseResponse","_formatErrorMessageXdr","incomingPayload","incomingSize","responseUrl","_checkAndUpdateEndPointUrl","offlineBackOffMultiplier","_doBeaconSend","plainTextBatch","queued","droppedPayload","thePayload","resolveFunc","rejectFunc","endPointUrl","headerName","payloadSize","_doFetchSender","batchLength","ignoreResponse","responseHandled","response_1","resp","linearFactor","payload_1","_setRetryTime","SlotDelayInSeconds","delayInSeconds","backOffSlot","backOffDelay","retryAfterTimeSpan","retryInterval","timerValue","statusCode","hostingProtocol","_getNotifyMgr","sendRequest","instrumentationKey","disableValidation","disableIKeyValidationFlag","UUID_Regex","convertUndefined","STR_PROPERTIES","_DYN_REQUEST_URL","_DYN_INST","_DYN_CONTEXT","_DYN_ABORTED","_DYN_TRACE_ID0","_DYN_SPAN_ID1","_DYN_INCLUDE_CORRELATION_2","_DYN_GET_ABSOLUTE_URL","_DYN_HEADERS","_DYN_REQUEST_HEADERS","_DYN_TRACK_DEPENDENCY_DAT3","_DYN_START_TIME","_DYN_ENABLE_REQUEST_HEADE4","_DYN_ENABLE_AJAX_ERROR_ST5","_DYN_ENABLE_AJAX_PERF_TRA6","_DYN_MAX_AJAX_CALLS_PER_V7","_DYN_EXCLUDE_REQUEST_FROM8","_DYN_ADD_REQUEST_CONTEXT","_DYN_DISABLE_AJAX_TRACKIN9","_DYN_AJAX_PERF_LOOKUP_DEL10","_DYN_DISABLE_FETCH_TRACKI11","_DYN_ENABLE_RESPONSE_HEAD12","_DYN_STATUS","_DYN_STATUS_TEXT","_DYN_HEADER_MAP","_DYN_OPEN_DONE","_DYN_SEND_DONE","_DYN_REQUEST_SENT_TIME","_DYN_ABORT_DONE","_DYN_GET_TRACE_ID","_DYN_GET_TRACE_FLAGS","_DYN_ERROR_STATUS_TEXT","_DYN_STATE_CHANGE_ATTACHE13","_DYN_RESPONSE_TEXT","_DYN_RESPONSE_FINISHED_TI14","_DYN__CREATE_TRACK_ITEM","_DYN_RESPONSE","_DYN_GET_ALL_RESPONSE_HEA15","_DYN_GET_PART_APROPS","_DYN_PERF_MARK","_DYN_PERF_TIMING","_DYN_AJAX_DIAGNOSTICS_MES16","_DYN_CORRELATION_CONTEXT","_DYN_AJAX_TOTAL_DURATION","_DYN_EVENT_TRACE_CTX","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","strPerf","perfData","_populatePerfData","ajaxData","dependency","propsSet","strStart","strEnd","strDomainLookup","strConnect","strRedirect","strRequest","strResponse","strStartTime","strDomainLookupStart","strDomainLookupEnd","strConnectStart","strConnectEnd","strRequestStart","strRequestEnd","strResponseStart","strResponseEnd","strRedirectStart","strRedirectEnd","strTransferSize","strEncodedBodySize","strDecodedBodySize","strServerTiming","serverTiming","server_1","XHRMonitoringState","ajaxRecord","strResponseText","ajaxType","enableRequestHeaderTracking","getResponse","partA","traceExt","AJAX_MONITOR_PREFIX","strDiagLog","strAjaxData","STR_FETCH","ERROR_HEADER","ERROR_PREFIX","ERROR_POSTFIX","ERROR_NOT_SENT","CORRELATION_HEADER_ERROR","CUSTOM_REQUEST_CONTEXT_ERROR","FAILED_TO_CALCULATE_DURATION_ERROR","_markCount","_supportsFetch","strPrototype","_supportsAjaxMonitoring","ajaxMonitorInstance","theOpen","_throwInternalCritical","_getFailedAjaxDiagnosticsMessage","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","_indexOf","theHandler","_processDependencyContainer","_processDependencyListeners","initializersCount","BLOB_CORE","DfltAjaxCorrelationHeaderExDomains","_internalExcludeEndpoints","_defaultConfig","AjaxMonitor","_fetchInitialized","_xhrInitialized","_currentWindowHost","_extensionConfig","_enableRequestHeaderTracking","_enableAjaxErrorStatusText","_trackAjaxAttempts","_isUsingW3CHeaders","_isUsingAIHeaders","_markPrefix","_enableAjaxPerfTracking","_maxAjaxCallsPerView","_enableResponseHeaderTracking","_disabledUrls","_disableAjaxTracking","_disableFetchTracking","_excludeRequestFromAutoTrackingPatterns","_addRequestContext","_dependencyHandlerId","_dependencyListeners","_dependencyInitializers","_ignoreHeaders","_maxAjaxPerfLookupAttempts","_ajaxPerfLookupDelay","_distributedTracingMode","_appId","_polyfillInitialized","_instrumentXhr","_instrumentFetch","_populateContext","_reportDependencyInternal","currentWindowHost","appId","traceFlags","traceParent","dependencyListener","dependencyInitializer","propExt","_canIncludeHeaders","rlt","isPolyfill","_isDisabledRequest","_createFetchRecord","newInit","fetchData_1","_reportFetchMetrics","ajaxResponse","_getFetchCorrelationContext","responseHeaderMap_1","_hookProto","_isMonitoredXhrInstance","_openHandler","_attachToOnReadyStateChange","_createMarkId","isDisabled","theUrl","theRegex","idx2","excludeAjaxDataValidation","ajaxValidation","initialized","traceID","spanID","_onAjaxComplete","exceptionText","_reportXhrError","failedProps","errorProps","_findPerfResourceEntry","_getAjaxCorrelationContext","responseHeaderMap_2","sysProperties","responseHeadersString","performance_1","markId","initiatorType","trackCallback","reportError","perfMark","performance","maxAttempts","retryDelay","attempt","locateResourceTiming","perfTiming","_getFailedFetchDiagnosticsMessage","_reportFetchError","initializers","Application","Device","Version","Internal","unloadHookContainer","_DYN_SESSION_MANAGER","_DYN_IS_USER_COOKIE_SET","_DYN_IS_NEW_USER","_DYN_GET_TRACE_CTX","_DYN_TELEMETRY_TRACE","_DYN_APPLY_SESSION_CONTEX0","_DYN_APPLY_APPLICATION_CO1","_DYN_APPLY_DEVICE_CONTEXT","_DYN_APPLY_OPERATION_CONT2","_DYN_APPLY_USER_CONTEXT","_DYN_APPLY_OPERATING_SYST3","_DYN_APPLY_LOCATION_CONTE4","_DYN_APPLY_INTERNAL_CONTE5","_DYN_ACCOUNT_ID","_DYN_GET_SESSION_ID","_DYN_NAME_PREFIX","_DYN_SESSION_COOKIE_POSTF6","_DYN_USER_COOKIE_POSTFIX","_DYN_ID_LENGTH","_DYN_GET_NEW_ID","_DYN_AUTOMATIC_SESSION","_DYN_AUTHENTICATED_ID","_DYN_ACQUISITION_DATE","_DYN_RENEWAL_DATE","_DYN_JOIN","_DYN_COOKIE_SEPARATOR","_DYN_AUTH_USER_COOKIE_NAM7","SESSION_COOKIE_NAME","ACQUISITION_SPAN","RENEWAL_SPAN","COOKIE_UPDATE_INTERVAL","Session","_SessionManager","_storageNamePrefix","_cookieUpdatedTimestamp","_sessionExpirationMs","_sessionRenewalMs","sessionCookiePostfix","isExpired","session","_initializeAutomaticSession","timeSinceAcqMs","timeSinceRenewalMs","_renew","_setCookie","_setStorage","_initializeAutomaticSessionWithData","storageValue","sessionData","sessionReset","acqMs","renewalMs","getNewId","acq","renewalPeriodMs","acqTimeLeftMs","cookieDomain","renewal","TelemetryTrace","parentId","_validateUserInput","userCookiePostfix","_generateNewId","newCookie","_generateNewCookie","_setUserCookie","authCookie","authCookieString","userId","acqStr","oneYear","authenticatedUserId","accountId","storeInCookie","isInvalidInput","user_id","user_cookie","strExt","strTags","_removeEmpty","_nullResult","TelemetryContext","previousTraceCtx","sesId","autoSession","device","internal","undefString","nullValue","PropertiesPlugin","_distributedTraceCtx","_previousTraceCtx","theContext","userCtx","_processTelemetryInternal","breezeChannel","PropertiesPlugin$1","_AUTHENTICATED_USER_CONTEXT","_TRACK","STR_SNIPPET","STR_GET_COOKIE_MGR","STR_START_TRACK_PAGE","STR_STOP_TRACK_PAGE","STR_FLUSH","STR_START_TRACK_EVENT","STR_STOP_TRACK_EVENT","STR_ADD_TELEMETRY_INITIALIZER","STR_POLL_INTERNAL_LOGS","STR_GET_PLUGIN","STR_EVT_NAMESPACE","STR_TRACK_EVENT","STR_TRACK_TRACE","STR_TRACK_METRIC","STR_TRACK_PAGE_VIEW","STR_TRACK_EXCEPTION","STR_TRACK_DEPENDENCY_DATA","STR_SET_AUTHENTICATED_USER_CONTEXT","STR_CLEAR_AUTHENTICATED_USER_CONTEXT","_DYN_QUEUE","_DYN_CONNECTION_STRING","_DYN_ENDPOINT_URL","_DYN_DISABLE_IKEY_DEPRECA0","_DYN_ONUNLOAD_FLUSH","_DYN_ADD_HOUSEKEEPING_BEF1","_DYN_UPDATE_SNIPPET_DEFIN2","_internalSdkSrc","_ignoreUpdateSnippetProperties","defaultConfigValues","_chkDiagLevel","AppInsightsSku","snippet","_sender","_snippetVersion","_houseKeepingNamespace","_core","_config","_analyticsPlugin","DependenciesPlugin","ingest","isErrMessageDisabled","flushDone","_updateSnippetProperties","snippetVer","sdkSrc","_findSdkSourceFile","length_1","call","properties_1","appInsightsInstance","performHousekeeping_1","loadedPlugin","propertiesPlugin","added_1","analyticsPlugin_1","theConfig_1","_removePageEventHandlers","excludePageUnloadEvents","_getCurrentDependencies","isModule","cdns","scrpt","url_1","src_1","ApplicationInsights","logException","useAppInsights","initApp","App","VueApexCharts","_vm","_info"],"mappings":"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AAG,CAAC,GAAI,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,E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AQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QA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AG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,GAAI,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EA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J,EAAY,SAAU,CAAI,CAAA,kBCtI1H,OAAO,eAAeC,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EAC5DA,GAAA,eAAyBA,GAAA,aAAuB,OAC5BA,GAAA,aAAG,IAAI,IAAI,CAC3B,WACA,cACA,eACA,eACA,gBACA,mBACA,WACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,eACA,gBACA,WACA,iBACA,iBACA,UACJ,EAAE,IAAI,SAAUtvK,EAAK,CAAE,MAAO,CAACA,EAAI,cAAeA,CAAG,CAAE,CAAE,CAAC,EACpCsvK,GAAA,eAAG,IAAI,IAAI,CAC7B,gBACA,gBACA,gBACA,gBACA,cACA,WACA,gBACA,kBACA,WACA,cACA,WACA,oBACA,gBACA,eACA,mBACA,YACA,aACA,WACA,eACA,oBACA,eACA,cACA,cACA,mBACA,YACA,aACA,aACA,sBACA,mBACA,eACA,YACA,YACA,YACA,gBACA,sBACA,iBACA,OACA,OACA,cACA,YACA,qBACA,mBACA,mBACA,mBACA,eACA,cACA,eACA,cACA,eACA,iBACA,cACA,UACA,UACA,aACA,UACA,aACA,mBACA,mBACA,YACJ,EAAE,IAAI,SAAUtvK,EAAK,CAAE,MAAO,CAACA,EAAI,cAAeA,CAAG,CAAE,CAAE,CAAC,ECrG1D,IAAImsK,GAAY5F,IAAQA,GAAK,UAAa,UAAY,CAClD,OAAA4F,GAAW,OAAO,QAAU,SAAS33I,EAAG,CACpC,QAAS/V,EAAG1e,EAAI,EAAG,EAAI,UAAU,OAAQA,EAAI,EAAGA,IAAK,CACjD0e,EAAI,UAAU1e,CAAC,EACf,QAASgU,KAAK0K,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAG1K,CAAC,IAC1DygB,EAAEzgB,CAAC,EAAI0K,EAAE1K,CAAC,GAElB,OAAOygB,CACf,EACW23I,GAAS,MAAM,KAAM,SAAS,CACzC,EACInC,GAAmBzD,IAAQA,GAAK,kBAAqB,OAAO,OAAU,SAAS0D,EAA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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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CN,UAAWC,GACb,EACA,CACE,KAAM,GACN,KAAM,qBACN,UAAWC,GACb,CACF,CACF,EACA,CACE,KAAM,eACN,KAAM,eACN,UAAWC,IACX,OAAQ,EACV,EACA,CACE,KAAM,eACN,KAAM,eACN,UAAWC,GACb,EACA,CACE,KAAM,iBACN,KAAM,iBACN,UAAWC,GACb,EACA,CACE,KAAM,mBACN,KAAM,mBACN,UAAWC,GACb,EACA,CACE,KAAM,cACN,KAAM,cACN,UAAWC,IACX,SAAU,CACR,CACE,KAAM,GACN,KAAM,uBACN,UAAWC,GACb,EACA,CACE,KAAM,mBACN,KAAM,mBACN,UAAWC,GACb,EACA,CACE,KAAM,cACN,KAAM,uBACN,UAAWC,GACb,CACF,CACF,EACA,CACE,KAAM,eACN,KAAM,eACN,UAAWC,IACX,SAAU,CACR,CACE,KAAM,GACN,KAAM,wBACN,UAAWC,EACb,EACA,CACE,KAAM,cACN,KAAM,2BACN,UAAWC,GACb,EACA,CACE,KAAM,mBACN,KAAM,gCACN,UAAWD,EACb,CACF,CACF,EACA,CACE,KAAM,YACN,KAAM,YACN,UAAWE,IACX,SAAU,CACR,CACE,KAAM,GACN,KAAM,qBACN,UAAWC,GACb,EACA,CACE,KAAM,wBACN,KAAM,qBACN,MAAO,CACL,UAAW,oBACb,EACA,UAAWC,EACb,EACA,CACE,KAAM,YACN,KAAM,sBACN,UAAWC,GACb,CACF,EACA,KAAM,CACJ,qBAAsB,EACxB,CACF,CACF,EACA,KAAM,CACJ,aAAc,GACd,UAAW,EACb,CACF,CACF,mHC/HM,CAAE,QAAAC,EAAS,0BAAApH,CAA0B,EAAInsB,GAAmB,EAE5D6uB,EAAOphN,GAAuB,CAAA,CAAE,EAChCqhN,EAAW,SAAY,CACtBD,EAAA,MAAQ,MAAM0E,IACRC,GAAA,EAGPzE,EAAY,MAAOhxB,GAA4C,CAC7D,MAAAouB,EAA0BpuB,EAAQ,GAAI,EAAK,EACjDixB,EAAcjxB,EAAQ,EAAE,EACxB3qL,EAAK,aAAc2qL,CAAO,CAAA,EAEtBy1B,EAAa,IAAMpgN,EAAK,SAAUy7M,EAAK,MA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Cf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,MAAe,IACvB,EAGIC,IAAiB,CACpB,KACA,QACA,aACA,WACA,YACA,iBACA,eACA,WACA,SACA,WACA,cACA,kBACA,gBACA,YACA,UACA,YACA,eACA,UACA,UACD,EAEA,SAASC,IAAO1tP,EAA2D,CAAE,OAAOA,EAAI,IAAI,SAASomJ,EAAG,CAAE,MAAO,CAAEA,GAAG,GAAI,IAAKA,GAAG,EAAG,IAAIA,EAAE,GAAG,CAAI,CAAA,CAAI,CAItJ,IAAIunG,IAAwBD,IAAO,CAElC,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAGA,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAEA,QACA,MACA,IACA,QACA,QACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,MACA,SAEA,IACA,SACA,SACA,MACA,QACA,QACA,MACA,IACA,MACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,QACA,SACA,SACA,QACA,QAGA,SACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACD,CAAC,EACGxB,GAAsBxL,GAAIiN,GAAO,EAGjCtE,GAAO,CACH,EAAa,SACb,EAAa,UACb,GAAa,UACb,GAAa,QACb,GAAa,SACb,GAAa,QACb,GAAa,OACb,GAAa,gBACb,IAAa,OACrB,EAEIuE,GAAQ,CACX,SAAiB,EACjB,UAAiB,EACjB,UAAiB,GACjB,QAAiB,GACjB,SAAiB,GAC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,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,cAAe,EAAEC,EAAmB,EACvD,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IAAM,EACzB,IAAe,CAAE,EAAE,IA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ACL,IAAK,gBACL,IAAK,eACL,IAAK,SACL,IAAK,cACL,IAAK,gBACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,cACL,IAAK,iBACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,kBACL,IAAK,YACL,IAAK,iBACL,IAAK,cACL,IAAK,eACL,IAAK,eACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,gBACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,YACL,IAAK,aACL,IAAK,UACL,IAAK,OACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,iBACL,IAAK,cACL,IAAK,oBACL,IAAK,gBACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,cACL,IAAK,qBACL,IAAK,SACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,eACL,IAAK,eACL,IAAK,iBACL,IAAK,eACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,YACL,IAAK,YACL,IAAK,gBACL,IAAK,cACL,IAAK,eACL,IAAK,kBACL,IAAK,oBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,cACL,IAAK,UACL,IAAK,SACL,IAAK,cACL,IAAK,UACL,IAAK,oBACL,IAAK,kBACL,IAAK,QACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,eACL,IAAK,aACL,IAAK,eACL,IAAK,gBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,iBACL,IAAK,YACL,IAAK,cACL,IAAK,eACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,qBACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,kBACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,cACL,IAAK,iBACL,IAAK,qBACL,IAAK,YACL,IAAK,oBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,WACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,kBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACL,IAAK,yBACL,IAAK,cACL,IAAK,aACL,IAAK,mBACL,IAAK,sBACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,2BACL,IAAK,eACL,IAAK,iBACL,IAAK,aACL,IAAK,iBACL,IAAK,YACL,IAAK,mBACL,IAAK,cACL,IAAK,wBACL,IAAK,kBACL,IAAK,qBACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,iBACL,IAAK,eACL,IAAK,mBACL,IAAK,aACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,iBACL,IAAK,uBACL,IAAK,0BACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,cACL,IAAK,mBACL,IAAK,uBACL,IAAK,mBACL,IAAK,kBACL,IAAK,mBACL,IAAK,cACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,eACL,IAAK,oBACL,IAAK,sBACL,IAAK,sBACL,IAAK,mBACL,IAAK,qBACL,IAAK,qBACL,IAAK,gBACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,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L,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,aACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,aACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,aACL,IAAK,KACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,iBACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,iBACL,IAAK,aACL,IAAK,YACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,cACL,IAAK,SACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,MACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,YACL,IAAK,cACL,IAAK,QACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,oBACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,QACL,IAAK,cACL,IAAK,cACL,IAAK,WACL,IAAK,eACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,cACL,IAAK,WACL,IAAK,MACL,IAAK,YACL,IAAK,aACL,IAAK,qBACL,IAAK,mBACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,aACL,IAAK,cACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,MACL,IAAK,cACL,IAAK,MACL,IAAK,aACL,IAAK,gBACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,YACP,EACID,IAAW,CACb,EAAG,EACH,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,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","x_google_ignoreList":[0,1,2,3,4,12,13,14,15,16,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,81,90,91,92,93,94,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,265,266,467,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662]}